@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap";:root{--ink:#2d2c42;--muted:#777386;--primary:#6551ad;--line:#e8e5ef;--bg:#faf9fd}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:16px DM Sans,sans-serif}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 15px;font-size:.875rem;font-weight:600;display:inline-flex}button:hover:not(:disabled){background:#f0edf8;border-color:#bdb1dd}button:disabled{cursor:default;opacity:.55}:focus-visible{outline-offset:3px;outline:3px solid #9380d2}a{color:var(--primary)}h1,h2,h3,.brand{font-family:Manrope,sans-serif}h1{letter-spacing:-.055rem;margin:4px 0 10px;font-size:1.85rem;font-weight:800}h2{margin:0;font-size:1.15rem;font-weight:800}h3{margin:0 0 20px;font-size:1.1rem}p{line-height:1.6}small{color:var(--muted);font-size:.8rem;line-height:1.5}input,select,textarea{color:var(--ink);background:#fff;border:1px solid #dcd7e8;border-radius:10px;min-width:0;max-width:100%;min-height:43px;padding:10px 12px;font-size:1rem}label{flex-direction:column;gap:8px;font-size:.9rem;font-weight:500;display:flex}input[type=checkbox]{width:18px;height:18px;min-height:auto;accent-color:var(--primary)}input[type=color]{width:65px;padding:4px}select{cursor:pointer}fieldset{border:1px solid var(--line);border-radius:15px;margin:0;padding:18px}legend{padding:0 6px;font-size:.9rem;font-weight:700}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:15px;min-height:93px;padding:18px max(28px,50vw - 720px);display:flex}.brand{color:var(--ink);white-space:nowrap;align-items:center;gap:12px;font-size:1.25rem;font-weight:500;text-decoration:none;display:flex}.brand b{font-weight:800}.brand small{margin-top:4px;font-family:DM Sans,sans-serif;font-size:.75rem;display:block}.brand-icon{width:46px;height:46px;color:var(--primary);background:#eee8fc;border-radius:17px;justify-content:center;align-items:center;display:flex}.header-actions{align-items:center;gap:12px;display:flex}.lock-button{color:#5a526e;background:#f7f5fc;border-color:#e8e0f5}.unlocked,.primary{color:#fff;background:#6551ad;border-color:#6551ad}.unlocked:hover:not(:disabled),.primary:hover:not(:disabled){color:#fff;background:#574497}.icon-btn{min-width:42px;padding:9px}.shell{max-width:1500px;margin:auto;padding:0 28px}.tabs{border-bottom:1px solid var(--line);gap:28px;padding:14px 0 0;display:flex;overflow-x:auto}.tabs button{color:#817a91;white-space:nowrap;background:0 0;border:0;border-radius:0;padding:15px 0 20px;position:relative}.tabs button.active{color:var(--primary)}.tabs button.active:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:0;right:0}main{padding:34px 0 10px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px;display:flex}.eyebrow{color:#8b7ca7;letter-spacing:.13em;margin:0 0 8px;font-size:.75rem;font-weight:700}.family-legend{flex-wrap:wrap;gap:15px;display:flex}.family-legend span{align-items:center;gap:7px;font-size:.875rem;display:flex}.family-legend i{border:1px solid #0000000e;border-radius:50%;width:12px;height:12px}.toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.date-navigation,.toolbar-right{align-items:center;gap:8px;display:flex}.date-navigation h2{padding:0 8px;font-size:1rem}.toolbar-right input{font-size:.85rem}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.day{border:1px solid var(--line);background:#fff;border-radius:18px;min-width:0;overflow:hidden;box-shadow:0 3px 10px #372a5810}.day.today{border:2px solid #b4a5d6}.day-head{justify-content:space-between;align-items:flex-start;gap:3px;min-height:87px;padding:15px 11px 12px;display:flex}.weekday{text-transform:capitalize;color:var(--muted);margin-bottom:4px;font-size:.875rem;display:block}.day-head strong{font-family:Manrope,sans-serif;font-size:1.5rem;display:inline-block}.today-label{color:var(--primary);margin-top:3px;font-size:.75rem;display:block}.remote{color:#786392;background:#f8f6fc;border-color:#0000;gap:5px;min-width:43px;min-height:42px;padding:7px 4px}.remote:disabled{opacity:1;background:0 0}.half{border-bottom:2px solid #fff;min-height:78px;padding:12px 13px}.half-label{color:#595268;align-items:center;gap:6px;margin-bottom:6px;font-size:.875rem;display:flex}.person-name{color:#373141;font-size:.875rem;font-weight:600}.half select{background:#ffffffa6;border-color:#fff;width:100%;min-height:38px;padding:4px;font-size:.875rem}.day-body{min-height:132px;padding:14px 11px 16px}.badge{color:#7a7486;background:#f4f2f7;border-radius:6px;align-items:center;gap:4px;padding:4px 6px;font-size:.75rem;display:inline-flex}.badge.done{color:#397669;background:#eaf4ef}.badge.absence{color:#a65d39;background:#fff0e8}.time-main{white-space:nowrap;margin:13px 0 4px;font-size:.88rem;font-weight:700}.day-body small{font-size:.8rem}.day-actions{flex-direction:column;gap:6px;margin-top:13px;display:flex}.day-actions button{min-height:38px;padding:6px;font-size:.875rem}.absence-button{color:#a86256}.journey{border-top:1px dashed var(--line);color:var(--muted);gap:4px;margin-top:12px;padding-top:10px;font-size:.8rem;display:grid}.day-note{overflow-wrap:anywhere;margin-bottom:0;font-size:.875rem;line-height:1.5}.vacation-label{color:#a13e47;background:#fbe5e7;padding:6px 9px;font-size:.8rem;font-weight:700}.vacation{border-color:#e9afb5}.under-week{grid-template-columns:1.3fr 1fr;gap:16px;margin-top:23px;display:grid}.week-summary,.notice-card{color:#655585;background:#f0ecfa;border:1px solid #e6dff3;border-radius:16px;align-items:center;gap:15px;padding:21px;display:flex}.week-summary strong{color:var(--ink);margin-top:5px;font-size:1.3rem;display:block}.week-summary span,.notice-card strong{font-size:.875rem}.week-summary button{background:#fff9;border-color:#ded4ee;margin-left:auto}.notice-card{color:#806441;background:#fff6e9;border-color:#f0e6d6}.notice-card p{color:#88735a;margin:5px 0 0;font-size:.875rem}.remote-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin:20px 2px;font-size:.8rem;display:flex}.remote-legend span{margin-left:auto}footer{border-top:1px solid var(--line);color:var(--muted);gap:24px;margin-top:18px;padding:22px 0 26px;font-size:.75rem;display:flex}footer span{align-items:center;gap:6px;display:flex}footer a{color:var(--muted);margin-left:auto}.error,.warning{color:#9b4636;background:#fff0eb;border-radius:12px;padding:14px 17px;font-size:.9rem;line-height:1.5}.error{margin:12px 0}.error button{margin-left:10px}.toast{z-index:100;color:#fff;background:#403554;border-radius:14px;max-width:90vw;padding:13px 20px;font-size:.875rem;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 30px #23152a26}.loading{min-height:100vh;color:var(--primary);flex-direction:column;justify-content:center;align-items:center;padding:25px;display:flex}.loading p{color:var(--muted)}.panel{border:1px solid var(--line);background:#fff;border-radius:20px;margin-bottom:20px;padding:25px}.edit-dialog{width:calc(100% - 24px);max-width:610px;max-height:90dvh;color:var(--ink);border:0;border-radius:24px;padding:28px;box-shadow:0 30px 100px #2223}.edit-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a223f66}.edit-dialog form{gap:20px;display:grid}.dialog-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.dialog-heading h2{text-transform:capitalize}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.absence-fields{background:#fff6f1;border-radius:15px;gap:15px;padding:18px;display:grid}.check-label{flex-direction:row;align-items:center;gap:10px;line-height:1.5;display:flex}.dialog-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding-top:20px;display:flex}.kpis{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.kpi{background:#f1eefb;border-radius:18px;padding:23px}.kpi:nth-child(2){background:#edf4fd}.kpi:nth-child(3){background:#edf7f1}.kpi:nth-child(4){background:#fff1e5}.kpi span{color:#746c82;margin-bottom:13px;font-size:.875rem;display:block}.kpi strong{font-family:Manrope,sans-serif;font-size:1.7rem}.two-columns{grid-template-columns:1fr 1fr;gap:20px;display:grid}.total-panel{color:#fff;background:#6551ad;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:24px;display:flex}.total-panel strong{font-family:Manrope,sans-serif;font-size:2rem}.total-panel p{margin:0;font-size:.9rem}.total-panel small{color:#e2daf6}.money-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:13px 0;font-size:.9rem;display:flex}.money-row:last-child{border-bottom:0}.muted{color:var(--muted);font-size:.875rem;line-height:1.65}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:12px;font-size:.8rem;font-weight:600}td{border-bottom:1px solid #f0edf5;padding:13px 12px;line-height:1.5}tbody tr:last-child td{border:0}.empty{text-align:center;color:var(--muted);padding:45px 20px}.settings-form{gap:20px;display:grid}.settings-form fieldset{gap:18px;display:grid}.settings-form .panel{margin:0}.person-setting{grid-template-columns:1fr 80px;gap:20px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.section-heading h3{margin:0}.row-fields{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.row-fields label{flex:1}.row-fields .icon-btn{flex:none}.reminder-list{gap:12px;display:grid}.reminder{background:#faf7fd;border-radius:14px;gap:17px;padding:18px;display:flex}.reminder strong{margin-bottom:5px;display:block}.reminder p{color:var(--muted);margin:0;font-size:.875rem}.date-chip{text-align:center;min-width:53px;color:var(--primary);font-weight:800}.date-chip span{text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;display:block}.sticky-save{border:1px solid var(--line);z-index:3;background:#ffffffec;border-radius:15px;justify-content:flex-end;padding:12px;display:flex;position:sticky;bottom:15px}.print-report{display:none}.source-links{flex-wrap:wrap;gap:15px;margin-top:15px;font-size:.8rem;display:flex}.day-head{height:105px}.person-setting+.person-setting{margin-top:18px}summary{cursor:pointer;font-weight:700}fieldset:disabled{opacity:.8}.settings-form>fieldset{border:0;padding:0}@media (width<=1150px){.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.toolbar{flex-direction:column;align-items:flex-start}.page-heading{align-items:flex-start}.tabs{gap:22px}.day-head{min-height:75px}.day-actions{flex-direction:row}.day-actions button{flex:1}}@media (width<=700px){.topbar{min-height:78px;padding:16px}.brand{gap:9px;font-size:1rem}.brand-icon{border-radius:13px;width:38px;height:38px}.brand small{font-size:.75rem}.lock-button{padding:10px}.lock-button span{display:none}.shell{padding:0 15px}.tabs{gap:25px;padding-top:5px}.tabs button{gap:6px;padding-bottom:16px;font-size:.875rem}.tabs button svg{width:16px}main{padding-top:24px}h1{font-size:1.5rem}.page-heading{flex-direction:column;gap:8px;margin-bottom:20px}.family-legend,.toolbar{gap:12px}.date-navigation{flex-wrap:wrap;gap:3px;width:100%}.date-navigation h2{padding:0 3px;font-size:.875rem}.date-navigation>button:last-child{margin-left:auto}.toolbar-right{justify-content:space-between;width:100%}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.day{border-radius:15px}.day-head{min-height:78px;padding:12px}.day-head strong{font-size:1.4rem}.half{padding:11px 12px}.day-body{min-height:125px;padding:13px 12px}.time-main{font-size:.9rem}.under-week{grid-template-columns:1fr}.week-summary,.notice-card{padding:17px}.remote-legend{line-height:1.7}.remote-legend span{margin-left:0}footer{flex-wrap:wrap;gap:12px}.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:17px}.kpi strong{font-size:1.4rem}.two-columns{grid-template-columns:1fr;gap:0}.panel{padding:19px}.total-panel{flex-direction:column;align-items:flex-start;gap:12px}.total-panel strong{font-size:1.8rem}.form-grid{gap:12px}.edit-dialog{padding:20px}.dialog-heading h2{font-size:1rem}th,td{padding:10px 8px}.row-fields{gap:8px}.row-fields label{min-width:100px}}@media print{body{color:#111;background:#fff;font:10pt Arial,sans-serif}.topbar,.shell,.edit-dialog,.toast{display:none!important}.print-report{padding:0;display:block!important}.print-report h1{font-size:20pt}.print-report h2{font-size:14pt}.print-report .kpis{gap:12px;display:flex}.print-report .kpi{border:1px solid #ddd;flex:1;padding:10px}.print-report .kpi strong{font-size:14pt}.print-report table{font-size:8pt}.print-report td,.print-report th{padding:5px}.print-report tr{break-inside:avoid}.print-report .total-panel{color:#000;background:#fff;border:1px solid #ddd;padding:10px}.print-report .total-panel strong{font-size:16pt}.print-report .total-panel small{color:#444}thead{display:table-header-group}@page{size:A4 portrait;margin:12mm}}.weekend-control{justify-content:flex-end;margin-bottom:14px;display:flex}@media (width>=1151px){.week-grid[data-days="5"]{grid-template-columns:repeat(5,minmax(0,1fr))}.week-grid[data-days="6"]{grid-template-columns:repeat(6,minmax(0,1fr))}}.view-switch{border:1px solid var(--line);background:#fff;border-radius:12px;gap:3px;padding:3px;display:inline-flex}.view-switch button{border:0;padding:8px 12px}.view-switch button[aria-pressed=true]{background:var(--primary);color:#fff}.date-navigation{flex-wrap:wrap}.month-scroll{padding:3px 3px 12px;overflow-x:auto}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;min-width:850px;display:grid}.month-weekday{text-align:center;color:var(--muted);padding:10px 0;font-size:.8rem;font-weight:700}.month-empty{border:1px dashed var(--line);background:#f6f4f8;border-radius:15px}.month-grid .day{border-radius:15px}.month-grid .day-head{height:82px;min-height:82px;padding:10px}.month-grid .day-head strong{font-size:1.25rem}.month-grid .weekday{display:none}.month-grid .half{padding:8px 10px}.month-grid .half-label{font-size:.7rem}.month-grid .person-name{font-size:.8rem}.month-grid .half select{max-width:100%;padding:6px;font-size:.8rem}.month-grid .day-body{min-height:100px;padding:10px}.month-grid .time-main{font-size:.8rem}.month-grid .day-body small{font-size:.7rem}.month-grid .day-actions{flex-direction:column}.month-grid .day-actions button{padding:6px;font-size:.75rem}.month-grid .vacation-label{font-size:.7rem}.month-grid .remote{gap:3px;padding:4px}.month-grid .today-label{font-size:.6rem}.month-grid .day-note{overflow-wrap:anywhere;font-size:.75rem}.auth-shell{max-width:560px;margin:50px auto;padding:15px}.auth-form{gap:16px;margin:22px 0;display:grid}.auth-shell h2{margin-top:22px}.export-shortcuts{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.export-help{color:var(--muted);font-size:.85rem}.calendar-export{max-height:90dvh;overflow:auto}.calendar-export form>label,.calendar-export .form-grid{margin:16px 0}.accounts-shell{max-width:1000px;margin:24px auto;padding:20px}.account-nav,.account-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.account-heading{margin:30px 0 24px}.account-list{gap:16px;margin:24px 0;display:grid}.account-card{border:1px solid var(--line);background:#fdfcfe;border-radius:16px;padding:20px}.account-card h3{overflow-wrap:anywhere;margin:0;font-size:1.1rem}.account-username{color:var(--muted);overflow-wrap:anywhere;margin:6px 0 0}.account-badges,.account-actions{flex-wrap:wrap;gap:8px;display:flex}.account-badges{justify-content:flex-end}.account-actions{margin:18px 0 12px}.account-success{color:#306757;background:#eaf4ef;border-radius:12px;padding:16px;line-height:1.6}.accounts-shell fieldset{background:#fff}.accounts-shell .form-grid{align-items:start}.accounts-shell .section-heading h2{margin:0}.account-card small{line-height:1.6}@media (width<=600px){.accounts-shell{margin:0 auto;padding:15px}.account-card{padding:15px}.account-card-heading{flex-direction:column}.account-badges{justify-content:flex-start}.accounts-shell .form-grid{grid-template-columns:1fr}.account-actions button{flex:auto}.account-nav{font-size:.875rem}}
