:root{--bg:#f4f5f7;--card:#fff;--ink:#231f20;--muted:#677085;--line:#e3e6ec;--line-soft:#eef0f4;--accent:#b8155c;--accent-soft:#fce8f1;--brand-grad:linear-gradient(90deg, #5a3198 0%, #961867 30%, #dc1764 55%, #f14f2d 78%, #f68522 100%);--accent-ink:#fff;--warn-bg:#fff3dc;--warn:#8f5400;--err-bg:#fdeaea;--err:#b42323;--ok:#17803a;--ok-bg:#e2f5e7;--info:#1d5fc2;--info-bg:#e5effd;--leave:#6b45c4;--leave-bg:#efe9fc;--off:#eff1f4;--sick:#ffd8d8;--earned:#d6ecff;--unpaid:#e9e2ff;--pending:#fff1c2;--shadow:0 1px 2px #1018280d, 0 1px 3px #1018280f;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#0f1218;--card:#171b23;--ink:#e6e9f0;--muted:#98a1b3;--line:#29303c;--line-soft:#20262f;--accent:#e3437f;--accent-soft:#3a1a2c;--warn-bg:#3a2b10;--warn:#ffc56b;--err-bg:#3c1a1c;--err:#ff9d9d;--ok:#6fd38f;--ok-bg:#16351f;--info:#8db4ff;--info-bg:#1a2a47;--leave:#c3a8ff;--leave-bg:#2c2350;--off:#1e232c;--sick:#5a2a2a;--earned:#1f3a57;--unpaid:#3a2f5c;--pending:#4f4318;--shadow:0 1px 2px #0006}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Noto Sans Devanagari,sans-serif}h1,h2,h3,h4{margin:0 0 12px}h2{letter-spacing:-.01em;font-size:22px}h3{font-size:16px}h4{margin-top:16px;font-size:14px}a{color:var(--accent)}input,select,textarea,button,.button{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 12px}textarea{width:100%;min-height:60px}button,.button{cursor:pointer;margin-right:6px;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-block}button:hover:not(:disabled),.button:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}button.danger{border-color:var(--err);color:var(--err)}button.link{color:var(--accent);background:0 0;border:none;padding:4px}button.small,.small button{padding:3px 8px;font-size:12px}.small{font-size:12px}.muted{color:var(--muted)}.center{place-items:center;height:100vh;display:grid}.spacer{flex:1}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.shell{flex-direction:column;min-height:100vh;display:flex}.top{background:var(--card);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:12px;padding:11px 20px 10px;display:flex;position:sticky;top:0}.top:before{content:"";background:var(--brand-grad);height:3px;position:absolute;top:0;left:0;right:0}.brand-mark{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.logo{align-items:center;gap:10px;display:inline-flex}.logo-mark{width:34px;height:34px}.logo .logo-word{width:auto;height:22px;display:block}.brand-app{border-left:1px solid var(--line);color:var(--muted);letter-spacing:.01em;padding-left:14px;font-size:15px;font-weight:600}.logo-full .logo-word{width:220px;height:auto;margin:0 auto;display:block}.login-lang{justify-content:flex-end;margin-bottom:-8px;display:flex}.login-title{text-align:center;margin-bottom:4px}.login-title h1{margin:0;font-size:22px}.login-wrap{background:radial-gradient(1200px 500px at 50% -10%, var(--accent-soft), transparent 70%), var(--bg)}.login.card{padding-top:22px;position:relative;overflow:hidden}.login.card:before{content:"";background:var(--brand-grad);height:4px;position:absolute;top:0;left:0;right:0}.brand-icon,.phone-only,.menu-btn{display:none}.body{flex:1;min-height:0;display:flex}.side{border-right:1px solid var(--line);background:var(--card);flex-shrink:0;width:210px;height:calc(100vh - 57px);padding:14px 10px;position:sticky;top:57px;overflow-y:auto}.side-group{margin-bottom:10px}.side-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 12px 4px;font-size:11px;font-weight:600}.side a{color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:7px 12px;text-decoration:none;display:flex}.side a svg{color:var(--muted);flex-shrink:0}.side a:hover{background:var(--off)}.side a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.side a.active svg{color:var(--accent)}main{flex:1;min-width:0;max-width:1280px;padding:22px 28px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.page-head h2{margin:0}.page-head:has(input.search){justify-content:flex-start}.page-head:has(input.search) h2{flex:1}.month-label{text-align:center;min-width:130px}.filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:12px 0;display:flex}.filters label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}label.check{align-items:center;gap:6px;color:var(--ink)!important;flex-direction:row!important;font-size:14px!important}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:16px}.grid2{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:16px;display:grid}.grid2 .card{max-height:420px;margin:0;overflow:auto}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.form-grid .wide{grid-column:1/-1}.stats{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:130px;box-shadow:var(--shadow);padding:12px 18px}.stat b{font-size:26px;display:block}.stat span{color:var(--muted)}.stat.warn b{color:var(--warn)}.note{background:var(--earned);border-radius:8px;margin:10px 0;padding:10px 12px}.note.warn{background:var(--warn-bg);color:var(--warn)}.note.error{background:var(--err-bg);color:var(--err)}.inline-error{color:var(--err);margin-left:6px;font-size:12px}.secret{-webkit-user-select:all;user-select:all;word-break:break-all;margin-top:6px;font-size:15px;display:block}table{border-collapse:collapse;background:var(--card);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}th{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:600}tbody tr:hover td{background:color-mix(in srgb, var(--off) 60%, transparent)}tfoot td{border-top:2px solid var(--line)}table.dense td,table.dense th{padding:4px 6px}td.num{text-align:right;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover,tr.offday td{background:var(--off)}tr.voided td{color:var(--muted);text-decoration:line-through}td.actions{white-space:nowrap}.note-input{width:130px;margin-right:4px;padding:3px 6px;font-size:12px}input.num{width:70px}input.year{width:80px}.table-wrap{overflow-x:auto}.pill{background:var(--off);white-space:nowrap;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.pill.pending{background:var(--pending)}.pill.approved,.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.rejected,.pill.missing_out{background:var(--err-bg);color:var(--err)}.pill.cancelled{background:var(--off);color:var(--muted)}table.calendar th,table.calendar td{text-align:center;border:1px solid var(--line);min-width:26px;padding:3px 0;font-size:12px}table.calendar .sticky{background:var(--card);text-align:left;white-space:nowrap;z-index:1;min-width:200px;padding:3px 8px;position:sticky;left:0}table.calendar th.today{outline:2px solid var(--accent)}.off{background:var(--off)}.cal.sick{background:var(--sick)}.cal.earned{background:var(--earned)}.cal.unpaid,.cal.leave{background:var(--unpaid)}.cal.pending{background:var(--pending)}.legend{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.legend .cal{text-align:center;border:1px solid var(--line);border-radius:3px;width:20px;display:inline-block}table.register th,table.register td{text-align:center;border:1px solid var(--line);white-space:nowrap;padding:2px 3px;font-size:11px}table.register td:nth-child(2){text-align:left}.register .lbl.in{color:var(--ok);font-weight:600}.register .lbl.out{color:var(--err);font-weight:600}.modal-back{z-index:20;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:12px;width:min(760px,100%);max-height:90vh;padding:18px;overflow:auto}.modal-head{justify-content:space-between;align-items:center;display:flex}.login-wrap{place-items:center;min-height:100vh;padding:16px;display:grid}.login{flex-direction:column;gap:12px;width:min(380px,100%);display:flex}.login label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.print-only{display:none}input.search{min-width:220px}.side-who,.side-foot,.tabs,.menu-back{display:none}.attention{border-color:var(--warn)}.attention h3{color:var(--warn)}.attention ul{margin:0;padding-left:18px}.attention li{margin:3px 0}.lang{font-weight:600}.kv{max-width:460px;margin-bottom:10px}.kv div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.kv span{color:var(--muted)}.login-head{gap:10px}.login-head h1{margin:0;font-size:22px}.login-head img{border-radius:9px}.big-stats .stat b{font-size:30px}.year-table td,.year-table th{text-align:right}.year-table td:first-child,.year-table th:first-child{text-align:left}.year-table tr.future td{color:var(--muted)}@media (width<=760px){body{-webkit-text-size-adjust:100%;font-size:15px}.menu-btn{display:none}.wide-only,.top .who{display:none!important}.phone-only{display:inline}img.brand-icon.phone-only{margin-right:-2px;display:block}.top{padding-top:max(13px, env(safe-area-inset-top))}.side{height:auto;top:0}.top{padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top))}.brand{font-size:17px}main{padding:12px 12px calc(84px + env(safe-area-inset-bottom))}h2{font-size:20px}.side{z-index:30;width:min(290px,82vw);padding:calc(14px + env(safe-area-inset-top)) 10px calc(80px + env(safe-area-inset-bottom));border-right:none;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.side.open{transform:none;box-shadow:0 0 40px #0000004d}.side a{padding:12px 14px;font-size:16px}.side-who{padding:4px 14px 10px;display:block}.side-foot{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;margin-top:10px;padding-top:8px;display:flex}.side-foot button{padding:10px 14px;font-size:16px}.menu-back{z-index:25;background:#00000059;display:block;position:fixed;inset:0}.tabs{z-index:35;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a,.tabs button{color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:2px;min-height:56px;margin:0;padding:7px 2px 6px;font-size:11px;text-decoration:none;display:flex}.tabs .active{color:var(--accent)}.tabs span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}input,select,textarea,button,.button{min-height:44px;padding:9px 12px;font-size:16px}button.small,.small button,button.link{min-height:40px;padding:8px 12px;font-size:14px}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0}label.check{min-height:40px;font-size:15px!important}.filters{gap:10px}.filters>label,.filters>input.search,.filters>select{flex:140px}.filters input,.filters select{width:100%}.filters>label.check,.card .filters>label.check{flex:100%}.filters input[type=checkbox],.filters input[type=radio]{flex:none;width:22px}input.search{width:100%;min-width:0}.page-head button{min-height:40px}.page-head:has(input.search){flex-wrap:nowrap}.page-head input.search{flex:1}.stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat{min-width:0;padding:10px 12px}.stat b{font-size:24px}.modal-back{z-index:40;place-items:end stretch;padding:0}.modal{width:100%;max-height:92vh;padding-bottom:calc(18px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.grid2 .card{max-height:none}.card{padding:12px}.note-input{width:100%;margin:4px 0}.time-input{width:120px}table.cards,table.cards tbody,table.cards tr,table.cards td{width:100%;display:block}table.cards{background:0 0}table.cards thead{display:none}table.cards tr{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:8px;padding:8px 12px}table.cards td{text-align:right;border:none;justify-content:space-between;gap:10px;padding:3px 0;display:flex}table.cards td:before{content:attr(data-label);color:var(--muted);text-align:left;flex-shrink:0;font-size:13px}table.cards td[data-label=""]:before,table.cards td:not([data-label]):before{content:none}table.cards td:empty{display:none}table.cards td.title{text-align:left;width:auto;margin-right:10px;font-size:16px;font-weight:600;display:inline-block}table.cards td.actions{white-space:normal;flex-wrap:wrap;justify-content:flex-start;gap:6px;padding-top:8px}table.cards td.actions button{margin:0}table.cards tfoot,table.cards tfoot tr,table.cards tfoot td{display:block}table.cards tfoot tr{background:var(--off)}table.cards tfoot td:empty{display:none}table.cards tr.offday td{background:0 0}table.cards tr.offday{background:var(--off)}.grid2 table.cards tr{border-color:var(--line)}.table-wrap:has(table.cards){overflow:visible}}@media print{.no-print,.top,.side,.tabs,button{display:none!important}.print-only{display:revert}main{padding:0}body{color:#000;background:#fff;font-size:10px}table{background:#fff}th,td{color:#000;border:1px solid #999!important}td.sign{min-width:80px}.table-wrap{overflow:visible}@page{size:A4 landscape;margin:10mm}}.modal label:not(.check){color:var(--muted);flex-direction:column;gap:4px;margin:8px 0;font-size:12px;display:flex}.time-input{width:105px;margin-right:4px;padding:3px 6px;font-size:12px}.paper-preview{overflow-x:auto}.paper-sheet{color:#000;border:1px solid var(--line);page:paper;break-after:page;background:#fff;width:194mm;margin:0 auto 16px;padding:4mm}.paper-sheet:last-child{break-after:auto}.paper-head{border:1px solid #000;justify-content:space-between;padding:2px 6px;font-size:11px;display:flex}.paper-cols{grid-template-columns:1fr 1fr;gap:0;display:grid}table.paper{border-collapse:collapse;background:#fff;width:100%}table.paper th,table.paper td{color:#000;white-space:nowrap;height:4.6mm;padding:0 3px;font-size:8.5px;line-height:1.1;overflow:hidden;border:1px solid #000!important}table.paper th{text-align:center;font-size:8px}table.paper{table-layout:fixed}table.paper th:first-child{width:7mm}table.paper th:nth-child(3){width:15mm}table.paper th:nth-child(4),table.paper th:nth-child(5){width:11mm}table.paper th:nth-child(6){width:9mm}table.paper td:first-child{text-align:center}table.paper td:nth-child(2){text-overflow:ellipsis;font-weight:600}table.paper td.des{text-overflow:ellipsis;font-size:7px}table.paper tr.dept td{text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#ddd;font-weight:700}.paper-foot{margin-top:3px;font-size:8px}@page paper{size:A4 portrait;margin:6mm}@media print{.paper-sheet{border:none;width:auto;margin:0;padding:0}.paper-preview{overflow:visible}}.flag{border-radius:10px;margin:1px 0;padding:1px 7px;font-size:11px;display:inline-block}.flag.red{background:var(--err-bg);color:var(--err)}.flag.amber{background:var(--warn-bg);color:var(--warn)}.flag.grey{background:var(--off);color:var(--muted)}.name-link{color:inherit;text-decoration:none}.name-link:hover{color:var(--accent);text-decoration:underline}.seg-ctl{background:var(--off);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg-ctl button{color:var(--muted);background:0 0;border:none;border-radius:8px;margin:0;padding:6px 14px}.seg-ctl button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow);font-weight:600}.seg-ctl.small button{padding:4px 10px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 14px;display:flex}.stepper{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;align-items:stretch;display:inline-flex}.stepper>button{background:0 0;border:none;border-radius:10px;margin:0;padding:0 14px;font-size:20px;line-height:1}.stepper>button:disabled{opacity:.3}.stepper-label{border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft);flex-direction:column;justify-content:center;align-items:center;min-width:150px;padding:5px 8px;line-height:1.2;display:flex;position:relative}.stepper-label b{font-size:15px}.stepper-label input[type=date]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.person-pick select{min-width:240px;font-weight:500}.tiles{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px;margin-bottom:16px;display:grid}.tile{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--line);flex-direction:column;gap:2px;margin:0;padding:10px 14px;display:flex}.tile b{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1.15}.tile span{color:var(--muted);font-size:12px;font-weight:500}.tile.ok{border-top-color:var(--ok)}.tile.ok b{color:var(--ok)}.tile.amber{border-top-color:#e3a008}.tile.amber b{color:var(--warn)}.tile.red{border-top-color:var(--err)}.tile.red b{color:var(--err)}.tile.info{border-top-color:var(--info)}.tile.info b{color:var(--info)}.tile.leave{border-top-color:var(--leave)}.tile.leave b{color:var(--leave)}button.tile.on{outline:2px solid var(--accent);background:var(--accent-soft)}.chip{white-space:nowrap;background:var(--off);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.info{background:var(--info-bg);color:var(--info)}.chip.red{background:var(--err-bg);color:var(--err)}.chip.amber{background:var(--warn-bg);color:var(--warn)}.chip.leave{background:var(--leave-bg);color:var(--leave)}.chip.grey{background:var(--off);color:var(--muted)}.people,.day-list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.person,.day-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;padding:10px 16px;display:grid}.person{grid-template-columns:minmax(200px,1.3fr) minmax(220px,1.5fr) 90px minmax(160px,1.2fr) 60px}.day-row{grid-template-columns:56px minmax(220px,1.6fr) 90px minmax(160px,1.4fr) 60px;scroll-margin-top:80px}.person:last-child,.day-row:last-child{border-bottom:none}.person.gp{grid-template-columns:minmax(200px,1.2fr) minmax(240px,1.6fr) 80px minmax(150px,1fr) 140px}.person.gp .act{justify-content:flex-end;gap:6px;display:flex}.person.gp.cancelled,.person.gp.unused{color:var(--muted)}.person.gp.nopass,.person.no_out,.day-row.no_out{background:color-mix(in srgb, var(--err-bg) 55%, transparent)}.person.off,.person.absent,.person.notin{color:var(--muted)}.day-row.offday{background:var(--off)}.day-row.picked{outline:2px solid var(--accent);outline-offset:-2px}.person-main{text-align:left;color:inherit;background:0 0;border:none;align-items:center;gap:12px;min-width:0;margin:0;padding:0;display:flex}.person-main:hover b{color:var(--accent)}.person-main .who{flex-direction:column;min-width:0;display:flex}.person-main .who b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.avatar{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.avatar.big{width:52px;height:52px;font-size:17px}.times,.d-times{flex-direction:column;gap:4px;min-width:0;display:flex}.time-pair{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.time-pair small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:11px}.time-pair b{font-weight:600}.time-pair b.late{color:var(--warn)}.hours,.d-hours{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;display:flex}.hours b,.d-hours b{font-size:16px}.pos{color:var(--ok)}.neg{color:var(--err)}.flags{flex-wrap:wrap;gap:4px;display:flex}.act{text-align:right}.act button{margin:0}.d-date{flex-direction:column;align-items:center;line-height:1.1;display:flex}.d-date b{font-variant-numeric:tabular-nums;font-size:20px}.empty{margin:0;padding:16px}.empty-state{text-align:center;background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);padding:40px 16px}.empty-state b{font-size:16px}.person-head{align-items:center;gap:14px;margin-bottom:14px;display:flex}.person-head h3{margin:0;font-size:19px}.daybar{background:var(--off);border-radius:3px;max-width:260px;height:6px;position:relative}.daybar .seg{background:var(--ok);border-radius:3px;position:absolute;top:0;bottom:0}.daybar .seg.open{background:repeating-linear-gradient(45deg, var(--info), var(--info) 4px, transparent 4px, transparent 7px)}.person.no_out .daybar .seg.open{background:repeating-linear-gradient(45deg, var(--err), var(--err) 4px, transparent 4px, transparent 7px)}.daybar i{background:var(--line);width:1px;position:absolute;top:-2px;bottom:-2px}.month-grid{grid-template-columns:repeat(7,1fr);gap:6px;max-width:760px;margin-bottom:16px;display:grid}.mg-head{color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.mg-day{border:1px solid var(--line);background:var(--card);font-variant-numeric:tabular-nums;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:58px;margin:0;padding:6px 2px;display:flex;position:relative}.mg-day .mg-n{color:var(--muted);font-size:11px;font-weight:600;position:absolute;top:4px;left:7px}.mg-day b{margin-top:8px;font-size:14px}.mg-day .mg-ot{color:var(--ok);font-size:10px;font-weight:600}.mg-day.done{background:var(--ok-bg);border-color:#0000}.mg-day.no_out{background:var(--err-bg);color:var(--err);border-color:#0000}.mg-day.inside,.mg-day.carry{background:var(--info-bg);color:var(--info);border-color:#0000}.mg-day.leave{background:var(--leave-bg);color:var(--leave);border-color:#0000}.mg-day.absent{background:var(--warn-bg);color:var(--warn);border-color:#0000}.mg-day.off{background:var(--off);border-style:dashed}.mg-day.none{opacity:.45}.mg-day.is-today{box-shadow:inset 0 0 0 2px var(--accent)}.mg-day.picked{outline:2px solid var(--accent);outline-offset:1px}@media (width<=760px){main{padding:12px 12px calc(84px + env(safe-area-inset-bottom))}.page-head .seg-ctl{width:100%}.page-head .seg-ctl button{flex:1;min-height:38px;padding:6px 4px;font-size:14px}.seg-ctl button{min-height:34px}.toolbar{gap:8px}.toolbar .stepper{flex:55%}.stepper>button{min-height:50px;padding:0 18px}.stepper-label{flex:1}.person-pick{flex:100%}.person-pick select{width:100%;min-width:0}.toolbar input.search{flex:100%}.tiles{grid-template-columns:repeat(4,1fr);gap:6px}.tile{border-top-width:3px;padding:6px 8px}.tile b{font-size:17px}.tile span{font-size:10.5px;line-height:1.2}.person{grid-template-columns:1fr auto;grid-template-areas:"main hours""times times""flags act";gap:6px 10px;padding:12px}.person-main{grid-area:main}.person .hours{grid-area:hours}.person .times{grid-area:times;padding-left:50px}.person .flags{grid-area:flags;padding-left:50px}.person .act{grid-area:act}.day-row{grid-template-columns:44px 1fr auto;grid-template-areas:"date times hours""date flags act";gap:4px 10px;padding:10px 12px}.day-row .d-date{grid-area:date}.day-row .d-times{grid-area:times}.day-row .d-hours{grid-area:hours}.day-row .flags{grid-area:flags}.day-row .act{grid-area:act}.day-row .flags:empty{display:none}.act button.small{min-height:34px;padding:4px 12px}.month-grid{gap:4px}.mg-day{border-radius:8px;min-width:0;min-height:50px;padding:4px 0;font-size:13px}.mg-day b{font-size:12px}.mg-day .mg-n{font-size:10px;top:3px;left:5px}.mg-day .mg-ot{display:none}}img.avatar.photo{object-fit:cover;background:var(--off);padding:0}.profile-head{align-items:flex-start;gap:16px;margin-bottom:10px;display:flex}.profile-head p{margin:4px 0 0}.photo-box{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.photo-box .avatar.big{width:84px;height:84px;font-size:22px}.photo-pick{cursor:pointer;margin:0;padding:3px 10px;font-size:12px}.id-cards{border-top:1px solid var(--line);margin-top:14px}.id-doc{margin:6px 0}.id-doc .button{cursor:pointer;margin:0}.note.birthday{background:var(--accent-soft);color:var(--accent);font-weight:600}@media (width<=760px){.photo-pick{min-height:34px;padding:6px 12px;font-size:13px}.profile-head{gap:12px}}.attn{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px}.attn.has{border-color:var(--warn)}.attn-head{align-items:center;gap:10px;padding:8px 14px;display:flex}.attn-toggle{color:inherit;background:0 0;border:none;align-items:center;gap:8px;margin:0;padding:4px 0;display:flex}.attn.has .attn-toggle b{color:var(--warn)}.attn-empty{margin:0;padding:0 14px 12px}.attn-group{border-top:1px solid var(--line-soft);padding:8px 14px}.attn-group h4{margin:2px 0;font-size:13px}.attn-group>p{margin:0 0 6px}.attn-row{border-top:1px dashed var(--line-soft);font-variant-numeric:tabular-nums;grid-template-columns:minmax(180px,1fr) minmax(200px,1.6fr) auto;align-items:center;gap:10px;padding:5px 0;display:grid}.attn-row.seen{color:var(--muted)}.attn-row .link{text-align:left;margin:0;padding:0}.attn-row .act{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}@media (width<=700px){.attn-row{grid-template-columns:1fr;gap:3px}.attn-row .act{justify-content:flex-start}}.lc-wrap,.reg-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}table.calendar.lc{border-collapse:collapse;width:100%}table.calendar.lc th{color:var(--muted);padding:4px 0;font-weight:600;line-height:1.15}table.calendar.lc th .wd,table.regs th .wd{opacity:.75;font-size:10px;font-weight:500;display:block}table.calendar.lc th.today,table.regs th.today{background:var(--accent);color:#fff;outline:none}table.calendar.lc td.today,table.regs td.today{box-shadow:inset 2px 0 0 var(--accent), inset -2px 0 0 var(--accent)}table.calendar.lc td.cal{height:44px;font-weight:700}table.calendar.lc td.cal.sick{color:var(--err)}table.calendar.lc td.cal.leave{color:var(--leave);background:var(--leave-bg)}table.calendar.lc .tot,table.regs .tot{text-align:right;font-variant-numeric:tabular-nums;min-width:48px;padding:3px 8px}.lc-empty{text-align:center;padding:20px!important}.lc-name{color:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:8px;margin:0;padding:0;text-decoration:none;display:flex}.lc-name .who{flex-direction:column;min-width:0;line-height:1.2;display:flex}.lc-name .who b{text-overflow:ellipsis;max-width:170px;font-size:13px;overflow:hidden}.lc-name .who small{font-size:11px}.lc-name:hover b{color:var(--accent)}.avatar.sm{width:28px;height:28px;font-size:11px}.lc-day{cursor:default}.lc-day .lc-sub{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 3px;font-size:10px;font-weight:600;overflow:hidden}.lc-day.off .lc-sub{color:var(--muted)}.mg-day.lc-sick{background:var(--sick);color:var(--err);border-color:#0000}.mg-day.lc-leave{background:var(--leave-bg);color:var(--leave);border-color:#0000}.mg-day.lc-pending{background:var(--pending);color:var(--warn);border-color:#0000}.lc-year{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:16px;display:grid}.lc-mini{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px}.lc-mini-title{margin-bottom:6px;font-size:13px;font-weight:700}.month-grid.mini{gap:3px;margin:0}.month-grid.mini .mg-head{font-size:10px}.month-grid.mini .mg-day{border-radius:5px;min-height:26px;padding:0}.month-grid.mini .mg-day .mg-n{font-size:10px;position:static}.month-grid.mini .mg-day b{display:none}.lc-badge{border-radius:8px;place-items:center;width:30px;height:30px;font-weight:700;display:inline-grid}.day-row.lc-req .d-hours b{font-size:16px}table.regs{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}table.regs th,table.regs td{border:1px solid var(--line-soft);text-align:center;padding:3px 2px;font-size:11px}table.regs thead th{background:var(--card);z-index:2;color:var(--muted);font-weight:600;line-height:1.15;position:sticky;top:0}table.regs .sticky{background:var(--card);text-align:left;white-space:nowrap;z-index:1;min-width:210px;padding:4px 8px;position:sticky;left:0}table.regs thead th.sticky{z-index:3}table.regs td.rc{min-width:38px;height:40px}table.regs td.rc .io{flex-direction:column;line-height:1.25;display:flex}table.regs td.rc .io+.io{border-top:1px dotted var(--line);margin-top:2px;padding-top:2px}table.regs td.rc .io span:first-child{color:var(--ok);font-weight:600}table.regs td.rc .io span:last-child{color:var(--text,inherit)}table.regs td.rc.done{background:color-mix(in srgb, var(--ok-bg) 70%, transparent)}table.regs td.rc.no_out{background:var(--err-bg)}table.regs td.rc.no_out .io span:last-child{color:var(--err);font-weight:700}table.regs td.rc.leave{background:var(--leave-bg);color:var(--leave);font-weight:700}table.regs td.rc.absent{color:var(--warn);font-weight:700}table.regs td.rc.off:not(.done):not(.no_out){background:var(--off)}table.regs tbody tr:hover td{background-image:linear-gradient(color-mix(in srgb, var(--accent) 6%, transparent), color-mix(in srgb, var(--accent) 6%, transparent))}.reg-key{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.reg-key .rk{border:1px solid var(--line);border-radius:4px;place-items:center;min-width:32px;margin-left:8px;padding:2px 3px;font-size:10px;line-height:1.2;display:inline-grid}.reg-key .rk.done{background:var(--ok-bg)}.reg-key .rk.no_out{background:var(--err-bg)}.reg-key .rk.leave{background:var(--leave-bg);color:var(--leave);font-weight:700}.reg-key .rk.absent{color:var(--warn);font-weight:700}.reg-key .rk.off{background:var(--off);height:18px}.reg-wrap{max-height:calc(100vh - 260px);overflow:auto}@media (width<=700px){.reg-wrap{max-height:none}table.regs .sticky,table.calendar.lc .sticky{min-width:140px}.lc-name .who small{display:none}.lc-name .who b{max-width:100px}}table.regs td.rc.leave.sick,.reg-key .rk.sick{background:var(--sick);color:var(--err);font-weight:700}.legend .cal.off{height:18px}table.regs td.rc{min-width:36px}.attn-head{flex-wrap:wrap;justify-content:space-between}.attn-toggle{white-space:nowrap;min-height:0!important;color:inherit!important;padding:4px 0!important;font-size:15px!important}
