@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Libre+Franklin:wght@600;700;800&display=swap";
@media (min-width:601px){body:has(.calendar-view){overflow:hidden}.calendar-view{height:100dvh;overflow:hidden}.calendar-view .container{padding-top:22px;padding-bottom:12px}.calendar-view .topbar,.calendar-view .company-row{margin-bottom:16px}.calendar-view .month-nav{margin-bottom:10px}.calendar-view .day{min-height:72px;padding:7px}.calendar-view .legend{margin-top:12px;padding-top:12px}}.vacation-control{display:none}.vacation-auto{background:#f7f3fa;border-left:4px solid #6b5686;grid-template-columns:auto 1fr;align-items:end;gap:5px 18px;margin:0 0 20px;padding:18px 20px;display:grid}.vacation-auto span{color:#6b5686;text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}.vacation-auto strong{color:#34303b;font:700 28px Libre Franklin}.vacation-auto p{color:#5b5b54;grid-column:1/-1;margin:0;font-size:12px}.report{max-width:860px}.report-head{border-bottom:1px solid #d9d5cc;padding-bottom:18px}.totals{border:1px solid #e2dfd6;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:0;overflow:hidden}.totals article{border-right:1px solid #e2dfd6;border-radius:0}.totals article:last-child{border-right:0}.daily{border-top:1px solid #e2dfd6;gap:0}.daily article{background:0 0;border-width:0 0 1px;border-radius:0;padding:13px 4px}@media (max-width:600px){.totals{grid-template-columns:repeat(2,1fr)}.totals article{border-bottom:1px solid #e2dfd6}.vacation-auto{grid-template-columns:1fr}}*{box-sizing:border-box}body{color:#22231f;background:#f5f3ee;margin:0;font-family:IBM Plex Sans,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh}.container{max-width:980px;margin:auto;padding:28px 20px 60px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.brand{align-items:center;gap:10px;font:800 19px Libre Franklin;display:flex}.brand-mark{color:#fff;background:#2b4c43;border-radius:8px;place-items:center;width:34px;height:34px;font:800 16px Libre Franklin;display:grid}nav{background:#eae7dd;border-radius:10px;gap:6px;padding:4px;display:flex}.tab{color:#8a887e;background:0 0;border:0;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600}.tab.active{color:#22231f;background:#fff}.company-row{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.pill{color:#5b5b54;background:#fff;border:1.5px solid #ddd9cc;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:600}.pill.active,.primary{color:#fff;background:#2b4c43;border-color:#2b4c43}.pill.add{color:#2b4c43;border-style:dashed}.month-nav{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.month-nav>button,.pickers>button,.form-actions button{background:#fff;border:1px solid #ddd9cc;border-radius:8px;padding:8px 12px;font-weight:600}.month-nav>button{width:36px;height:36px;padding:0;font-size:21px}.pickers{align-items:center;gap:8px;display:flex;position:relative}.pickers .today{color:#2b4c43;font-size:13px}.dropdown{z-index:5;background:#fff;border:1px solid #ddd9cc;border-radius:10px;flex-direction:column;min-width:160px;max-height:260px;padding:6px;display:flex;position:absolute;top:44px;overflow:auto;box-shadow:0 10px 24px #00000024}.year-drop{min-width:100px;left:112px}.dropdown button{text-align:left;background:#fff;border:0;border-radius:6px;padding:8px 10px}.dropdown button.chosen{color:#fff;background:#2b4c43;font-weight:700}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.weekdays{margin-bottom:6px}.weekdays span{text-align:center;color:#8a887e;text-transform:uppercase;padding:4px 0;font-size:12px;font-weight:600}.day{text-align:left;color:#42403a;background:#fff;border:1px solid #e2dfd6;border-radius:10px;flex-direction:column;gap:5px;min-height:78px;padding:8px;display:flex}.day>b{font-size:13px}.activity-mini{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-size:10.5px;font-weight:600;display:flex;overflow:hidden}.activity-mini i,.legend i,.entry i{border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.day small{color:#8a887e;font-size:10px}.legend{border-top:1px solid #e2dfd6;flex-wrap:wrap;gap:14px;margin-top:18px;padding-top:16px;display:flex}.legend span{color:#5b5b54;align-items:center;gap:6px;font-size:12px;display:flex}.legend i{width:9px;height:9px}.overlay{z-index:10;background:#14140f59;justify-content:flex-end;display:flex;position:fixed;inset:0}.panel{background:#fff;width:min(400px,92vw);min-height:100%;padding:26px 24px;box-shadow:-8px 0 24px #0000001f}.panel header,.report-head{justify-content:space-between;align-items:start;gap:15px;display:flex}.panel h1,.report h1,.history h1{margin:0 0 4px;font:700 22px Libre Franklin}.panel header>button{background:0 0;border:0;font-size:25px}.entry{border:1px solid #e2dfd6;border-radius:10px;margin:14px 0;padding:12px}.entry strong{font-size:12px}.entry strong i{margin-right:7px}.entry span{color:#8a887e;margin-top:4px;font-size:12px;display:block}.entry p{color:#42403a;font-size:13px}.entry button{color:#2b4c43;background:#fff;border:0;padding:0 12px 0 0;font-size:12px;font-weight:600}.entry .delete{color:#96435a}.add-activity{color:#2b4c43;background:#fff;border:1px dashed #2b4c43;border-radius:8px;width:100%;padding:11px;font-weight:600}.panel label{margin:16px 0 6px;font-size:13px;font-weight:600;display:block}.panel input,.panel textarea{resize:vertical;border:1px solid #ddd9cc;border-radius:8px;width:100%;margin-top:6px;padding:10px}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{color:#8a887e;background:#fff;border:1px solid #ddd9cc;border-radius:20px;padding:7px 11px;font-size:12px}.form-actions{gap:8px;margin-top:22px;display:flex}.form-actions .primary{color:#fff;background:#2b4c43}.report-head{margin-bottom:22px}.report p,.history>p{color:#8a887e;margin:0;font-size:13px}.print{border-radius:8px;padding:9px 14px;font-size:13px;font-weight:600}.totals{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:25px;display:grid}.totals article{border-radius:10px;padding:14px}.totals span{font-size:12px;font-weight:600}.totals b{margin-top:4px;font:800 26px Libre Franklin;display:block}.report h2,.history h2{font:700 15px Libre Franklin}.daily{flex-direction:column;gap:8px;display:flex}.daily article{background:#fff;border:1px solid #e2dfd6;border-radius:8px;align-items:stretch;gap:11px;padding:10px 12px;display:flex}.daily article>b{text-align:center;color:#42403a;align-self:center;width:34px;font-size:14px}.daily article>i{border-radius:2px;width:3px}.daily strong{font-size:12px}.daily p{color:#42403a;margin-top:2px}.history>p{margin-bottom:20px}.history article{background:#fff;border:1px solid #e2dfd6;border-radius:10px;margin-bottom:10px;padding:16px 18px}.history article h2{margin:0 0 10px}.history article div{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.history span{color:#5b5b54;font-size:12px}.empty-copy{color:#8a887e;padding:12px 0;font-size:13px}.error,.notice{color:#96435a;background:#f2e0e5;border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:13px}.print-head,.signature{display:none}.auth{place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{text-align:center;background:#fff;border:1px solid #e2dfd6;border-radius:14px;width:min(400px,100%);padding:32px}.auth-card .brand-mark{margin:auto}.auth h1{margin:14px 0 8px;font:800 24px Libre Franklin}.auth p{color:#5b5b54}.auth label{text-align:left;margin-top:22px;font-size:13px;font-weight:600;display:block}.auth input{border:1px solid #ddd9cc;border-radius:8px;width:100%;margin-top:6px;padding:11px}.auth form button{color:#fff;background:#2b4c43;border:0;border-radius:8px;width:100%;margin-top:14px;padding:11px;font-weight:600}@media (max-width:600px){.container{padding:20px 12px}.day{min-height:67px;padding:6px}.activity-mini{font-size:9px}.legend{gap:9px}.pickers{gap:4px}.pickers>button{padding:8px}.report-head{flex-wrap:wrap}}@media print{body{background:#fff}.topbar,.company-row,.month-nav,.weekdays,.calendar-grid,.legend,.print,.error{display:none!important}.container{max-width:none;padding:0}.report{display:block!important}.print-head{border-bottom:2px solid #22231f;flex-direction:column;gap:5px;margin-bottom:20px;padding-bottom:14px;display:flex}.print-head b{font:800 20px Libre Franklin}.print-head strong{font-size:16px}.print-head span{color:#5b5b54;font-size:12px}.signature{text-align:center;border-top:1px solid #22231f;width:260px;margin:60px 0 0 auto;padding-top:6px;font-size:13px;display:block}.totals article,.daily article,.history article{break-inside:avoid}}
