:root{--paper:#eef1ec;--surface:#fff;--ink:#1b2420;--muted:#5f6b64;--line:#d5dbd3;--jade:#17695a;--jade-dark:#0f4d42;--jade-wash:#e2efeb;--pass:#1f7a4d;--pass-wash:#e1f1e8;--fail:#b3261e;--fail-wash:#fbe7e5;--warn:#94570a;--warn-wash:#fbefd9;--radius:10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#131916;--surface:#1c2420;--ink:#e8eee9;--muted:#9aa8a0;--line:#2f3a34;--jade:#4bb59f;--jade-dark:#7fd3c0;--jade-wash:#1d322c;--pass:#5cc48c;--pass-wash:#1a3226;--fail:#ff8a80;--fail-wash:#3a1f1d;--warn:#f0b45c;--warn-wash:#392c14}}:root[data-theme=dark]{--paper:#131916;--surface:#1c2420;--ink:#e8eee9;--muted:#9aa8a0;--line:#2f3a34;--jade:#4bb59f;--jade-dark:#7fd3c0;--jade-wash:#1d322c;--pass:#5cc48c;--pass-wash:#1a3226;--fail:#ff8a80;--fail-wash:#3a1f1d;--warn:#f0b45c;--warn-wash:#392c14}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);line-height:1.5;font-size:16px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1,h2,h3{line-height:1.25;margin:0}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{font-size:1rem}a{color:var(--jade)}:focus-visible{outline:3px solid var(--jade);outline-offset:2px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--jade-dark);color:#fff;padding:max(10px,env(safe-area-inset-top)) 16px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h1{color:#fff;font-size:1.1rem}.topbar button{background:transparent;color:#fff;border:1px solid hsla(0,0%,100%,.4);padding:6px 10px;font-size:.85rem}.page{max-width:760px;margin:0 auto;padding:16px 16px 104px;display:grid;grid-gap:16px;gap:16px}.nav{position:fixed;bottom:0;left:0;right:0;z-index:5;background:var(--surface);border-top:1px solid var(--line);justify-content:flex-start;overflow-x:auto;padding:0 max(10px,env(safe-area-inset-left)) max(8px,calc(env(safe-area-inset-bottom) - 2px));border-radius:18px 18px 0 0;box-shadow:0 -2px 10px rgba(0,0,0,.06)}.nav,.nav a{display:flex}.nav a{flex:1 1;min-width:48px;justify-content:center;align-items:center;text-align:center;padding:15px 6px 8px;text-decoration:none;color:var(--muted);font-size:.85rem}.nav a[aria-current=page]{color:var(--jade);font-weight:600}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel>.head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}.panel>.body,.panel>.collapse>.body{padding:14px;display:grid;grid-gap:12px;gap:12px}.rows>*{padding:12px 14px;border-top:1px solid var(--line)}.rows>:first-child{border-top:0}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.row .grow{min-width:0;flex:1 1}.muted{color:var(--muted);font-size:.875rem}.stack{display:grid;grid-gap:10px;gap:10px}.cluster{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.empty{padding:24px 14px;text-align:center;color:var(--muted)}label.field{display:grid;grid-gap:4px;gap:4px;font-size:.9rem;font-weight:600}label.field>span.hint{font-weight:400;color:var(--muted)}button,input,select,textarea{font:inherit;color:inherit}input[type=date],input[type=number],input[type=password],input[type=text],input[type=time],select,textarea{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-weight:400}textarea{min-height:84px;resize:vertical}.check{display:flex;gap:8px;align-items:center;font-size:.92rem;min-height:32px}.check input{width:20px;height:20px}.btn,button{min-height:44px;padding:8px 16px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn.primary,button.primary{background:var(--jade);border-color:var(--jade);color:#fff}button.danger{color:var(--fail);border-color:var(--fail)}button.small{min-height:36px;padding:4px 12px;font-size:.875rem}button:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:600;background:var(--jade-wash);color:var(--jade-dark);white-space:nowrap}.badge.pass{background:var(--pass-wash);color:var(--pass)}.badge.fail{background:var(--fail-wash);color:var(--fail)}.badge.warn{background:var(--warn-wash);color:var(--warn)}.badge.none{background:var(--paper);color:var(--muted);border:1px solid var(--line)}.alert{padding:10px 12px;border-radius:8px;background:var(--fail-wash);color:var(--fail);font-size:.92rem}.alert.ok{background:var(--pass-wash);color:var(--pass)}.alert ul{margin:4px 0 0;padding-left:18px}.choice{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-gap:8px;gap:8px}.choice button{min-height:48px}.choice button[aria-pressed=true].pass{background:var(--pass);border-color:var(--pass);color:#fff}.choice button[aria-pressed=true].fail{background:var(--fail);border-color:var(--fail);color:#fff}.choice button[aria-pressed=true].na{background:var(--muted);border-color:var(--muted);color:#fff}.item{padding:14px;border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px}.item:first-child{border-top:0}.item.bad{background:var(--fail-wash)}.thumbs{display:flex;flex-wrap:wrap;gap:8px}.thumb{position:relative;width:84px;height:84px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--paper)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb button{position:absolute;top:2px;right:2px;min-height:26px;width:26px;padding:0;border-radius:99px;background:rgba(0,0,0,.65);color:#fff;border:0}.progress{height:6px;background:var(--paper);border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--jade)}.stat{display:flex;gap:16px;flex-wrap:wrap;font-size:.9rem}.stat b{font-size:1.1rem}.tabs{display:flex;gap:4px;overflow-x:auto}.tabs button{min-height:38px}.tabs button[aria-pressed=true]{background:var(--jade);color:#fff}.center{min-height:100dvh;display:grid;place-items:center;padding:16px}.login{width:100%;max-width:380px}@media (prefers-reduced-motion:no-preference){.progress>i{transition:width .25s}}.login-page{min-height:100dvh;display:flex;flex-direction:column;padding:max(16px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom))}.login-main{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.login-brand{display:grid;justify-items:center;grid-gap:12px;gap:12px;text-align:center;max-width:380px}.login-brand img{width:140px;height:140px;border-radius:50%;background:#fff;display:block}.login-brand h1{font-size:1.05rem;letter-spacing:.02em;color:var(--jade-dark)}.login-footer{text-align:center;color:var(--muted);font-size:.78rem;line-height:1.6;padding-top:16px}.theme-toggle{display:flex;justify-content:center;gap:10px}.theme-toggle button{width:48px;min-height:48px;padding:0;border-radius:50%;color:var(--muted)}.theme-toggle button[aria-pressed=true]{background:var(--jade);border-color:var(--jade);color:#fff}.btn-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px}.btn-row .btn{gap:8px;padding:8px 10px;color:var(--jade-dark)}.btn-row .btn svg{flex:none;color:var(--jade)}.topbar-brand{display:flex;align-items:center;gap:10px;min-width:0}.topbar-brand img{width:44px;height:44px;flex:none;border-radius:50%;background:#fff;display:block}.topbar-text{min-width:0}.topbar-sub,.topbar-text h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-sub{font-size:.75rem;opacity:.85}.tabs{gap:8px;margin:0 -16px;padding:2px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:none;white-space:nowrap;min-height:40px;padding:0 16px;font-size:.9rem;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:99px}.tabs button[aria-pressed=true]{background:var(--jade-wash);color:var(--jade-dark);border-color:var(--jade);box-shadow:inset 0 0 0 1px var(--jade)}.topbar-actions{display:flex;align-items:center;gap:8px;flex:none}.topbar .topbar-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:#fff;border:1px solid hsla(0,0%,100%,.4);text-decoration:none}.topbar .topbar-icon:hover{background:hsla(0,0%,100%,.12)}.inbox-item{display:block;padding:12px 14px;border-top:1px solid var(--line);color:inherit;text-decoration:none;display:grid;grid-gap:2px;gap:2px}.inbox>.inbox-item:first-child{border-top:0}.inbox-item.unread{background:var(--pass-wash);box-shadow:inset 3px 0 0 var(--jade)}.inbox-title{font-weight:700}.inbox-body{font-size:.92rem}.topbar .topbar-icon{position:relative}.bell-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d93025;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--jade-dark);box-sizing:content-box}.notif-list{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px;font-size:.92rem}.notif-state{display:flex;align-items:center;gap:8px;font-weight:600}.notif-dot{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}.notif-dot.on{background:var(--pass)}.pw-wrap{position:relative;display:block}.pw-wrap input{padding-right:48px}.pw-wrap .pw-toggle{position:absolute;top:0;right:0;height:100%;min-height:44px;width:44px;padding:0;border:0;background:transparent;color:var(--muted);border-radius:0 8px 8px 0}.pw-wrap .pw-toggle:hover{color:var(--jade-dark)}.inbox .body{padding:14px}.photo-btns{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.photo-btns .btn{gap:6px;padding:4px 8px;white-space:nowrap}.money-wrap{position:relative;display:block}.money-wrap input{padding-right:36px;text-align:left}.money-wrap .money-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600;pointer-events:none}.report-filters{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;align-items:end}.report-filters .field:only-of-type{grid-column:1/-1}.report-filters .report-new{grid-column:1/-1;width:100%}@media (min-width:720px){.report-filters{grid-template-columns:1fr 1fr auto}.report-filters .field:only-of-type{grid-column:auto}.report-filters .report-new{grid-column:auto;width:auto}}.report-filters .report-new:disabled{opacity:.5;cursor:not-allowed}.shift-list{display:grid;grid-gap:10px;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.shift-item{display:grid;grid-gap:6px;gap:6px}.topbar .topbar-logo{padding:0;border:0;min-height:0;background:transparent;border-radius:50%;flex:none;display:block;cursor:pointer}.topbar .topbar-logo:focus-visible{outline:3px solid #fff;outline-offset:2px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--jade-wash);color:var(--jade-dark);font-weight:700;flex:none;border:2px solid var(--line);box-sizing:border-box}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.drawer-backdrop{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .2s,visibility 0s .2s}.drawer-backdrop.open{opacity:1;visibility:visible;transition:opacity .2s}.drawer{position:fixed;top:0;bottom:0;left:0;z-index:31;width:min(86vw,320px);background:var(--surface);color:var(--ink,inherit);display:flex;flex-direction:column;transform:translateX(-100%);visibility:hidden;transition:transform .22s ease,visibility 0s .22s;box-shadow:4px 0 24px rgba(0,0,0,.25);padding-bottom:env(safe-area-inset-bottom)}.drawer.open{transform:none;visibility:visible;transition:transform .22s ease}@media (prefers-reduced-motion:reduce){.drawer,.drawer-backdrop{transition:none}}.drawer-head{position:relative;display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;padding:max(28px,env(safe-area-inset-top)) 16px 18px;background:var(--jade-dark);color:#fff}.drawer-head .avatar{border-color:#fff;background:#fff}.drawer-name{font-weight:700;font-size:1.1rem;margin-top:4px}.drawer-role{font-size:.85rem;opacity:.9}.drawer .drawer-close{position:absolute;top:max(8px,env(safe-area-inset-top));right:8px;width:36px;min-height:36px;height:36px;padding:0;background:transparent;border:0;color:#fff}.drawer-nav{flex:1 1;overflow-y:auto;padding:8px 0}.drawer-item{display:flex;align-items:center;gap:14px;padding:14px 20px;color:inherit;text-decoration:none;font-weight:600}.drawer-item svg{color:var(--jade);flex:none}a.drawer-item:hover{background:var(--paper)}.drawer-item.disabled{opacity:.55;cursor:not-allowed}.drawer-item em{margin-left:auto;font-style:normal;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--paper);border:1px solid var(--line);color:var(--muted)}.drawer-foot{display:grid;grid-gap:3px;gap:3px;padding:14px 20px;border-top:1px solid var(--line);font-size:.74rem;color:var(--muted);line-height:1.45}.drawer-foot b{color:var(--jade-dark);font-size:.8rem}.account-avatar{gap:14px}.account-avatar,.crumbs{display:flex;align-items:center}.crumbs{gap:6px;min-width:0;margin:-6px 0 -4px}.crumbs .crumb-back{flex:none;width:36px;min-height:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--jade-dark)}.crumbs ol{margin:0;padding:0;list-style:none;font-size:.86rem;color:var(--muted)}.crumbs li,.crumbs ol{display:flex;align-items:center;gap:4px;min-width:0}.crumbs li>a,.crumbs li>span:not(.crumb-sep){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34vw;text-decoration:none}.crumbs li>a{color:var(--jade-dark);font-weight:600}.crumbs li>span[aria-current]{color:var(--ink,inherit);font-weight:700}.crumbs .crumb-sep{opacity:.5}.page-wrap{overflow:hidden;min-height:calc(100dvh - 72px)}.nav,.topbar{transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pageInR{0%{opacity:.3;transform:translate3d(60vw,0,0)}to{opacity:1;transform:none}}@keyframes pageInL{0%{opacity:.3;transform:translate3d(-60vw,0,0)}to{opacity:1;transform:none}}.page.enter{animation:pageIn .2s ease-out backwards}.page.enter-r{animation:pageInR .3s cubic-bezier(.2,.8,.2,1) backwards}.page.enter-l{animation:pageInL .3s cubic-bezier(.2,.8,.2,1) backwards}.collapse{overflow:hidden}.nav-track{position:relative;display:flex;flex:1 1 auto;min-width:0}.nav-ind{position:absolute;top:0;left:0;width:calc(100% / var(--n, 5));height:3px;display:flex;justify-content:center;pointer-events:none;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s}.nav-ind:after{content:"";width:56%;height:3px;border-radius:0 0 3px 3px;background:var(--jade)}.nav a{transition:color .2s}@media (prefers-reduced-motion:reduce){.page.enter,.page.enter-l,.page.enter-r{animation:none}.nav-ind{transition:none}}.ic{flex:none;margin-right:6px}.btn.ico,button.ico,label.ico{width:44px;min-width:44px;padding:0}.btn.ico.small,button.ico.small,label.ico.small{width:40px;min-width:40px;min-height:40px}.btn.ico .ic,button.ico .ic,label.ico .ic{margin-right:0}.btn.ring-ico,button.ring-ico{width:44px;min-width:44px;padding:0;border-radius:50%;background:transparent;border:2px solid var(--jade);color:var(--jade)}button.ring-ico .ic{margin-right:0}button.ring-ico.sm{width:40px;min-width:40px;min-height:40px}.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.btn-row.nowrap{flex-wrap:nowrap}.btn-row.nowrap>.btn,.btn-row.nowrap>button{padding-left:10px;padding-right:10px;white-space:nowrap}.btn-row.nowrap>.grow{flex:1 1 auto;min-width:0}.btn-full{display:flex;width:100%}.chat-fab{position:fixed;right:14px;bottom:calc(env(safe-area-inset-bottom, 0px) + 82px);z-index:6;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--jade);color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.28);text-decoration:none;animation:fab-in .25s cubic-bezier(.2,.8,.2,1)}.chat-fab .bell-badge{top:-4px;right:-4px}@keyframes fab-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.chat-fab .bell-badge{border-color:#fff}.crumb-slot{margin-left:auto;flex:none;display:flex;gap:6px}.crumb-slot button{min-height:36px;padding:4px 12px;font-size:.875rem}.btn-row .btn.primary,.btn-row .btn.primary svg{color:#fff}.rows.tri>*{position:relative;padding-left:36px}.rows.tri>:before{content:"";position:absolute;left:15px;top:18px;width:0;height:0;border-left:9px solid var(--jade);border-top:6px solid transparent;border-bottom:6px solid transparent}.lines{display:grid;grid-gap:2px;gap:2px;font-size:.88rem}.tabs button{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.tab-pane{display:grid;grid-gap:16px;gap:16px}.tab-pane.from-r{animation:tabInR .28s cubic-bezier(.2,.8,.2,1) backwards}.tab-pane.from-l{animation:tabInL .28s cubic-bezier(.2,.8,.2,1) backwards}@keyframes tabInR{0%{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}@keyframes tabInL{0%{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tab-pane.from-l,.tab-pane.from-r{animation:none}}.panel[id^=shift-]{scroll-margin-top:84px}