*,:before,:after{box-sizing:border-box}h1,h2,h3,h4,p,figure,blockquote{margin:0}img,svg{max-width:100%;display:block}table{border-collapse:collapse}:root{--ink:#2b2a3b;--muted:#747382;--purple:#ee2c6c;--purple-soft:#fdeaf0;--line:#e8e7eb;--canvas:#f8f7f8;--success:#3dbb95;--warning:#f2d387}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);margin:0;font-family:Trebuchet MS,Trebuchet,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;width:236px;padding:30px 18px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{flex-direction:column;align-items:flex-start;gap:7px;padding:0 8px 30px;display:flex}.brand img{width:135px;height:auto;display:block}.brand small{color:var(--purple);letter-spacing:2px;padding-left:2px;font-size:8px;font-weight:800}nav{flex:1}nav button{color:#676675;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:12px;width:100%;height:43px;margin-bottom:3px;padding:0 13px;font-size:14px;font-weight:600;display:flex}nav button.active{color:var(--purple);background:var(--purple-soft);box-shadow:inset 3px 0 var(--purple)}.nav-icon{text-align:center;width:20px;font-size:20px;font-weight:400}nav p{color:#a2a1aa;letter-spacing:1.3px;padding:18px 13px 7px;font-size:10px;font-weight:800}.content{width:calc(100% - 236px);max-width:1500px;margin-left:236px;padding:31px 38px 28px}header{justify-content:space-between;align-items:start;margin-bottom:25px;display:flex}h1{letter-spacing:-.4px;margin:0 0 7px;font-size:25px}header p{color:var(--muted);margin:0;font-size:13px}.outline,.primary{border-radius:4px;height:39px;padding:0 17px;font-size:13px;font-weight:700}.outline{color:#585766;background:#fff;border:1px solid #dedde2}.primary{border:1px solid var(--purple);background:var(--purple);color:#fff;box-shadow:0 4px 10px #ee2c6c25}.summary{border:1px solid var(--line);background:#fff;border-radius:5px;grid-template-columns:180px 1fr 180px 180px;align-items:center;gap:28px;padding:20px 25px;display:grid;box-shadow:0 2px 8px #2b2a3b08}.summary div{flex-direction:column;display:flex}.summary span{color:#8d8c98;letter-spacing:1px;font-size:9px;font-weight:800}.summary strong{margin:6px 0 4px;font-size:22px}.summary small{color:#92919c;font-size:11px}.summary small.green{color:var(--success)}.summary .progress{background:#eeedf0;border-radius:10px;height:7px;display:block;overflow:hidden}.summary .progress i{background:linear-gradient(90deg,#ee2c6c,#f27ba3);border-radius:10px;height:100%;display:block}.toolbar{justify-content:space-between;align-items:center;margin:25px 0 14px;display:flex}.toolbar>div{align-items:center;gap:8px;display:flex}.week-switch button{color:#6c7487;background:#fff;border:1px solid #e0e3e9;border-radius:8px;min-width:37px;height:37px}.week-switch strong{text-align:center;min-width:172px;font-size:13px}.week-switch button.today{width:auto;margin-left:4px;padding:0 13px;font-size:12px;font-weight:600}.timesheet{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #1d244008}.grid{grid-template-columns:minmax(270px,2.3fr) repeat(7,minmax(68px,.72fr)) minmax(72px,.8fr);display:grid}.grid>div{border-right:1px solid #eef0f4;min-width:0}.grid>div:last-child{border-right:0}.grid-head{border-bottom:1px solid var(--line);background:#fafbfc}.grid-head>div{text-align:center;color:#8b92a2;letter-spacing:.3px;padding:12px 9px;font-size:9px;font-weight:800}.grid-head>div:first-child{text-align:left;padding-left:20px}.grid-head small{color:#515b70;letter-spacing:0;margin-top:5px;font-size:11px;display:block}.row{border-bottom:1px solid #efedf0;min-height:69px}.row>div{place-items:center;padding:10px 7px;display:grid}.row .task{place-items:initial;align-items:center;padding:11px 14px 11px 18px;display:flex}.task>i{border-radius:2px;width:4px;height:34px;margin-right:12px}.task span{flex-direction:column;flex:1;min-width:0;display:flex}.task strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.task small{color:#8c8b96;margin-top:5px;font-size:10px}.task button{opacity:0;color:#7b7a87;background:0 0;border:0}.task:hover button{opacity:1}.row input{text-align:center;width:48px;height:35px;color:var(--ink);background:#f8f7f8;border:1px solid #0000;border-radius:4px;outline:none;font-size:12px;font-weight:700}.row input:hover,.row input:focus{border-color:var(--purple);background:#fff;box-shadow:0 0 0 3px #ee2c6c18}.row input::placeholder{color:#c0c0c7}.today-col{background:#fff2f6!important}.grid-head .today-col{color:var(--purple)}.row-total{font-size:12px;font-weight:800}.total-row{background:#fbfbfc;min-height:48px}.total-row>div{place-items:center;font-size:11px;font-weight:800;display:grid}.total-row>div:first-child{place-items:center start;padding-left:20px}.savebar{justify-content:space-between;align-items:center;margin-top:17px;display:flex}.savebar span{color:#9198a8;font-size:11px}.savebar span i{background:#35ba86;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.savebar .primary{min-width:145px}.reports{flex-direction:column;gap:16px;display:flex}.report-toolbar{border:1px solid var(--line);background:#fff;border-radius:5px;justify-content:space-between;gap:20px;padding:16px 18px;display:flex}.filters{gap:12px;display:flex}.filters label{color:#8c8b96;letter-spacing:.5px;flex-direction:column;gap:6px;font-size:9px;font-weight:800;display:flex}.filters select{min-width:170px;height:36px;color:var(--ink);background:#fff;border:1px solid #dedde2;border-radius:4px;padding:0 28px 0 10px;font-size:12px}.exports{align-items:flex-end;gap:6px;display:flex}.exports span{color:#8c8b96;align-self:center;margin-right:4px;font-size:11px}.exports button{min-width:50px;height:36px;color:var(--ink);background:#fff;border:1px solid #dcdbe0;border-radius:4px;font-size:11px;font-weight:800}.exports button:hover{border-color:var(--purple);color:var(--purple);background:var(--purple-soft)}.report-cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.report-cards article{border:1px solid var(--line);background:#fff;border-radius:5px;flex-direction:column;padding:18px 20px;display:flex;position:relative;overflow:hidden}.report-cards article:after{content:"";border:1px solid #ee2c6c40;width:54px;height:54px;position:absolute;top:-23px;right:-12px;transform:rotate(45deg)}.report-cards span{color:#8d8c97;letter-spacing:.8px;font-size:9px;font-weight:800}.report-cards strong{margin:7px 0 3px;font-size:24px}.report-cards small{color:#91909b;font-size:10px}.report-cards .success{color:var(--success)}.report-table-wrap{border:1px solid var(--line);background:#fff;border-radius:5px;overflow:hidden}.report-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 19px;display:flex}.report-title h2{margin:0 0 4px;font-size:16px}.report-title p{color:#918f9a;margin:0;font-size:10px}.live-link{border:1px solid var(--purple);color:var(--purple);background:#fff;border-radius:4px;height:34px;padding:0 12px;font-size:11px;font-weight:700}.report-table{border-collapse:collapse;width:100%;font-size:11px}.report-table th{color:#fff;text-align:left;letter-spacing:.4px;background:#2b2a3b;padding:11px 13px;font-size:9px}.report-table td{border-bottom:1px solid #efedf0;padding:12px 13px}.report-table td small{color:#93929d;margin-top:4px;display:block}.report-table tfoot td{background:#f8f7f8;border:0;font-weight:800}.pill{color:#777681;background:#eeeef0;border-radius:12px;padding:5px 7px;font-size:9px;font-weight:700;display:inline-flex}.pill.billable{color:#197b61;background:#e7f7f2}.fennoa-card{background:var(--ink);color:#fff;border-radius:5px;grid-template-columns:auto minmax(260px,1fr) auto auto;align-items:center;gap:16px;padding:18px;display:grid;position:relative;overflow:hidden}.fennoa-card:after{content:"";border:1px solid #ee2c6c66;width:100px;height:100px;position:absolute;bottom:-60px;right:-70px;transform:rotate(45deg)}.fennoa-icon{color:#3d65b8;background:#fff;border-radius:4px;place-items:center;width:42px;height:42px;font-size:20px;font-weight:900;display:grid}.fennoa-copy h3{margin:0;font-size:14px}.fennoa-copy>div{align-items:center;gap:9px;display:flex}.fennoa-copy p{color:#c8c6cf;max-width:580px;margin:6px 0 0;font-size:10px;line-height:1.5}.status{color:#f2d387;background:#f2d38718;border:1px solid #f2d38755;border-radius:10px;padding:3px 6px;font-size:8px;font-weight:700}.invoice-preview{border-left:1px solid #555362;flex-direction:column;padding-left:16px;display:flex}.invoice-preview span{color:#aaa8b2;letter-spacing:.7px;font-size:8px}.invoice-preview strong{margin-top:5px;font-size:12px}.fennoa-button{background:var(--purple);color:#fff;z-index:1;border:0;border-radius:4px;height:36px;padding:0 14px;font-size:10px;font-weight:800}.placeholder{text-align:center;background:#fff;border:1px dashed #d9dce5;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;min-height:430px;margin-top:70px;display:flex}.placeholder>div{background:var(--purple-soft);width:55px;height:55px;color:var(--purple);border-radius:16px;place-items:center;font-size:24px;display:grid}.placeholder h2{margin:18px 0 7px}.placeholder p{color:var(--muted);margin:0 0 20px;font-size:13px}.toast{color:#fff;background:#18223d;border-radius:9px;padding:13px 18px;font-size:12px;font-weight:700;position:fixed;bottom:28px;right:28px;box-shadow:0 8px 30px #0003}@media (max-width:1000px){.summary{grid-template-columns:1fr 1fr}.summary .progress{grid-area:2/1/auto/-1}.grid{min-width:970px}.timesheet{overflow:auto}.toolbar{align-items:flex-start;gap:15px}.toolbar>div:last-child{display:none}.report-toolbar{flex-direction:column}.filters{flex-wrap:wrap}.report-table-wrap{overflow:auto}.report-table{min-width:850px}.fennoa-card{grid-template-columns:auto 1fr}.invoice-preview,.fennoa-button{grid-column:2}}@media (max-width:700px){.sidebar{width:72px;padding:24px 10px}.brand small,nav button:not(.active){font-size:0}.brand{padding-left:2px}.brand img{object-fit:cover;object-position:left;width:50px}.brand-mark{flex:none}nav button{justify-content:center;padding:0}.nav-icon{font-size:20px}nav p{display:none}.content{width:calc(100% - 72px);margin-left:72px;padding:24px 16px}.summary{grid-template-columns:1fr 1fr;gap:18px}.toolbar .week-switch .today,header .outline{display:none}.report-cards{grid-template-columns:1fr}.filters select{min-width:140px}.exports{flex-wrap:wrap}.fennoa-card{grid-template-columns:1fr}.fennoa-card>*{grid-column:1}.invoice-preview{border-left:0;padding-left:0}}.lang-switch{gap:4px;padding:0 3px 14px;display:flex}.lang-switch button{border:1px solid var(--line);color:#6b6a77;letter-spacing:.5px;background:#fff;border-radius:4px;flex:1;height:30px;font-size:11px;font-weight:800}.lang-switch button.active{border-color:var(--purple);color:var(--purple);background:var(--purple-soft)}.demo-banner{background:#fffaf0;border:1px solid #f0dfb4;border-radius:5px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:11px 15px;display:flex}.demo-banner span{color:#7a6224;font-size:12px;line-height:1.45}.demo-banner button{color:#7a6224;background:#fff;border:1px solid #dcc78c;border-radius:4px;height:32px;padding:0 12px;font-size:11px;font-weight:700}.demo-banner button:hover{border-color:var(--purple);color:var(--purple)}.row>div{position:relative}.row-action{opacity:0;color:#7b7a87;background:0 0;border:0;border-radius:4px;width:22px;height:24px;font-size:13px;line-height:1}.task:hover .row-action,.row-action:focus-visible{opacity:1}.row-action:hover{color:var(--ink);background:#f2f1f4}.row-action.danger:hover{color:var(--purple);background:#fdeaf0}.note-dot{background:var(--purple);border-radius:50%;width:5px;height:5px;position:absolute;top:12px;right:12px}.weekend-col{background:#fbfbfc}.grid-head .weekend-col{color:#a9a8b3}.empty-row{color:var(--muted);text-align:center;margin:0;padding:26px 20px;font-size:13px}.row-detail{background:#fbfafc;border-bottom:1px solid #efedf0;gap:16px;padding:16px 20px 18px;display:grid}.row-detail label{color:#8c8b96;letter-spacing:.5px;text-transform:uppercase;flex-direction:column;gap:5px;font-size:9px;font-weight:800;display:flex}.row-detail input[type=text],.row-detail input:not([type]){height:34px;color:var(--ink);background:#fff;border:1px solid #dedde2;border-radius:4px;padding:0 10px;font-size:12px}.row-detail input:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px #ee2c6c18}.assignment-fields{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:12px;display:grid}.assignment-fields .check{text-transform:none;color:var(--ink);flex-direction:row;align-items:center;gap:8px;height:34px;font-size:11px}.assignment-fields .check input{width:16px;height:16px;accent-color:var(--purple)}.note-fields{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.note-fields label span{color:#6f6e7b;text-transform:none;letter-spacing:0;font-size:11px;font-weight:700}.note-empty{color:var(--muted);margin:0;font-size:11px}.report-title-actions{align-items:center;gap:10px;display:flex}.view-switch{border:1px solid var(--line);border-radius:4px;display:flex;overflow:hidden}.view-switch button{color:#6b6a77;background:#fff;border:0;height:32px;padding:0 12px;font-size:11px;font-weight:700}.view-switch button.active{background:var(--purple-soft);color:var(--purple)}.exports button[disabled]{opacity:.45;cursor:not-allowed}.exports button[disabled]:hover{color:var(--ink);background:#fff;border-color:#dcdbe0}.note-cell{color:#5f5e6b;max-width:340px}.toast-area{z-index:20;position:fixed;bottom:28px;right:28px}.toast{color:#fff;background:#18223d;border-radius:9px;max-width:340px;padding:13px 18px;font-size:12px;font-weight:600;line-height:1.4;box-shadow:0 8px 30px #0003}:focus-visible{outline:2px solid var(--purple);outline-offset:2px}@media (max-width:700px){.lang-switch{flex-direction:column}.demo-banner{flex-direction:column;align-items:flex-start}.report-title-actions{flex-wrap:wrap}.row-action{opacity:1}}.login-shell{background:var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:32px 30px;display:flex;box-shadow:0 8px 30px #2b2a3b12}.login-card img{width:160px;height:auto;margin-bottom:6px}.login-card h1{margin:0 0 6px;font-size:19px}.login-card label{color:#8c8b96;letter-spacing:.5px;text-transform:uppercase;flex-direction:column;gap:6px;font-size:9px;font-weight:800;display:flex}.login-card input{height:38px;color:var(--ink);background:#fff;border:1px solid #dedde2;border-radius:4px;padding:0 11px;font-size:13px}.login-card input:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px #ee2c6c18}.login-card .primary{width:100%;margin-top:8px}.login-error{color:#b3235a;background:var(--purple-soft);border:1px solid #f4bcd1;border-radius:4px;margin:0;padding:9px 11px;font-size:11px;line-height:1.45}.signout{border-top:0;border:1px solid var(--line);color:#6b6a77;background:#fff;border-radius:4px;width:100%;height:36px;margin-top:18px;font-size:11px;font-weight:700}.signout:hover{border-color:var(--purple);color:var(--purple)}.dialog-backdrop{z-index:30;background:#2b2a3b66;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:8px;flex-direction:column;gap:13px;width:100%;max-width:420px;padding:24px;display:flex;box-shadow:0 20px 60px #0004}.dialog h2{margin:0 0 4px;font-size:17px}.dialog label{color:#8c8b96;letter-spacing:.5px;text-transform:uppercase;flex-direction:column;gap:6px;font-size:9px;font-weight:800;display:flex}.dialog input,.dialog select{height:36px;color:var(--ink);background:#fff;border:1px solid #dedde2;border-radius:4px;padding:0 10px;font-size:12px}.dialog input:focus,.dialog select:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px #ee2c6c18}.dialog .check{text-transform:none;color:var(--ink);flex-direction:row;align-items:center;gap:8px;font-size:11px}.dialog .check input{width:16px;height:16px;accent-color:var(--purple)}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.dialog-actions button{min-width:96px}.primary[disabled]{opacity:.5;cursor:not-allowed}.row-detail .readonly span{color:#5f5e6b;text-transform:none;letter-spacing:0;background:#f1f0f3;border:1px solid #0000;border-radius:4px;align-items:center;height:34px;padding:0 10px;font-size:12px;font-weight:400;display:flex}.admin{flex-direction:column;gap:16px;display:flex}.admin-add{border:1px solid var(--line);background:#fff;border-radius:5px;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px 18px;display:flex}.admin-add label{color:#8c8b96;letter-spacing:.5px;text-transform:uppercase;flex-direction:column;flex:200px;gap:6px;min-width:180px;font-size:9px;font-weight:800;display:flex}.admin-add input,.admin-add select{height:36px;color:var(--ink);background:#fff;border:1px solid #dedde2;border-radius:4px;width:100%;padding:0 10px;font-size:12px}.admin-add input:focus,.admin-add select:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px #ee2c6c18}.admin-add .primary,.admin-add .outline{flex:none;height:36px}.admin-add .check{text-transform:none;min-width:0;height:36px;color:var(--ink);flex-direction:row;flex:none;align-items:center;gap:8px;font-size:11px}.admin-add .check input{width:16px;height:16px;accent-color:var(--purple)}.admin-assign{flex-direction:column;align-items:stretch}.admin-assign h3{margin:0;font-size:13px}.admin-assign-fields{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.admin-hint{color:var(--muted);margin:0;font-size:11px;line-height:1.5}.admin-table-wrap{border:1px solid var(--line);background:#fff;border-radius:5px;overflow:auto}.admin-table{border-collapse:collapse;width:100%;min-width:640px;font-size:12px}.admin-table th{color:#fff;text-align:left;letter-spacing:.4px;background:#2b2a3b;padding:11px 13px;font-size:9px;font-weight:800}.admin-table td{vertical-align:middle;border-bottom:1px solid #efedf0;padding:9px 13px}.admin-table tr:last-child td{border-bottom:0}.admin-table tr.inactive td{color:#a3a2ac}.admin-table select{height:30px;color:inherit;background:#fff;border:1px solid #dedde2;border-radius:4px;padding:0 8px;font-size:11px}.admin-table select:disabled{color:#a3a2ac;background:#f4f3f6}.admin-inline-input{width:100%;min-width:140px;height:30px;color:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 8px;font-size:12px}.admin-inline-input:hover:not(:disabled){background:#fff;border-color:#e2e1e6}.admin-inline-input:focus{border-color:var(--purple);background:#fff;outline:none;box-shadow:0 0 0 3px #ee2c6c18}.admin-actions{white-space:nowrap;gap:6px;display:flex}.admin-actions button{color:#5f5e6b;background:#fff;border:1px solid #dcdbe0;border-radius:4px;height:30px;padding:0 10px;font-size:11px;font-weight:700}.admin-actions button:hover:not(:disabled){border-color:var(--purple);color:var(--purple);background:var(--purple-soft)}.admin-actions button:disabled{opacity:.45;cursor:not-allowed}.admin-empty{text-align:center;color:var(--muted);padding:24px 13px}@media (max-width:700px){.admin-add label{flex-basis:100%}}.setup-link{background:var(--purple-soft);border:1px solid #f4bcd1;border-radius:5px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.setup-link>div:first-child{flex-direction:column;flex:320px;gap:7px;min-width:0;display:flex}.setup-link strong{color:#8c1e48;font-size:12px}.setup-link code{word-break:break-all;color:var(--ink);background:#fff;border:1px solid #f0cada;border-radius:4px;padding:9px 11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.setup-link small{color:#9a4368;font-size:10px;line-height:1.5}.setup-link-actions{flex:none;gap:8px;display:flex}.setup-link-actions button{border-radius:4px;height:34px;padding:0 14px;font-size:11px;font-weight:700}.pill.pending{color:#8a6412;background:#fdf3dc}.audit-when{white-space:nowrap;color:#6f6e7b;font-variant-numeric:tabular-nums}.audit-action{color:#5f5e6b;background:#f2f1f4;border-radius:3px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.account-card{border:1px solid var(--line);background:#fff;border-radius:5px;flex-direction:column;gap:20px;max-width:520px;padding:22px 24px;display:flex}.account-identity{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.account-identity strong{font-size:16px}.account-identity span{color:var(--muted);font-size:12px}.account-form{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding-top:20px;display:flex}.account-form h3{margin:0;font-size:13px}.account-form label{color:#8c8b96;letter-spacing:.5px;text-transform:uppercase;flex-direction:column;gap:6px;font-size:9px;font-weight:800;display:flex}.account-form input{height:36px;color:var(--ink);background:#fff;border:1px solid #dedde2;border-radius:4px;padding:0 10px;font-size:12px}.account-form input:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px #ee2c6c18}.account-form .primary{align-self:flex-start;margin-top:4px}.login-note{color:var(--muted);margin:0;font-size:11px;line-height:1.5}@media (max-width:700px){.setup-link-actions{width:100%}}.absence-summary{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.absence-summary article{border:1px solid var(--line);background:#fff;border-radius:5px;flex-direction:column;gap:5px;padding:16px 18px;display:flex}.absence-summary span{color:#8d8c97;letter-spacing:.8px;text-transform:uppercase;align-items:center;gap:7px;font-size:9px;font-weight:800;display:flex}.absence-summary span i{border-radius:2px;flex:none;width:9px;height:9px}.absence-summary strong{font-size:22px}.absence-summary small{color:#91909b;font-size:10px}.absence-tag{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.absence-tag i{border-radius:2px;flex:none;width:9px;height:9px}.absent-col{background:#f7fbfa}.absent-bar{border-radius:2px;width:26px;height:3px;margin:5px auto 0;display:block}@media (max-width:700px){.absence-summary{grid-template-columns:1fr}}.calendar{flex-direction:column;gap:16px;display:flex}.month-grid{background:var(--line);border:1px solid var(--line);border-radius:5px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.month-head{text-align:center;color:#8b92a2;letter-spacing:.4px;background:#fafbfc;padding:10px 8px;font-size:9px;font-weight:800}.month-day{background:#fff;flex-direction:column;align-items:flex-start;gap:5px;min-height:88px;padding:8px 9px;display:flex}.month-day.outside{background:#fbfbfc}.month-day.outside .month-date{color:#c8c7ce}.month-day.weekend{background:#fbfbfc}.month-day.is-today{box-shadow:inset 0 0 0 2px var(--purple)}.month-day.missing{background:#fffaf2}.month-date{color:#6f6e7b;font-size:11px;font-weight:800}.month-day.is-today .month-date{color:var(--purple)}.month-hours{font-size:14px}.month-absence{letter-spacing:.3px;color:#fff;border-radius:3px;padding:3px 6px;font-size:9px;font-weight:800}.month-missing{color:#a9863c;font-size:9px;font-weight:700}.month-away{color:#8c8b96;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:auto;font-size:9px;overflow:hidden}.calendar-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:18px;font-size:11px;display:flex}.calendar-legend span{align-items:center;gap:7px;display:flex}.calendar-legend strong{color:var(--ink);margin-left:auto;font-size:12px}.swatch{border-radius:3px;width:11px;height:11px;display:inline-block}.swatch.missing{background:#fffaf2;border:1px solid #e8d3ae}.team-month{min-width:900px;font-size:11px}.team-month th{text-align:center;padding:8px 4px;font-size:9px}.team-month th:first-child{text-align:left;padding-left:13px}.team-month th.weekend{color:#9a99a5}.team-name{white-space:nowrap;padding-left:13px;font-weight:700}.team-cell{text-align:center;font-variant-numeric:tabular-nums;color:#5f5e6b;padding:7px 3px}.team-cell.weekend{background:#fbfbfc}.team-cell.missing{background:#fffaf2}.team-absence{border-radius:2px;width:10px;height:10px;display:inline-block}.team-total{text-align:right;white-space:nowrap;padding-right:13px}@media (max-width:700px){.month-day{min-height:70px;padding:6px}.month-away{display:none}}.approval-queue{background:#fff;border:1px solid #f0dfb4;border-radius:5px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.approval-queue h3{color:#7a6224;margin:0;font-size:13px}.approval-row{border-top:1px solid #f4ecd9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;display:flex}.approval-queue .approval-row:first-of-type{border-top:0;padding-top:0}.approval-row>div:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.approval-row strong{font-size:13px}.approval-row span{color:#6f6e7b;font-size:11px}.approval-row small{color:var(--muted);font-size:11px}.approval-actions{flex:none;gap:8px;display:flex}.approval-actions button{border-radius:4px;height:34px;padding:0 16px;font-size:11px;font-weight:700}.pill.status-pending{color:#8a6412;background:#fdf3dc}.pill.status-approved{color:#197b61;background:#e7f7f2}.pill.status-rejected{color:#8c1e48;background:var(--purple-soft)}.decision-note{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.4;display:block}@media (max-width:700px){.approval-actions{width:100%}.approval-actions button{flex:1}}
