*{box-sizing:border-box}:root{--nav: #20264f;--nav-soft: #2f3670;--bg: #f4f6fb;--panel: #ffffff;--text: #1f2533;--muted: #70798c;--line: #dfe4ee;--accent: #14b8a6;--accent-dark: #0f766e;--red: #b42318;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0;color:var(--text);background:var(--bg)}button,input,select{font:inherit;max-width:100%}button{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:6px;padding:9px 12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}button svg{width:18px;height:18px}button.primary,.primary{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff;justify-content:center}button.danger{color:var(--red);border-color:#ffc9c5;background:#fff7f6}button:disabled{opacity:.55;cursor:not-allowed}input,select{border:1px solid var(--line);border-radius:6px;padding:9px 10px;min-width:0;background:#fff}label{display:grid;gap:6px;color:var(--muted);font-size:13px}fieldset{border:1px solid var(--line);border-radius:8px;padding:10px;margin:0}legend{color:var(--muted);font-size:13px;padding:0 4px}.app{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}aside{background:var(--nav);color:#fff;padding:16px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 20px}.brand img{width:74px;height:auto;display:block;background:#fff;border-radius:6px;padding:5px}.brand strong{display:block}.nav{width:100%;justify-content:flex-start;border:0;background:transparent;color:#c9d1e4;margin:2px 0}.nav.active{background:var(--nav-soft);color:#fff}.logout{margin-top:28px;border-top:1px solid rgba(255,255,255,.14);border-radius:0;padding-top:16px}main{padding:26px;min-width:0;overflow-x:hidden}header{margin-bottom:18px}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:700;letter-spacing:0}h2{font-size:20px;margin-bottom:10px}h3{font-size:16px;margin-bottom:4px}.employee-card p{color:var(--muted);margin-top:4px}.loading{min-height:100vh;display:grid;place-items:center;font-weight:800;color:var(--nav)}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login form{width:min(390px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:24px;display:grid;gap:16px;box-shadow:0 18px 55px #1f25331f}.login-brand{padding:0 0 6px;color:var(--text)}.login-brand img{width:112px;padding:0;background:transparent}.error,.warning{color:var(--red);background:#fff2f1;border:1px solid #ffd4d1;border-radius:6px;padding:10px 12px}.alert-list{display:grid;gap:5px;margin-bottom:12px}.alert-list span{display:block;color:var(--text)}.alert-bell{display:inline-flex;align-items:center;gap:6px;color:var(--red);background:#fff2f1;border:1px solid #ffd4d1;border-radius:999px;padding:8px 10px;font-weight:700}.alert-bell svg{width:18px;height:18px}.open-cell{color:var(--red);font-weight:700;background:#fff7f6}.toast{position:fixed;right:22px;top:18px;z-index:20;background:var(--nav);color:#fff;border-radius:6px;padding:10px 14px;box-shadow:0 10px 35px #0000002e}.upload-panel,.form-row,.planning-toolbar,.bulk-bar{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.planning-toolbar label{display:flex;align-items:center;grid-auto-flow:column;gap:8px}.planning-toolbar input[type=file]{flex:1 1 240px;min-width:190px}.empty-state{background:#fff;border:1px dashed var(--line);border-radius:8px;padding:22px;color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.kpi span{color:var(--muted);font-size:13px}.kpi strong{display:block;margin-top:6px;font-size:24px}.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;align-items:start}.employee-card,.skipped,.table-wrap,.list,.settings-grid,.detail-panel,.selector,.timesheets,.timesheet,.period-panel,.history-panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}table{width:100%;border-collapse:collapse}th{color:var(--muted);font-size:12px;font-weight:600;text-align:left;border-bottom:1px solid var(--line);padding:8px}td{border-bottom:1px solid #edf0f6;padding:8px;vertical-align:middle}td small{display:block;color:var(--muted);font-size:12px;margin-top:2px}td input,td select{width:100%}.workload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:16px}.workload-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}.workload-card span,.workload-card small{display:block;color:var(--muted);overflow-wrap:anywhere}.workload-card strong{display:block;margin:6px 0 4px;font-size:20px}.planning-shell{display:grid;grid-template-columns:minmax(300px,430px) minmax(260px,1fr);gap:14px;align-items:start;margin-bottom:16px}.calendar-panel,.day-actions,.analysis-top,.analysis-card,.conflict-modal{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:10px}.calendar-head strong{text-align:center;text-transform:capitalize}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays span{color:var(--muted);font-size:12px;text-align:center;padding:4px}.calendar-grid button{display:grid;align-content:start;gap:3px;min-height:58px;padding:7px 5px;border-radius:6px;text-align:left}.calendar-grid button b{font-size:13px}.calendar-grid button small{color:var(--muted);font-size:11px;line-height:1.2;overflow-wrap:anywhere}.calendar-grid button.muted{opacity:.4}.calendar-grid button.has-plan{border-color:#b7e4dd;background:#f0fbf9}.calendar-grid button.selected{outline:2px solid var(--accent-dark);outline-offset:1px}.day-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.day-actions>div:first-child{min-width:180px;margin-right:auto}.day-actions span{display:block;color:var(--muted);font-size:12px}.day-actions strong{display:block;font-size:20px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1f253361;display:grid;place-items:center;padding:18px}.conflict-modal{width:min(880px,100%);max-height:min(760px,92vh);overflow:auto;box-shadow:0 18px 60px #00000038}.conflict-modal p{color:var(--muted);margin-bottom:12px}.conflict-list{display:grid;gap:10px}.conflict-row{border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:7px}.conflict-row span{color:var(--muted);overflow-wrap:anywhere}.conflict-row div{display:flex;flex-wrap:wrap;gap:12px}.conflict-row label{display:flex;grid-auto-flow:column;align-items:center;gap:6px;color:var(--text)}.analysis-top{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:16px}.analysis-top label{min-width:180px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:16px}.analysis-card{display:grid;gap:8px}.analysis-card>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:start}.analysis-card strong,.analysis-card span,.analysis-card small{overflow-wrap:anywhere}.analysis-card span,.analysis-card small{color:var(--muted)}.analysis-card b{font-size:24px;color:var(--accent-dark)}.hidden-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.fillbar{height:8px;border-radius:999px;background:#e7ecf4;overflow:hidden;margin:8px 0 7px}.fillbar i{display:block;height:100%;border-radius:inherit;background:var(--accent-dark)}.bulk-bar{position:sticky;top:0;z-index:5}.bulk-bar input{flex:1 1 260px}.assignment-wrap{padding:0}.assignment-table{min-width:980px;table-layout:fixed}.assignment-table th,.assignment-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-table th:nth-child(2),.assignment-table td:nth-child(2){width:74px}.assignment-table th:nth-child(3),.assignment-table td:nth-child(3){width:100px}.assignment-table th:nth-child(8),.assignment-table td:nth-child(8){white-space:normal;overflow-wrap:anywhere}.assignment-table .check{width:42px;text-align:center}.assignment-table .check input{width:auto}.comment-input{min-width:180px}.skipped{margin-top:16px}.skipped div{display:flex;flex-wrap:wrap;gap:8px}.skipped span{background:#eef9f7;color:#075e57;border:1px solid #c8eee8;border-radius:999px;padding:6px 10px;font-size:13px}.add{margin-bottom:12px}.table-wrap{overflow-x:auto}.list{display:grid;gap:8px}.list>div{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;border-bottom:1px solid #edf0f6;padding-bottom:8px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:12px}.master-detail{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}.selector{display:grid;gap:6px}.selector button{justify-content:flex-start}.selector button.selected{border-color:var(--accent-dark);color:var(--accent-dark);background:#eef9f7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.weekday-field{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.weekday-field label{display:inline-flex;align-items:center;gap:6px;color:var(--text)}.weekday-field input{width:auto}.actions{display:flex;gap:10px;align-items:end;grid-column:1 / -1}.timesheets{margin-top:16px;display:grid;gap:12px}.timesheet{break-inside:avoid}.timesheet>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.timesheet th{width:25%}.signature{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.signature span{border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:12px}.timesheet-summary{margin-top:10px}.write-field{min-width:130px;height:34px}.check-field{width:46px;height:34px}.handwritten-changes{min-height:64px;border:1px solid var(--line);border-radius:6px;margin-top:12px;padding:8px;color:var(--muted);font-size:12px}.employee-signature{margin-top:30px;display:grid;justify-content:end}.employee-signature span{min-width:220px;border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:12px;text-align:center}.reports-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;margin-top:16px}.period-controls,.pdf-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.pdf-controls{border-top:1px solid var(--line);padding-top:12px}.period-panel table,.history-panel table{table-layout:fixed}.period-panel td,.history-panel td{overflow-wrap:anywhere}.total-row td{font-weight:700;background:#f8fafc}@media(max-width:820px){.app{grid-template-columns:1fr}aside{position:static;height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.brand{grid-column:1 / -1;padding-bottom:8px}main{padding:18px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.board,.master-detail,.form-grid,.reports-grid,.planning-shell,.analysis-grid{grid-template-columns:1fr}.planning-toolbar,.bulk-bar,.period-controls,.pdf-controls,.day-actions,.analysis-top{align-items:stretch}.planning-toolbar>*,.bulk-bar>*,.period-controls>*,.pdf-controls>*{flex:1 1 100%}.day-actions>*,.analysis-top>*{flex:1 1 100%}.workload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{body{background:#fff}aside,.no-print,.toast{display:none!important}.app{display:block}main{padding:0}.kpis,.skipped,.timesheet{break-inside:avoid}.employee-card{break-inside:avoid;border:0;border-radius:0;padding:0;margin:0 0 18px}.timesheets,.timesheet{border:0;padding:0}.timesheet{break-after:page}.timesheet:last-child{break-after:auto}.board{display:block}.assignment-table{min-width:0;table-layout:auto}.workload-grid{grid-template-columns:repeat(3,1fr)}table{font-size:12px}td,th{padding:5px 6px}}
