:root{--bg: #eef2f7;--bg-subtle: #e6ebf2;--panel: #ffffff;--ink: #0f172a;--ink-soft: #334155;--muted: #64748b;--line: #e2e8f0;--line-strong: #cbd5e1;--accent: #0e3a44;--accent-2: #14606e;--accent-bright: #1a8a9a;--accent-soft: #e8f3f5;--surface: #f8fafc;--surface-raised: #ffffff;--ok: #15803d;--ok-soft: #ecfdf3;--warn: #c2410c;--warn-soft: #fff7ed;--live: #ea580c;--live-soft: #fff7ed;--err: #b42318;--err-soft: #fef3f2;--violet: #6d28d9;--violet-soft: #f5f3ff;--shadow-xs: 0 1px 2px rgb(15 23 42 / 4%);--shadow-sm: 0 1px 3px rgb(15 23 42 / 6%), 0 1px 2px rgb(15 23 42 / 4%);--shadow-md: 0 4px 16px rgb(15 23 42 / 7%), 0 2px 6px rgb(15 23 42 / 4%);--shadow-lg: 0 16px 40px rgb(15 23 42 / 10%), 0 4px 12px rgb(15 23 42 / 5%);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--sidebar-w: 260px;font-family:PingFang HK,Noto Sans TC,Helvetica Neue,ui-sans-serif,system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5}button,input,select{font:inherit}.center{min-height:100vh;display:grid;place-items:center}.muted{color:var(--muted)}.error{color:var(--err);margin:0}.hint{color:var(--ink-soft);font-size:.9rem;margin:0;line-height:1.78;letter-spacing:.012em;max-width:72ch}.hint strong{color:var(--ink);font-weight:650}.hint+.hint{margin-top:10px}.hint-block{display:grid;gap:12px;margin:0 0 4px}.ui-callout{border-radius:var(--radius-md);border:1px solid var(--line);padding:14px 16px;background:var(--surface);box-shadow:var(--shadow-xs);max-width:100%}.ui-callout-body{color:var(--ink-soft);font-size:.9rem;line-height:1.78;letter-spacing:.012em}.ui-callout-body p{margin:0}.ui-callout-body p+p,.ui-callout-body ul+p,.ui-callout-body p+ul{margin-top:10px}.ui-callout-body ul{margin:0;padding-left:1.15rem;display:grid;gap:6px}.ui-callout-body li{line-height:1.72}.ui-callout-body strong{color:var(--ink);font-weight:650}.ui-callout-title{margin:0 0 8px;font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}.ui-callout-info{border-color:#bae6fd;background:linear-gradient(180deg,#f0f9ff,#f8fafc)}.ui-callout-info .ui-callout-title{color:#0369a1}.ui-callout-warn{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed,#fffbeb)}.ui-callout-warn .ui-callout-title{color:#c2410c}.ui-callout-tip{border-color:#bbf7d0;background:linear-gradient(180deg,#ecfdf3,#f8fafc)}.ui-callout-tip .ui-callout-title{color:#15803d}.ui-callout-success{border-color:#a7f3d0;background:linear-gradient(180deg,#ecfdf5,#f8fafc)}.ui-prose{color:var(--ink-soft);font-size:.9rem;line-height:1.78;letter-spacing:.012em;max-width:72ch}.ui-prose p{margin:0}.ui-prose p+p{margin-top:10px}.page-stack{display:flex;flex-direction:column;gap:22px}.toolbar+.page-stack{margin-top:2px}.req-mark{color:var(--err);font-weight:700;font-size:.78em;margin-left:6px;letter-spacing:.02em}.mono{font-family:ui-monospace,monospace}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgb(26 138 154 / 22%),transparent 42%),radial-gradient(circle at 80% 0%,rgb(14 58 68 / 35%),transparent 38%),linear-gradient(145deg,#071f25,#0e3a44 45%,#14606e)}.card{background:var(--panel);border:1px solid rgb(255 255 255 / 60%);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-lg)}.login{width:min(420px,100%);display:grid;gap:14px}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap input{width:100%;padding-right:4.2rem}.password-input-toggle{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--muted, #64748b);font-size:.8rem;font-weight:600;cursor:pointer;padding:.35rem .55rem}.password-input-toggle:hover{color:var(--ink, #0f172a)}.login h1{margin:0;font-size:1.65rem;letter-spacing:-.02em;font-weight:700}.login>.muted{margin:-4px 0 2px}.login-one-click{width:100%}.login .env-switcher{margin:2px 0 4px}.login .env-status-line{margin-top:-6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;letter-spacing:.01em}label{display:grid;gap:6px;font-size:.9rem}label.check-row{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0}label.check-row input[type=checkbox],label.check-row input[type=radio]{width:1rem;height:1rem;margin:0;flex-shrink:0}input,select{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);box-shadow:var(--shadow-xs);transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 3px #1a8a9a2e}button{background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;border:0;border-radius:var(--radius-sm);padding:10px 16px;cursor:pointer;font-weight:600;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .15s,filter .15s}button:hover:not(:disabled){filter:brightness(1.06);box-shadow:var(--shadow-md)}button:active:not(:disabled){transform:translateY(1px)}button.primary,button[type=submit]:not(.secondary):not(.link):not(.nav-item):not(.nav-active):not(.data-tab):not(.dash-stat):not(.dash-todo-btn):not(.dash-flow-step):not(.ai-send){background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%)}button.secondary{background:var(--surface);color:var(--ink-soft);border:1px solid var(--line);box-shadow:var(--shadow-xs)}button.secondary:hover:not(:disabled){background:#fff;border-color:var(--line-strong);filter:none}button.link{background:none;color:var(--accent-2);padding:0;text-decoration:none;font-weight:600;box-shadow:none}button.link:hover:not(:disabled){background:none;color:var(--accent-bright);filter:none;text-decoration:underline}button:disabled{opacity:.55;cursor:not-allowed}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.app>aside{background:linear-gradient(180deg,rgb(255 255 255 / 4%) 0%,transparent 18%),linear-gradient(180deg,#0a2e36,#0e3a44 55%,#0c3239);color:#fff;padding:20px 14px 18px;display:flex;flex-direction:column;gap:8px;border-right:1px solid rgb(0 0 0 / 18%);box-shadow:4px 0 24px #0f172a14}.brand{display:flex;align-items:center;gap:12px;padding:6px 8px 18px;margin-bottom:6px;border-bottom:1px solid rgb(255 255 255 / 10%)}.brand-logo{width:64px;height:48px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 1px #ffffff59 inset,0 6px 16px #00000047;border:1px solid rgb(255 255 255 / 22%);padding:4px 7px;box-sizing:border-box}.brand-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;display:block}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#2bb8c9,#14606e);display:grid;place-items:center;color:#fff;box-shadow:0 6px 16px #00000047;flex-shrink:0}.brand-text{display:grid;gap:2px;line-height:1.15;min-width:0}.brand-text strong{font-size:1.02rem;font-weight:700;letter-spacing:.02em}.brand-text span{font-size:.66rem;letter-spacing:.04em;text-transform:none;color:#ffffff9e;white-space:normal;overflow:visible;text-overflow:unset;font-weight:500;line-height:1.25;word-break:break-word}.brand-settings-preview{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;margin:0;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,#0b2f36,#0e4a54 55%,#14606e);box-shadow:var(--shadow-md)}.brand-settings-preview .brand-text strong{color:#fff}.brand-settings-preview .brand-text span{color:#ffffffad}.nav-cap{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#ffffff61;margin:10px 10px 6px;font-weight:600}.nav-group{margin-top:2px}.nav-group:first-of-type{margin-top:0}nav{display:grid;gap:3px}.nav-active,.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;color:#ffffffc7;padding:9px 12px;border-radius:10px;font-size:.9rem;font-weight:500;border:1px solid transparent;box-shadow:none}.nav-ico{flex-shrink:0;opacity:.72}.nav-active .nav-ico,.nav-item:hover:not(:disabled) .nav-ico{opacity:1}.nav-item:hover:not(:disabled){background:#ffffff12;color:#fff;filter:none}.nav-active{background:#ffffff1c;color:#fff;font-weight:600;border-color:#ffffff14;box-shadow:inset 3px 0 #5ec4d4}.aside-bottom{margin-top:auto;display:grid;gap:10px;padding-top:8px}.aside-env{margin-top:0;margin-bottom:0;padding:0 2px}.aside-env .env-switcher.compact{max-width:none;width:100%;padding:10px 10px 12px;gap:8px;border-radius:14px;border:1px solid rgb(255 255 255 / 10%);background:#00000038;box-shadow:none}.aside-env .env-switcher.is-mock,.aside-env .env-switcher.is-live{background:#00000038;border-color:#ffffff1a}.aside-env .env-switcher-kicker{color:#ffffff6b;margin:0 2px 2px}.aside-env .env-switcher-top{display:flex;align-items:stretch;gap:6px}.aside-env .env-switcher-seg{background:#00000052;border:1px solid rgb(255 255 255 / 8%);padding:3px;border-radius:10px;min-width:0;flex:1}.aside-env .env-switcher-seg button{color:#ffffff9e;padding:0 8px;min-height:32px;font-size:.78rem;border-radius:8px}.aside-env .env-switcher-seg button:hover:not(:disabled):not(.on){background:#ffffff14;color:#fff}.aside-env .env-switcher-seg button.on{background:#1a8a9a;color:#fff;box-shadow:0 1px 2px #00000059}.aside-env .env-switcher.is-live .env-switcher-seg button.on{background:#1a8a9a;box-shadow:0 1px 2px #00000059}.aside-env .env-cfg-toggle{min-width:44px;padding:0 10px;border-radius:8px;background:#ffffff14;border:1px solid rgb(255 255 255 / 10%);color:#9ee7f0;font-size:.72rem;font-weight:650;box-shadow:none}.aside-env .env-cfg-toggle:hover:not(:disabled){background:#ffffff24;color:#fff;filter:none;box-shadow:none}.aside-env .env-switcher.is-live .env-cfg-toggle,.aside-env .env-cfg-toggle.open{color:#9ee7f0;background:#1a8a9a47;border-color:#5ec4d459}.aside-env .env-live-label{color:#ffffff8c}.aside-env .env-live-row{background:#fffffff5}.aside-foot{margin-top:0;font-size:.88rem;display:grid;gap:6px;padding:14px 12px;border-radius:var(--radius-md);background:#00000029;border:1px solid rgb(255 255 255 / 8%)}.aside-foot .muted{color:#ffffff8c;font-size:.82rem}.aside-foot button.link{color:#ffffffe0;justify-self:start;margin-top:2px}.lang-switch{display:flex;gap:4px;background:#00000052;border:1px solid rgb(255 255 255 / 8%);padding:3px;border-radius:10px}.lang-switch-btn{flex:1;min-height:30px;padding:0 8px;border-radius:8px;font-size:.78rem;color:#ffffff9e;background:transparent;border:none}.lang-switch-btn:hover:not(:disabled){background:#ffffff14;color:#fff}.lang-switch-active{background:#1a8a9a;color:#fff;box-shadow:0 1px 2px #00000059}.login .lang-switch{background:#0e3a440f;border-color:#0e3a441f}.login .lang-switch-btn{color:var(--accent-2)}.login .lang-switch-btn:hover:not(:disabled){background:#0e3a441a;color:var(--accent)}.login .lang-switch-active{background:var(--accent-bright);color:#fff}main{padding:24px 28px 48px;max-width:none;width:100%;min-width:0;box-sizing:border-box;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgb(20 96 110 / 6%),transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,rgb(234 88 12 / 3%),transparent 50%),var(--bg)}.toolbar{display:flex;gap:14px;align-items:center;margin-bottom:22px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line)}.toolbar h2{margin:0;flex:1;min-width:8rem;font-size:1.45rem;font-weight:700;letter-spacing:-.025em;padding-left:0;border-left:0;color:var(--ink)}.toolbar-end{display:flex;align-items:center;gap:10px;flex:1;justify-content:flex-end;min-width:12rem;flex-wrap:wrap}.toolbar-end .search{flex:1;max-width:420px}.toolbar-end .btn-sm.on{background:#0f766e;color:#fff;border-color:#0f766e}.search{min-width:220px;flex:1;max-width:420px;background:var(--panel)}.onboard-modes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.worker-profile-tabs{margin-top:0}.engagement-accordion-block{margin-top:16px;padding-top:8px;border-top:1px solid var(--line)}.engagement-accordion{display:flex;flex-direction:column;gap:8px;margin-top:8px}.engagement-item{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.engagement-item.is-active{border-color:#14606e}button.engagement-item-head,.engagement-item-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:0;border-radius:0;background:#f7fafb;color:var(--ink)!important;box-shadow:none;font:inherit;font-weight:500;cursor:pointer;text-align:left}button.engagement-item-head:hover,.engagement-item-head:hover{filter:none;box-shadow:none;color:var(--ink)!important}.engagement-item.open .engagement-item-head,.engagement-item.is-active .engagement-item-head{background:#eaf4f6;color:var(--ink)!important}.engagement-item-title{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink)}.engagement-item-title strong{font-size:.92rem;font-weight:700;color:var(--ink)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engagement-item-sum{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;font-size:.8rem;color:var(--muted, #64748b)}.engagement-chevron{font-size:.85rem;color:#334155}.engagement-item-body{padding:10px 12px 12px;border-top:1px solid var(--line)}.engagement-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0 0 8px}.engagement-dl>div{min-width:0}.engagement-dl dt{margin:0;font-size:.72rem;color:#64748b}.engagement-dl dd{margin:2px 0 0;font-size:.88rem;word-break:break-word}@media(max-width:640px){.engagement-dl{grid-template-columns:1fr}.engagement-item-head{flex-direction:column;align-items:flex-start}}.weekly-hours-editor,.weekly-hours-readonly{display:grid;gap:10px}.weekly-hours-editor-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 12px}.weekly-hours-editor-head strong{font-size:.92rem}.weekly-hours-table{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:auto}.weekly-hours-table table{width:100%;font-size:.84rem}.weekly-hours-table th,.weekly-hours-table td{padding:7px 10px;white-space:nowrap}.weekly-hours-table tr.is-rest td{color:var(--muted);background:#f8fafc}.weekly-hours-toggle{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.82rem}.weekly-hours-table input[type=time]{min-width:7.5rem;padding:4px 6px}.weekly-hours-readonly h5{margin:0 0 4px;font-size:.9rem}.worker-hours-panel{display:grid;gap:14px}.worker-hours-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,#14606e14,#14606e05),#f7fafb;border:1px solid rgba(20,96,110,.12)}.worker-hours-hero h4{margin:0 0 4px;font-size:1.05rem}.worker-hours-lead{margin:0;max-width:42rem;color:var(--muted);font-size:.88rem;line-height:1.45}.worker-hours-count{flex-shrink:0;padding:4px 10px;border-radius:999px;background:#fff;border:1px solid rgba(20,96,110,.2);color:#14606e;font-size:.78rem;font-weight:600}.worker-hours-toast{margin:0;padding:8px 12px;border-radius:8px;background:#e8f6f0;color:#0f5c45;font-size:.88rem}.worker-hours-empty{display:grid;gap:4px;padding:28px 20px;text-align:center;border:1px dashed var(--line);border-radius:12px;background:#fafbfc;color:var(--muted);font-size:.88rem}.worker-hours-empty strong{color:var(--ink);font-size:.95rem}.worker-hours-list{display:grid;gap:10px}.worker-hours-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.worker-hours-card.is-open{border-color:#14606e59;box-shadow:0 6px 18px #0f28320f}.worker-hours-card.has-override:not(.is-open){border-color:#b4782859}button.worker-hours-card-head,.worker-hours-card-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:0;border-radius:0;background:#f7fafb;color:var(--ink)!important;box-shadow:none;font:inherit;font-weight:500;cursor:pointer;text-align:left}button.worker-hours-card-head:hover{filter:none;box-shadow:none;background:#eef5f7;color:var(--ink)!important}.worker-hours-card.is-open .worker-hours-card-head{background:#e8f2f4;border-bottom:1px solid rgba(20,96,110,.12)}.worker-hours-card-title{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.worker-hours-card-title strong{font-size:.95rem}.worker-hours-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.worker-hours-badge.is-follow{background:#14606e1a;color:#14606e}.worker-hours-badge.is-override{background:#b4782824;color:#8a5a12}.worker-hours-card-meta{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:.82rem}.worker-hours-chevron{color:#14606e;font-size:.75rem}.worker-hours-card-body{display:grid;gap:16px;padding:14px 14px 16px;background:#fff}.worker-hours-compare{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px}@media(max-width:900px){.worker-hours-compare{grid-template-columns:1fr}}.worker-hours-pane{padding:12px;border-radius:10px;border:1px solid var(--line);background:#fafbfc}.worker-hours-pane.is-edit{background:#fff;border-color:#14606e38}.worker-hours-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.worker-hours-last{margin-left:auto;color:var(--muted);font-size:.8rem}.worker-hours-audit h5{margin:0 0 8px;font-size:.88rem}.worker-hours-audit-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}.worker-hours-audit-list li{display:grid;grid-template-columns:9.5rem 5.5rem minmax(0,1fr);gap:8px 12px;padding:8px 10px;border-radius:8px;background:#f7fafb;font-size:.82rem;color:var(--ink)}.worker-hours-audit-list time,.worker-hours-audit-who{color:var(--muted);font-variant-numeric:tabular-nums}@media(max-width:700px){.worker-hours-audit-list li{grid-template-columns:1fr;gap:2px}.worker-hours-last{margin-left:0;width:100%}}.worker-history-panel .worker-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.worker-history-panel .worker-history-head h4{margin:0}.worker-history-sub{margin:16px 0 8px;font-size:.9rem}.worker-history-table{max-height:48vh;overflow:auto}.worker-history-table table{font-size:.84rem}.att-month-pick{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;margin:0}.att-month-pick input{padding:4px 8px}.empty.compact{padding:18px 12px}.empty.compact strong{display:block;margin-bottom:4px}.onboard-intro{margin-bottom:18px;max-width:none}.onboard-modes button,.onboard-modes button.on,.onboard-modes button[aria-selected=true],.onboard-modes button:hover:not(:disabled){margin:0;border-radius:10px;padding:9px 16px;font-size:.88rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-xs);filter:none!important;transform:none!important;-webkit-text-fill-color:currentColor}.onboard-modes button{border:1px solid var(--line)!important;background:#fff!important;color:#0f1c22!important}.onboard-modes button:hover:not(:disabled){border-color:#b8c5cc!important;background:#f3f8f9!important;color:#0f1c22!important}.onboard-modes button.on,.onboard-modes button[aria-selected=true]{background:#dceef1!important;color:#0a3d47!important;border-color:#14606e!important;box-shadow:inset 0 0 0 1px #14606e,var(--shadow-xs)}.onboard-modes button.on:hover:not(:disabled),.onboard-modes button[aria-selected=true]:hover:not(:disabled){background:#cfe7eb!important;color:#0a3d47!important;border-color:#0e3a44!important}.onboard-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:10px 14px;border:1px solid #fed7aa;border-radius:12px;background:#fff7ed;color:#9a3412;font-size:.9rem;line-height:1.5}.onboard-filter-bar .onboard-filter-desc{flex:1 1 260px}.onboard-filter-bar .link{color:#9a3412;font-weight:700;white-space:nowrap}.pending-docs-intro{margin-bottom:16px}.pending-docs-group{margin:0 0 22px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.pending-docs-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:14px}.pending-docs-head h3{margin:0;font-size:18px}.pending-docs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.pending-doc-card{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.pending-doc-photo{min-height:160px;border-radius:10px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;overflow:hidden}.pending-doc-photo img{width:100%;height:180px;object-fit:contain;background:#0f172a}.pending-doc-body{display:flex;flex-direction:column;gap:8px}.pending-doc-body label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}.pending-doc-actions{flex-wrap:wrap;gap:8px;margin-top:4px}@media(max-width:720px){.pending-doc-card{grid-template-columns:1fr}}.ui-badge.amber{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.registry-tabs{margin:0 0 14px;gap:6px}.registry-tabs>button,.registry-tabs>button.on,.registry-tabs>button[aria-selected=true],.registry-tabs>button:hover:not(:disabled){margin:0;border-radius:10px;padding:8px 14px;font-size:.86rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-xs);filter:none!important;transform:none!important;-webkit-text-fill-color:currentColor}.registry-tabs>button{border:1px solid var(--line)!important;background:#fff!important;color:#0f1c22!important}.registry-tabs>button:hover:not(:disabled){border-color:#b8c5cc!important;background:#f3f8f9!important;color:#0f1c22!important}.registry-tabs>button.on,.registry-tabs>button[aria-selected=true]{background:#dceef1!important;color:#0a3d47!important;border-color:#14606e!important;box-shadow:inset 0 0 0 1px #14606e,var(--shadow-xs)}.registry-panel{margin-top:0}.registry-list-name{display:inline-flex;align-items:center;gap:8px;line-height:1.25;vertical-align:middle}.registry-list-thumb{width:28px;height:28px;border-radius:7px;object-fit:contain;object-position:center;background:#fff;flex:0 0 auto;border:1px solid var(--line);padding:2px}.registry-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.registry-view-toggle{flex:0 0 auto}.registry-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:6px 0 10px}.registry-card{display:flex;flex-direction:column;gap:12px;padding:16px 16px 14px;border:1px solid rgb(14 116 144 / 12%);border-radius:16px;background:linear-gradient(165deg,#f7fcfd,#fff 38%,#fbfdfe);box-shadow:0 1px 2px #0f172a0a,0 10px 28px #0e3a440d;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.registry-card:hover{border-color:#14606e3d;box-shadow:0 2px 4px #0f172a0d,0 14px 32px #0e3a4414;transform:translateY(-1px)}.registry-card.is-clickable{cursor:pointer}.registry-card.is-clickable:focus-visible{outline:2px solid #0f766e;outline-offset:2px}.registry-card-head{display:flex;gap:12px;align-items:center}.registry-card-titles{flex:1 1 auto;min-width:0;display:grid;gap:4px;align-content:center}.registry-card-titles strong{display:block;font-size:1.02rem;font-weight:750;letter-spacing:-.02em;line-height:1.25;color:var(--ink)}.registry-card-tools{display:flex;flex-direction:row;align-items:center;gap:6px;flex-shrink:0}.registry-card.is-archived{opacity:.82;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-color:#e2e8f0}.registry-edit-sq{flex-shrink:0;box-sizing:border-box;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;display:grid;place-items:center;border-radius:7px;border:0;background:transparent;color:#64748b;cursor:pointer;box-shadow:none;transition:background .12s ease,color .12s ease}.registry-edit-sq .registry-edit-pen{display:block}.registry-edit-sq:hover:not(:disabled){background:#0e74901a;color:var(--accent, #0e7490)}.registry-edit-sq:disabled{opacity:.45;cursor:not-allowed}td.actions .actions-inner.icon-only,td.actions .actions-row-ops,td.row-actions .actions-row-ops{display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:6px;width:auto;margin-left:auto}td.actions .actions-inner.icon-only>.registry-edit-sq,td.actions .actions-row-ops .registry-edit-sq,td.row-actions .actions-row-ops .registry-edit-sq{width:28px;height:28px;min-width:28px;min-height:28px;padding:0}td.actions .actions-inner.icon-only>.status-switch,td.actions .actions-row-ops .status-switch,td.row-actions .actions-row-ops .status-switch{width:auto;height:28px;min-width:0;padding:0;border:0;background:transparent;box-shadow:none}.registry-edit-icon-btn,.registry-card-actions{display:none}.status-switch{display:inline-flex;align-items:center;border:0;background:transparent;padding:0;cursor:pointer;font:inherit;color:inherit;height:28px;line-height:0}.status-switch:disabled{opacity:.55;cursor:wait}.status-switch-track{position:relative;display:block;width:58px;height:28px;border-radius:999px;background:#94a3b8;transition:background .15s ease;flex-shrink:0;box-sizing:border-box;box-shadow:inset 0 1px 2px #0f172a24;overflow:hidden}.status-switch.on .status-switch-track{background:linear-gradient(90deg,#0d9488,#14b8a6)}.status-switch.off .status-switch-track{background:#94a3b8}.status-switch-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a40;transition:transform .15s ease;z-index:1}.status-switch.on .status-switch-knob{transform:translate(30px)}.status-switch-label{position:absolute;top:50%;transform:translateY(-50%);z-index:0;font-size:.62rem;font-weight:750;letter-spacing:.02em;color:#fff;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.status-switch.on .status-switch-label{left:8px;right:auto;color:#fff}.status-switch.off .status-switch-label{right:8px;left:auto;color:#f8fafc}.status-switch.size-sm{height:28px}.status-switch.size-sm .status-switch-track{width:54px;height:28px}.status-switch.size-sm .status-switch-knob{width:22px;height:22px;top:3px;left:3px}.status-switch.size-sm.on .status-switch-knob{transform:translate(26px)}.status-switch.size-sm .status-switch-label{font-size:.58rem}.status-switch.size-sm.on .status-switch-label{left:7px}.status-switch.size-sm.off .status-switch-label{right:7px}.status-switch.size-md .status-switch-track{width:58px}.status-switch.size-md.on .status-switch-knob{transform:translate(30px)}.ui-modal-actions.spread{justify-content:space-between;width:100%}.ui-modal-actions-left{display:flex;flex-wrap:wrap;gap:8px}.ui-modal-actions-right{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.worker-avatar{display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;overflow:hidden;border:2.5px solid #94a3b8;background:#f1f5f9;box-sizing:border-box}.worker-avatar.ring-male{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb2e}.worker-avatar.ring-female{border-color:#e11d48;box-shadow:0 0 0 1px #e11d482e}.worker-avatar.ring-unknown{border-color:#94a3b8}.worker-avatar img,.worker-avatar .gender-svg-avatar{width:100%;height:100%;object-fit:cover;display:block}.worker-name-with-avatar{display:inline-flex;align-items:center;gap:10px;min-width:0}.worker-name-with-avatar .name-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.actions-inner.icon-only{display:inline-flex;flex-direction:row;align-items:center;gap:6px;justify-content:flex-end}.actions-row-ops{display:inline-flex;flex-direction:row;align-items:center;gap:6px}.registry-card-logo{width:40px;height:40px;border-radius:10px;background:var(--accent-soft, #e8eef2);color:var(--accent, #1a4a5c);display:grid;place-items:center;place-content:center;font-weight:700;font-size:.95rem;line-height:1;overflow:hidden;flex:0 0 auto;border:1px solid rgb(14 116 144 / 10%)}.registry-card-logo>span{display:grid;place-items:center;width:100%;height:100%;line-height:1;translate:0 .5px}.registry-card-logo.has-img{background:#fff;padding:5px}.registry-card-logo.has-img img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.logo-upload-preview.has-img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;display:block}.registry-card-sub{font-size:.82rem;color:var(--ink-soft)}.registry-card-meta{display:grid;gap:4px;font-size:.82rem;color:var(--ink-soft)}.registry-card-map{border-radius:10px;overflow:hidden;border:1px solid var(--line);isolation:isolate;position:relative;z-index:0}.registry-card-actions{display:flex;gap:12px;margin-top:auto;padding-top:4px}.logo-upload-field{display:grid;gap:8px}.logo-upload-label{font-size:.86rem;font-weight:650;color:var(--ink-soft)}.logo-upload-row{display:flex;gap:14px;align-items:center}.logo-upload-preview{width:128px;height:88px;border-radius:12px;border:1px dashed var(--line);background:#f8fafb;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--muted);overflow:hidden;flex:0 0 auto;padding:8px 10px;box-sizing:border-box}.logo-upload-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.logo-upload-btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:2.2rem;padding:7px 14px;border-radius:8px;font-size:.84rem;font-weight:600;box-shadow:none}.logo-upload-actions .link,.logo-upload-actions button.link{padding:4px 2px;font-size:.82rem}.logo-upload-hint{margin:0;font-size:.8rem;line-height:1.4}.mini-map-preview{position:relative;height:140px;background:#e8eef2;border-radius:10px;overflow:hidden;isolation:isolate;z-index:0}.mini-map-canvas{width:100%;height:100%;z-index:0}.mini-map-canvas .leaflet-container{z-index:0!important}.mini-map-preview iframe{width:100%;height:100%;border:0;display:block;pointer-events:none}.mini-map-link{position:absolute;right:8px;bottom:8px;font-size:.72rem;background:#ffffffeb;padding:3px 7px;border-radius:6px;color:var(--accent);text-decoration:none;pointer-events:none}.site-card-media{display:grid;gap:6px;isolation:isolate;position:relative;z-index:0;overflow:hidden}.site-card-media-tabs{display:inline-flex;gap:2px;padding:2px;border-radius:8px;background:var(--surface, #f4f7f8);width:fit-content}.site-card-media-tabs button{border:0;background:transparent;padding:4px 10px;border-radius:6px;font-size:.78rem;color:var(--muted, #64748b);cursor:pointer}.site-card-media-tabs button.on{background:#fff;color:var(--accent, #1a4a5c);font-weight:600;box-shadow:0 1px 2px #0f172a14}.site-card-media-tabs button:disabled{opacity:.45;cursor:not-allowed}.site-card-photo{height:140px;border-radius:10px;overflow:hidden;background:#e8eef2}.site-card-photo img{width:100%;height:100%;object-fit:cover;display:block}.registry-stat-row{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:4px;font-size:.86rem;color:var(--muted, #64748b)}.registry-stat-row strong{color:var(--text, #0f172a);font-variant-numeric:tabular-nums}.registry-stat-row strong.live{color:#0f766e}.registry-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 8px}.registry-stat-chip{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:#f8fafc;border:1px solid var(--line, #e2e8f0);min-width:0}.registry-stat-chip .registry-stat-label{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--muted, #64748b)}.registry-stat-chip strong{font-size:1.05rem;font-weight:750;font-variant-numeric:tabular-nums;color:var(--ink, #0f172a);line-height:1.15}.registry-stat-chip.is-ok{background:linear-gradient(180deg,#ecfdf5,#f0fdf4);border-color:#a7f3d0}.registry-stat-chip.is-ok strong{color:#047857}.registry-stat-chip.is-warn,.registry-stat-chip.is-muted{background:linear-gradient(180deg,#fff7ed,#fffbeb);border-color:#fed7aa}.registry-stat-chip.is-warn strong,.registry-stat-chip.is-muted strong{color:#c2410c}.registry-stat-chip.is-done{background:#f8fafc;border-color:#e2e8f0}.registry-stat-chip.is-live{background:linear-gradient(180deg,#ecfeff,#f0fdfa);border-color:#a5f3fc}.registry-stat-chip.is-live strong{color:#0e7490}.registry-worker-split{grid-column:1 / -1;display:grid;gap:8px;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid var(--line, #e2e8f0)}.registry-worker-split-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.registry-worker-split-head .registry-stat-label{font-size:.74rem;font-weight:650;color:var(--muted, #64748b)}.registry-worker-split-total{font-size:.78rem;color:var(--ink-soft, #475569);font-variant-numeric:tabular-nums}.registry-worker-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:#e2e8f0}.registry-worker-bar>span{display:block;height:100%;min-width:0}.registry-worker-bar>.ok{background:#10b981}.registry-worker-bar>.bad{background:#f97316}.registry-worker-bar.is-empty>.ok,.registry-worker-bar.is-empty>.bad{display:none}.registry-worker-counts{display:flex;flex-wrap:wrap;gap:8px 14px}.registry-worker-counts>span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft, #475569)}.registry-worker-counts>span>b{font-size:.95rem;font-variant-numeric:tabular-nums;font-weight:750}.registry-worker-counts>.ok>b{color:#047857}.registry-worker-counts>.bad>b{color:#c2410c}.registry-worker-dot{width:8px;height:8px;border-radius:999px;flex:0 0 auto}.registry-worker-dot.ok{background:#10b981}.registry-worker-dot.bad{background:#f97316}.registry-form-section{grid-column:1 / -1;margin:8px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:.85rem;font-weight:600;color:var(--muted, #64748b)}.registry-map-field{grid-column:1 / -1;display:grid;gap:8px}.map-coord-picker{display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface, #f4f7f8)}.map-coord-picker-bar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--ink-soft)}.map-coord-picker-map{width:100%;height:min(360px,52vh);border-radius:10px;overflow:hidden;background:#dfe8ea;border:1px solid var(--line)}.map-coord-picker-status{margin:0}.email-preview-card{margin-top:12px;padding:0;border:1px solid var(--line, #e2e8f0);border-radius:14px;background:#e2e8f0;display:grid;gap:0;overflow:hidden}.email-preview-meta{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;font-size:.75rem;color:#64748b}.email-preview-meta strong{font-size:.84rem;color:#0f172a;font-weight:650}.email-preview-frame{padding:16px 14px 18px;background:linear-gradient(180deg,#cbd5e1,#e2e8f0)}.email-preview-body{padding:20px 22px 22px;border-radius:12px;background:#fff;border:1px solid #cbd5e1;min-height:120px;max-width:600px;margin:0 auto;box-shadow:0 8px 28px #0f172a1f}.email-preview-body.style-compact{padding:14px 16px;font-size:.92em}.email-preview-body.style-branded{border-color:#99f6e4;box-shadow:0 8px 28px #0f766e24}.email-preview-body.is-disabled{opacity:.55}.settings-subhead{margin:1.25rem 0 .5rem;font-size:.95rem;font-weight:700}.email-event-subtabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.email-event-subtab{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--line, #e2e8f0);background:#fff;font-size:.82rem;font-weight:600;color:var(--ink, #0f172a);cursor:pointer}.email-event-subtab em{font-style:normal;font-size:.72rem;font-weight:700;color:#0f766e;background:#ccfbf1;padding:1px 6px;border-radius:999px}.email-event-subtab.is-off em{color:#64748b;background:#f1f5f9}.email-event-subtab.on{border-color:#0f766e;background:#f0fdfa;box-shadow:0 0 0 1px #99f6e4}.email-event-panel{display:grid;gap:10px;padding:14px;border:1px solid var(--line, #e2e8f0);border-radius:12px;background:#fff}.email-event-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.email-event-panel-head .ui-switch-row{margin:0;flex:1 1 220px;max-width:320px}.email-audience-tabs{display:inline-flex;gap:4px;padding:3px;border-radius:10px;background:#f1f5f9;width:fit-content}.email-audience-tabs button{border:none;background:transparent;padding:7px 12px;border-radius:8px;font-size:.82rem;font-weight:600;color:#64748b;cursor:pointer}.email-audience-tabs button.on{background:#fff;color:#0f766e;box-shadow:0 1px 2px #0f172a14}.row-actions{gap:8px;justify-content:flex-end;white-space:nowrap}td.row-actions{white-space:nowrap;min-width:3.25rem;width:1%;text-align:right;vertical-align:middle}.demoflow{display:flex;align-items:stretch;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:8px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.demoflow button{flex:1;display:flex;align-items:center;gap:10px;background:transparent;color:var(--muted);padding:12px 14px;border-radius:var(--radius-sm);text-align:left;font-weight:500;box-shadow:none}.demoflow button:hover:not(:disabled){background:var(--surface);filter:none;box-shadow:none}.demoflow button.on{background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);box-shadow:var(--shadow-sm)}.demoflow button.on:hover:not(:disabled){filter:brightness(1.05)}.demoflow .step-no{width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.78rem;flex-shrink:0}.demoflow button.on .step-no{background:#ffffff38;color:#fff}.demoflow .step-label{display:grid;gap:1px;min-width:0}.demoflow .step-label strong{font-size:.9rem;color:var(--ink);font-weight:600}.demoflow .step-label span{font-size:.74rem;color:var(--muted)}.demoflow button.on .step-label strong,.demoflow button.on .step-label span{color:#fff}.demoflow .step-arrow{align-self:center;color:var(--line);font-size:.9rem}@media(max-width:720px){.demoflow{flex-wrap:wrap}.demoflow .step-arrow{display:none}.demoflow button{flex:1 1 100%}}.demoflow-check{margin:-12px 0 22px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.demoflow-check>summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;cursor:pointer;list-style:none}.demoflow-check>summary::-webkit-details-marker{display:none}.demoflow-check>summary .muted{margin-left:auto;font-size:.74rem}.demoflow-check[open]>summary{margin-bottom:8px}.demoflow-check-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.demoflow-check-head strong{font-size:.9rem;color:var(--ink)}.demoflow-tag{font-size:.72rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line)}.demoflow-tag.ok{background:#e3f3e8;color:var(--ok);border-color:#b8e0c5}.demoflow-tag.warn{background:#fbeede;color:var(--warn);border-color:#f0d3a8}.demoflow-check ul{margin:0;padding-left:18px;display:grid;gap:3px}.demoflow-check li{font-size:.88rem;color:var(--ink-soft);line-height:1.72}.demoflow-check li .link{font-size:.83rem}.demoflow-check>.hint{margin-top:8px;margin-bottom:0}.manual-crop-help{margin:8px 0 0;font-size:.82rem;color:var(--muted)}.manual-crop-help summary{cursor:pointer;color:var(--ai-teal-2, #14606e);font-weight:600}.manual-crop-help p{margin:6px 0 0;line-height:1.55}.empty{display:grid;gap:10px;justify-items:start;padding:22px;background:var(--surface);border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.88rem}.empty strong{color:var(--ink);font-size:.95rem}.empty .row{justify-content:flex-start}td .empty{border:0;background:transparent;padding:14px 4px}.payroll-shell{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:16px;align-items:start;margin-top:4px}.payroll-runs-rail{position:sticky;top:12px;display:grid;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);max-height:calc(100vh - 120px);overflow:auto}.payroll-runs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.payroll-runs-head h3{margin:0;font-size:.98rem}.payroll-runs-head .muted{margin:2px 0 0;font-size:.78rem}.payroll-runs-filters{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.payroll-runs-filters>label{display:grid;gap:4px;margin:0;font-size:.72rem;font-weight:650;color:var(--muted);letter-spacing:.02em}.payroll-runs-filters select{width:100%;min-height:2.1rem;padding:6px 8px;font-size:.82rem;font-weight:500;color:var(--ink)}.payroll-runs-filter-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:2px;font-size:.76rem}.payroll-runs-empty{display:grid;gap:6px;padding:14px;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:.84rem}.payroll-runs-empty strong{color:var(--ink)}.payroll-run-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}button.payroll-run-card,.payroll-run-card{width:100%;text-align:left;display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink)!important;cursor:pointer;box-shadow:var(--shadow-xs);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}button.payroll-run-card:hover,.payroll-run-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-xs);filter:none;color:var(--ink)!important}button.payroll-run-card.on,.payroll-run-card.on{border-color:var(--accent-bright);background:var(--accent-soft);box-shadow:var(--shadow-sm);color:var(--ink)!important}.payroll-run-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.payroll-run-card-top strong{font-size:1.05rem;font-weight:700;letter-spacing:.02em;color:var(--ink)!important}.payroll-run-card-meta{display:grid;gap:2px;font-size:.8rem;color:var(--ink-soft)}.payroll-run-card-foot{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted)}.payroll-run-card-foot .mono{font-weight:650;color:var(--ink)}.payroll-run-when{font-size:.72rem}.payroll-main{min-width:0}.payroll-compose{display:grid;gap:14px;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.payroll-compose-head h3{margin:0 0 4px;font-size:1.05rem}.payroll-compose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.payroll-compose-grid label{display:grid;gap:6px;font-size:.82rem;color:var(--ink-soft)}.payroll-detail-board{display:grid;gap:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.payroll-detail-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px 18px;padding:18px 20px 16px;background:linear-gradient(135deg,rgba(20,96,110,.08) 0%,transparent 42%),linear-gradient(180deg,#f7fbfd,#fff);border-bottom:1px solid var(--line)}.payroll-detail-hero-main{min-width:0;flex:1 1 280px}.payroll-detail-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px}.payroll-detail-title{margin:0;font-size:1.28rem;font-weight:700;letter-spacing:.01em;line-height:1.25}.payroll-detail-dot{margin:0 .35em;color:var(--muted);font-weight:500}.payroll-detail-meta{margin:8px 0 0;color:var(--ink-soft);font-size:.84rem;line-height:1.55}.payroll-detail-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:0 1 auto;max-width:100%}.payroll-hero-workflow,.payroll-hero-export{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.payroll-hero-export{padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-xs)}.payroll-hero-workflow>button.secondary,.payroll-hero-workflow>button.primary,.payroll-hero-export>button.secondary,.payroll-hero-export>button.primary{min-height:34px;padding:0 14px;font-size:.84rem;font-weight:600;border-radius:var(--radius-sm)}.payroll-hero-export .payroll-export-label{margin-right:2px}.payroll-annotate-modal{display:grid;gap:14px}.payroll-annotate-modal>.hint{margin:0;line-height:1.45}.payroll-annotate-options{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f7fafb;display:grid;gap:10px}.payroll-annotate-options legend{padding:0 4px;font-size:.82rem;font-weight:700;color:var(--ink)}.payroll-annotate-opt{align-items:flex-start;gap:10px;margin:0;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid transparent}.payroll-annotate-opt span{display:grid;gap:2px}.payroll-annotate-opt strong{font-size:.9rem;color:var(--ink)}.payroll-annotate-opt em{font-style:normal;font-size:.78rem;color:var(--muted);line-height:1.35}.payroll-annotate-opt.is-locked{background:#f1f5f7;border-color:var(--line);opacity:.95}.payroll-annotate-opt input{margin-top:3px}.payroll-annotate-subopts{display:grid;gap:8px;margin:0;padding:10px 10px 8px;border-radius:8px;border:1px dashed var(--line);background:#fff}.payroll-annotate-subopts-title{font-size:.8rem;font-weight:700;color:var(--ink);padding:0 2px 2px}.payroll-annotate-subopt{padding:6px 8px}@media(max-width:720px){.payroll-detail-hero-actions{align-items:stretch;width:100%}.payroll-hero-workflow,.payroll-hero-export{justify-content:flex-start}}.payroll-detail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.payroll-detail-facts>div{display:grid;gap:4px;padding:12px 14px;background:var(--panel);min-width:0}.payroll-detail-facts>div.payroll-detail-fact-wide{grid-column:span 2}.payroll-detail-facts span{font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.payroll-detail-facts strong{font-size:.9rem;font-weight:650;color:var(--ink);overflow-wrap:anywhere}.payroll-detail-facts>div.is-warn strong{color:var(--err)}.payroll-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;padding:14px 16px;background:var(--surface)}.payroll-metric{display:grid;gap:4px;padding:12px 12px 10px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-xs)}.payroll-metric b{font-size:1.12rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.2}.payroll-metric span{font-size:.72rem;color:var(--muted)}.payroll-metric.is-ok{border-color:#bbf7d0;background:linear-gradient(180deg,#f0fdf4,#fff 70%)}.payroll-metric.is-ok b{color:var(--ok)}.payroll-metric.is-hold{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed,#fff 70%)}.payroll-metric.is-hold b{color:var(--warn)}.payroll-metric.is-accent{border-color:#99d6df;background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 70%)}.payroll-metric.is-accent b{color:var(--accent-2)}.payroll-detail-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 16px 14px;border-top:1px solid var(--line);background:#fff}.payroll-detail-downloads{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.payroll-action-bar{display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px;border-top:1px solid var(--line);background:linear-gradient(180deg,#f8fafc,#fff 55%)}.payroll-export-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-xs)}.payroll-export-label{font-size:.84rem;font-weight:700;color:var(--ink)}.payroll-export-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.payroll-export-actions button.secondary,.payroll-export-actions button.primary{min-height:34px;padding:0 14px;font-size:.84rem;font-weight:600;border-radius:var(--radius-sm)}.payroll-export-opt{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px 8px;font-size:.78rem;font-weight:500;color:var(--muted, #64748b);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm)}.payroll-export-opt input{width:15px;height:15px;accent-color:var(--accent, #0f766e);cursor:pointer}.payroll-export-hint{margin:0;flex:1 1 220px;font-size:.75rem;line-height:1.35}.payroll-action-card{display:grid;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-xs);align-content:start;width:100%}.payroll-action-card.is-settle{border-color:#99d6df;background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 42%)}.payroll-action-card.is-locked-hint{background:#f8fafc}.payroll-action-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.payroll-action-card-head h5{margin:0;font-size:.92rem;font-weight:700}.payroll-action-btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.payroll-settle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:720px){.payroll-settle-grid{grid-template-columns:1fr}}.payroll-settle-field{display:grid;gap:6px;margin:0;font-size:.78rem;color:var(--muted)}.payroll-settle-field>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.payroll-settle-suggest{font-size:.72rem;font-weight:600}.payroll-settle-field input[type=date],.payroll-settle-field input[type=number]{width:100%}.payroll-settle-inline{display:flex;gap:8px;align-items:center}.payroll-settle-inline input[type=date]{flex:1 1 auto;min-width:0}.payroll-settle-uploads{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:720px){.payroll-settle-uploads{grid-template-columns:1fr}}.payroll-settle-upload-block{display:grid;gap:8px;padding:10px 12px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:#ffffffbf}.payroll-settle-upload-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.payroll-settle-upload-head strong{font-size:.84rem}.payroll-file-btn{cursor:pointer;margin:0}.payroll-settle-doc-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.payroll-settle-doc-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.8rem}.payroll-action-hint{margin:0}.payroll-table-wrap{margin-top:14px}.payroll-bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;margin-bottom:8px;border:1px solid #99d6df;border-radius:var(--radius-md);background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 70%)}.payroll-bulk-count{font-size:.86rem;font-weight:700;margin-right:4px}.payroll-bulk-foreman{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.8rem;color:var(--muted)}.payroll-bulk-foreman select{min-width:140px}.payroll-lines-table tbody tr.payroll-line-row{cursor:pointer;transition:background .12s ease}.payroll-lines-table tbody tr.payroll-line-row:hover,.payroll-lines-table tbody tr.payroll-line-row:focus-visible{background:var(--accent-soft);outline:none}.payroll-line-name{font-weight:650;color:var(--accent-2)}.payroll-slip{display:flex;flex-direction:column;gap:0;padding:28px 28px 20px!important;border-radius:var(--radius-xl)!important;box-shadow:var(--shadow-lg)!important;max-height:min(92vh,920px);overflow:hidden}.payroll-slip:has(>.payroll-slip-head){padding-top:0!important}.payroll-slip-head{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px 20px;padding:0 0 20px;margin:0;border-bottom:1px solid var(--line)}.payroll-slip-kicker{margin:0 0 8px;font-size:.78rem;color:var(--muted);letter-spacing:.02em}.payroll-slip-head h3{margin:0;font-size:1.45rem;letter-spacing:.01em;line-height:1.3}.payroll-slip-en{margin:8px 0 0;color:var(--ink-soft);font-size:.92rem}.payroll-slip-badges{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:4px}.payroll-slip-foreman{font-size:.8rem;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-soft)}.payroll-slip-foreman.hold{background:var(--warn-soft);border-color:#fed7aa;color:var(--warn)}.payroll-slip-foreman.ok{background:var(--ok-soft);border-color:#bbf7d0;color:var(--ok)}.payroll-slip-body{flex:1 1 auto;min-height:0;overflow:auto;display:grid;gap:22px;padding:22px 4px 8px;scrollbar-gutter:stable}.payroll-slip-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.payroll-slip-summary>div{display:grid;gap:8px;padding:16px 16px 14px;border-radius:var(--radius-md);background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--line)}.payroll-slip-summary>div.is-accent{border-color:#99d6df;background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 75%)}.payroll-slip-summary span{font-size:.74rem;color:var(--muted)}.payroll-slip-summary strong{font-size:1.12rem;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.25}.payroll-slip-net{color:var(--accent-2)!important}.payroll-slip .slip-grid{gap:16px;grid-template-columns:minmax(0,1fr);align-items:stretch}.payroll-slip-panel{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-xs)}.payroll-slip-panel:has(.payroll-slip-days){grid-template-rows:auto auto minmax(0,1fr) auto;min-height:min(91vh,832px)}.payroll-slip-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:2px}.payroll-slip-panel h4{margin:0;font-size:.95rem}.payroll-slip-side{display:grid;gap:18px;align-content:start}.payroll-slip-stack{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(390px,520px);gap:16px;align-items:start}.payroll-slip-panel.payroll-slip-days-panel{min-height:min(75vh,806px);display:grid;grid-template-rows:auto auto minmax(0,1fr)}.payroll-slip-lower{display:grid;grid-template-columns:1fr;gap:16px;align-content:start}.payroll-slip-audit{grid-column:1 / -1;display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-xs)}@media(max-width:1100px){.payroll-slip-stack{grid-template-columns:1fr}.payroll-slip-audit{grid-column:auto}}.payroll-slip-audit h4{margin:0;font-size:.95rem}.payroll-slip-audit-table{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.payroll-slip-audit-table table{width:100%;font-size:.8rem}.payroll-slip-audit-table th,.payroll-slip-audit-table td{padding:5px 8px;white-space:nowrap}.payroll-slip-audit-table tr.is-undone td{opacity:.55;text-decoration:line-through}.payroll-slip-audit-table tr.is-undone td:last-child{text-decoration:none}.payroll-audit-undone{display:grid;gap:2px;line-height:1.25}.payroll-audit-undone small{font-weight:500;color:var(--muted);text-decoration:none}.payroll-slip-days{overflow-x:hidden!important;overflow-y:auto;max-height:none;min-height:0;height:100%;border:1px solid var(--line);border-radius:var(--radius-sm)}.payroll-slip-days table{table-layout:fixed;width:100%;font-size:.8rem}.payroll-slip-days th,.payroll-slip-days td{padding:5px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payroll-day-th{display:inline-flex;flex-direction:column;align-items:center;gap:1px;line-height:1.15}.payroll-day-th .th-unit{font-size:.66rem;font-weight:500;color:var(--muted);letter-spacing:.02em}.payroll-day-cell.is-edited,.payroll-day-cell-btn.is-edited{background:#ffe4e6;border-color:#fecdd3;color:#9f1239}.payroll-day-cell-btn.is-edited:hover:not(:disabled){background:#fecdd3;border-color:#fda4af;color:#9f1239}.payroll-day-cell-btn{display:inline-flex;align-items:center;justify-content:center;min-width:0;width:100%;margin:0;padding:4px 2px;border:1px solid transparent;border-radius:7px;background:#0f172a08;color:var(--ink);font-weight:550;font-size:.78rem;box-shadow:none;cursor:pointer}.payroll-day-cell-btn:hover:not(:disabled){filter:none;border-color:#1a8a9a59;background:var(--accent-soft);box-shadow:none;color:var(--accent)}.payroll-day-edit-form{display:grid;gap:14px}.payroll-day-mini-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:linear-gradient(180deg,#f8fafc,#fff)}.payroll-day-mini-detail>div{display:grid;gap:4px}.payroll-day-mini-detail>div>span{font-size:.72rem}.payroll-day-mini-detail>div>strong{font-size:.95rem;font-variant-numeric:tabular-nums}.payroll-day-mini-detail>div>strong.is-deduct{color:#b91c1c}.payroll-day-mini-detail>.hint{grid-column:1 / -1;margin:0}.payroll-day-edit-form .ui-modal-actions{margin-top:4px}.payroll-slip-empty{display:grid;gap:8px;padding:40px 20px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:.86rem;line-height:1.6}.payroll-slip-empty strong{color:var(--ink-soft);font-size:.92rem}.payroll-money-list{list-style:none;margin:0;padding:4px 0 0;display:grid}.payroll-money-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:11px 4px;border-bottom:1px solid var(--line);font-size:.88rem;line-height:1.45}.payroll-money-label{display:grid;gap:2px;min-width:0}.payroll-money-label small{color:var(--muted);font-size:.72rem;font-weight:500;line-height:1.35}.payroll-slip-day-hint{margin:0 0 4px!important;font-size:.78rem!important;max-width:none}.payroll-money-list li:last-child{border-bottom:0}.payroll-money-list span{color:var(--ink-soft)}.payroll-money-list strong{font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink)}.payroll-money-list li.is-deduct strong{color:var(--err)}.payroll-money-list li.is-clickable{padding:0}.payroll-money-row-btn{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;width:100%;margin:0;padding:11px 4px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-shadow:none}.payroll-money-row-btn:hover{filter:none;background:#f8fafc;box-shadow:none;color:inherit}.payroll-money-row-btn strong{font-variant-numeric:tabular-nums}.payroll-money-list li.is-deduct .payroll-money-row-btn strong{color:var(--err)}.payroll-money-breakdown{display:grid;gap:12px}.payroll-money-breakdown-table{max-height:min(50vh,420px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.payroll-money-breakdown-table table{width:100%;font-size:.84rem}.payroll-money-breakdown-table th,.payroll-money-breakdown-table td{padding:6px 10px;white-space:nowrap}.payroll-money-breakdown-table td.is-deduct{color:var(--err)}.payroll-money-breakdown-table tfoot td{font-weight:650;border-top:1px solid var(--line);background:#f8fafc}.payroll-money-list li.is-net{margin-top:8px;margin-bottom:4px;padding-top:14px;padding-bottom:14px;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.payroll-money-list li.is-net span,.payroll-money-list li.is-net strong{color:var(--accent-2);font-size:1rem}.payroll-adjust{display:grid;gap:14px;padding:18px;border-radius:var(--radius-md);border:1px solid var(--line);background:linear-gradient(180deg,var(--surface) 0%,#fff 100%)}.payroll-adjust h4{margin:0 0 2px;font-size:.92rem}.payroll-adjust .ocr-fields{gap:14px}.payroll-adjust .ocr-fields label{gap:8px}.payroll-adjust-checks{display:flex;flex-wrap:wrap;gap:12px 20px;padding:4px 0 2px}.payroll-adjust>.primary{margin-top:4px;justify-self:start}.payroll-adjust-days{margin-top:12px;padding:12px 14px;gap:10px}.payroll-slip-days input,.payroll-slip-days select{padding:3px 6px;font-size:.82rem}.payroll-slip-actions{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;padding:18px 20px 20px;margin-top:8px;border-top:1px solid var(--line)}.payroll-slip-actions-main{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}.payroll-slip-actions .primary{min-width:148px;padding:10px 18px}.payroll-slip-preview{color:var(--accent-2);font-weight:600;font-size:.9rem;font-family:inherit;text-decoration:none;background:none;border:0;border-bottom:1px solid transparent;padding:4px 2px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.payroll-slip-preview:disabled{opacity:.45;cursor:default}.payroll-slip-preview:hover{color:var(--accent-bright);border-bottom-color:var(--accent-bright)}.payroll-slip-actions .secondary{min-width:88px;padding:9px 16px}@media(max-width:980px){.payroll-shell{grid-template-columns:1fr}.payroll-runs-rail{position:static;max-height:none}.payroll-compose-grid,.payroll-slip-summary{grid-template-columns:1fr 1fr}.payroll-detail-facts>div.payroll-detail-fact-wide{grid-column:span 1}}@media(max-width:640px){.payroll-compose-grid,.payroll-slip-summary{grid-template-columns:1fr}}.payroll-steps{margin:0;padding-left:20px;display:grid;gap:12px;color:var(--muted);font-size:.85rem;line-height:1.75}.payroll-steps strong{color:var(--ink);font-weight:600}.payroll-formula{font-size:.82rem;color:var(--muted);margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.payroll-formula summary{cursor:pointer;color:var(--accent-2);width:fit-content}.payroll-formula .hint{margin-top:8px;line-height:1.65}.payroll-status{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin:6px 0 12px}.payroll-status .chip{align-self:center}.payroll-status .stat{display:grid;gap:2px;padding:8px 12px;min-width:84px;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-size:.72rem;color:var(--muted)}.payroll-status .stat b{font-size:.98rem;font-weight:650;color:var(--ink)}.payroll-source{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:6px 0 10px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.payroll-source>.chip{align-self:center}.payroll-source dl{display:flex;flex-wrap:wrap;gap:10px 18px;margin:0;flex:1 1 auto}.payroll-source dl>div{display:grid;gap:2px}.payroll-source dt{font-size:.68rem;color:var(--muted)}.payroll-source dd{margin:0;font-size:.85rem;font-weight:600;color:var(--ink)}.payroll-source dl>div.warn dd{color:var(--warn)}.payroll-source dl>div.warn dt{color:var(--warn)}button.link.payroll-row-link{font-size:.72rem}.link-btn.is-disabled,.link-btn:disabled{opacity:.45;pointer-events:none;cursor:default}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);overflow:auto;box-shadow:var(--shadow-xs)}.table-wrap-elevated{border-color:transparent;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:.875rem;vertical-align:middle;line-height:1.5}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface)}th{font-size:.7rem;color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--surface);white-space:nowrap}th.th-sortable{padding:0}button.th-sort{display:inline-flex;align-items:center;gap:6px;width:100%;margin:0;padding:12px 14px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;box-shadow:none}button.th-sort:hover{background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface));color:var(--accent-2)}button.th-sort.on{color:var(--accent-2)}.th-sort-ind{font-size:.75rem;opacity:.55;font-weight:700}button.th-sort.on .th-sort-ind{opacity:1}.cell-nowrap{white-space:nowrap}.cell-name{font-weight:600;white-space:nowrap;max-width:9rem;overflow:hidden;text-overflow:ellipsis}tr.worker-row{cursor:pointer}tr.worker-row.is-archived td{color:#64748b;background:#f8fafc}tr.worker-row.is-archived:hover td{background:#f1f5f9}tr.worker-row:hover td{background:#eef6f7}tr.worker-row:focus-visible{outline:2px solid var(--accent-bright, #1a8a9a);outline-offset:-2px}td.actions{white-space:nowrap;min-width:7.5rem;width:7.5rem;text-align:right;vertical-align:middle}td.actions .actions-inner{display:grid;grid-template-columns:3.4rem 3.4rem 3.6rem;gap:6px;justify-content:end;align-items:center;width:100%;margin-left:auto}td.actions .actions-inner>button{margin:0;width:100%;min-width:0;height:30px;padding:0 4px;font-size:.75rem;font-weight:600;line-height:1;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}td.actions .actions-inner>button.danger-lite{padding:0 4px;font-size:.75rem;border-radius:7px}td.actions .actions-slot{display:block;width:100%;height:30px}.docs-count-td{overflow:visible}.docs-count-cell{position:relative;display:inline-block;max-width:100%}.docs-count-cell .ocr-pill{cursor:default}.docs-count-tip{display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:40;min-width:12rem;max-width:16rem;padding:10px 12px;background:#0f172a;color:#f8fafc;border-radius:10px;box-shadow:0 12px 28px #0f172a47;font-size:.78rem;line-height:1.35;pointer-events:none}.docs-count-tip strong{display:block;margin-bottom:6px;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.docs-count-tip ul{margin:0;padding:0;list-style:none;display:grid;gap:3px}.docs-count-tip li.have{color:#86efac}.docs-count-tip li.miss{color:#fdba74}.docs-count-cell:hover .docs-count-tip,.docs-count-cell:focus-within .docs-count-tip{display:block}td.actions button{margin:0;flex:0 0 auto}.tag-cell{max-width:12rem}.ocr-pill-row.nowrap{flex-wrap:nowrap;overflow-x:auto;max-width:12rem;padding-bottom:2px}.tag-cell .ocr-pill,.tag-cell .chip{font-size:.68rem;padding:1px 8px;flex-shrink:0;white-space:nowrap}button.sort-th{background:none;color:inherit;padding:0;border-radius:0;font:inherit;font-weight:600;text-align:left;display:inline-flex;gap:4px;align-items:center}button.sort-th.on{color:var(--accent-2)}button.sort-th:hover{text-decoration:underline;background:none}.hkid-cell{display:inline-flex;align-items:center;gap:6px}.hkid-eye{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:999px;background:#e2e8f0;color:#334155;border:0;cursor:pointer}.hkid-eye:hover:not(:disabled){background:#cbd5e1;color:#0f172a}.hkid-eye[aria-pressed=true]{background:#ccfbf1;color:#0f766e}.four-cert-ok{display:inline-flex;align-items:center;gap:6px}.four-cert-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--warn)}.clause-editor{display:grid;gap:10px;margin:8px 0 12px}.clause-editor textarea,.intake-section textarea{width:100%;font:inherit;font-size:.88rem;padding:8px 10px;border:1px solid var(--line);border-radius:8px;resize:vertical;background:#fff}.btn-sm{padding:6px 12px;font-size:.82rem;border-radius:8px;line-height:1.2}button.secondary.btn-sm{background:#e2e8f0;color:#0f172a}button.secondary.btn-sm:hover:not(:disabled){background:#cbd5e1}.chip{display:inline-flex;align-items:center;font-size:.76rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface);color:var(--muted);border:1px solid var(--line);white-space:nowrap}.chip.pending{background:var(--warn-soft);color:var(--warn);border-color:#fed7aa}.chip.approved,.chip.confirmed{background:var(--ok-soft);color:var(--ok);border-color:#bbf7d0}.chip.rejected{background:var(--err-soft);color:var(--err);border-color:#fecaca}.chip.none{background:var(--surface);color:var(--muted)}.overlay{position:fixed;inset:0;background:#0f172a6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px}.drawer{width:min(560px,100%);display:flex;flex-direction:column;gap:0;max-height:90vh;overflow:hidden;padding:24px 24px 0}.drawer:has(>.drawer-head),.drawer:has(>.payroll-slip-head),.card.drawer:has(>.drawer-head),.card.drawer:has(>.payroll-slip-head){padding:0!important;border:0!important;outline:none;overflow:hidden;background:#fff;box-shadow:0 22px 56px #0f283247}.drawer.wide{width:min(1180px,calc(100vw - 40px))}.drawer.wide .intake-section{min-height:auto}.drawer.wide .ocr-preview-block{gap:20px}.drawer-scroll{flex:1 1 auto;min-height:0;overflow:auto;display:grid;gap:14px;align-content:start;padding:22px 24px calc(72px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.drawer-scroll:has(.manual-crop-workspace){padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.drawer:has(>.drawer-head)>.hint,.drawer:has(>.drawer-head)>.error,.drawer:has(>.drawer-head)>.draft-banner,.drawer:has(>.drawer-head)>.dup-worker-banner{margin:16px 24px 0}.drawer:has(>.drawer-head)>.leave-drawer-form{margin:0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.drawer:has(>.drawer-head)>.leave-drawer-form>.drawer-scroll{padding-top:12px}.drawer-foot{flex:0 0 auto;position:relative;z-index:5;margin:0;padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:0 -6px 16px #0f28320f}.field-block{display:grid;gap:8px;font-size:.9rem}.field-block label{display:grid;gap:8px}.field-label{color:inherit}.drawer.slip{width:min(98vw,2288px);max-height:min(98vh,1274px);overflow:hidden;padding-bottom:20px}.drawer.slip:has(>.payroll-slip-head){padding:0 0 20px}.slip-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:20px;align-items:start}.summary-table{font-size:.82rem}.summary-table th,.summary-table td{padding:6px 8px;white-space:nowrap}@media(max-width:960px){.slip-grid{grid-template-columns:1fr}}@media print{aside,.toolbar,.demoflow,.intake-section,button.secondary{display:none!important}.overlay{position:static;background:none;padding:0}.drawer.slip{width:100%;max-height:none;box-shadow:none;border:0}}.row{display:flex;gap:8px;justify-content:flex-end}.step-nav{display:grid;gap:10px;margin:0 0 4px;padding:14px 14px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 72%)}.step-nav-track{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0;padding:0}.step-nav-item{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:.88rem;font-weight:650}.step-nav-connector{width:22px;height:2px;margin:0 6px 0 2px;border-radius:99px;background:var(--line-strong);flex:0 0 auto}.step-nav-item.done .step-nav-connector,.step-nav-item.on .step-nav-connector{background:color-mix(in srgb,var(--accent-bright) 55%,var(--line))}.step-nav-badge{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#e2e8f0;color:var(--muted);font-size:.75rem;font-weight:800;flex:0 0 auto}.step-nav-item.on{color:var(--accent)}.step-nav-item.on .step-nav-badge{background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;box-shadow:0 0 0 3px #1a8a9a2e}.step-nav-item.done{color:var(--ok)}.step-nav-item.done .step-nav-badge{background:var(--ok-soft);color:var(--ok);border:1px solid #bbf7d0}.step-nav-label{white-space:nowrap}.step-nav-subtrack{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;list-style:none;margin:0;padding:8px 10px;border-radius:10px;background:#fff;border:1px dashed color-mix(in srgb,var(--accent-bright) 28%,var(--line))}.step-nav-sub{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}.step-nav-sub-sep{width:14px;height:1px;margin:0 4px;background:var(--line-strong)}.step-nav-sub-dot{width:8px;height:8px;border-radius:999px;background:#cbd5e1;flex:0 0 auto}.step-nav-sub.on{color:var(--accent-2);font-weight:750}.step-nav-sub.on .step-nav-sub-dot{background:var(--accent-bright);box-shadow:0 0 0 3px #1a8a9a33}.step-nav-sub.done{color:var(--ok)}.step-nav-sub.done .step-nav-sub-dot{background:var(--ok)}.step-nav-sub-btn{display:inline-flex;align-items:center;gap:6px;margin:0;padding:2px 6px;border:0;border-radius:8px;background:transparent;font:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:pointer}.step-nav-sub-btn:hover{background:color-mix(in srgb,var(--accent-bright) 12%,transparent)}.step-nav-hint{margin:0;font-size:.82rem;line-height:1.55;color:var(--ink-soft)}@media(max-width:640px){.step-nav-item{font-size:.8rem}.step-nav-connector{width:12px}}.steps{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;color:var(--muted);font-size:.9rem}.steps .on{color:var(--accent-2);font-weight:700}.steps .done{color:var(--accent)}.steps .done:before{content:"✓ "}.steps .todo{color:var(--muted);opacity:.7}.env-switcher{display:flex;flex-direction:column;gap:.55rem;margin:.75rem 0 1rem;padding:12px 14px;border-radius:12px;border:1px solid rgb(14 58 68 / 12%);background:linear-gradient(180deg,#f7fbfc,#f1f6f8);box-shadow:inset 0 1px #fffc}.env-switcher.is-live{border-color:#1a8a9a38;background:linear-gradient(180deg,#f3fafb,#e8f3f5)}.env-switcher.compact{margin:0;padding:10px 12px;flex-direction:column;align-items:stretch;gap:.5rem;border-radius:10px;max-width:min(420px,100%)}.env-switcher-kicker{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1}.env-switcher-top{display:flex;align-items:stretch;gap:6px}.env-switcher-seg{display:grid;grid-template-columns:1fr 1fr;flex:1;min-width:0;padding:3px;border-radius:10px;background:#0f172a0f;border:1px solid rgb(15 23 42 / 6%)}.env-switcher-seg button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:0;background:transparent;padding:0 10px;min-height:34px;font-size:.8rem;font-weight:650;letter-spacing:.01em;cursor:pointer;color:var(--ink-soft);border-radius:8px;box-shadow:none;white-space:nowrap;line-height:1;transition:background .15s,color .15s,box-shadow .15s}.env-switcher-seg button:hover:not(:disabled):not(.on){filter:none;background:#ffffff8c;box-shadow:none}.env-switcher-seg button.on{background:var(--accent);color:#fff;box-shadow:0 1px 2px #0e3a4438}.env-switcher.is-live .env-switcher-seg button.on{background:var(--accent-bright);box-shadow:0 1px 2px #0e3a4438}.env-dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.45}.env-switcher-seg button.on .env-dot{opacity:1;box-shadow:0 0 0 3px #ffffff47}.env-cfg-toggle{flex-shrink:0;border:1px solid var(--line);background:#fff;color:var(--accent-2);font-size:.75rem;font-weight:650;padding:0 10px;min-height:34px;border-radius:8px;box-shadow:none;cursor:pointer;white-space:nowrap}.env-cfg-toggle:hover:not(:disabled){filter:none;box-shadow:none;color:var(--accent-bright)}.env-cfg-toggle.open{color:var(--accent-bright)}.env-switcher-hint{margin:0;font-size:.78rem;line-height:1.45;color:var(--muted, #64748b)}.env-switcher-live{display:flex;flex-direction:column;gap:.35rem}.env-live-label{display:flex;flex-direction:column;gap:.35rem;margin:0;font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.env-live-row{display:flex;align-items:stretch;gap:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff;box-shadow:var(--shadow-xs)}.env-live-row:focus-within{border-color:var(--accent-bright);box-shadow:0 0 0 3px #1a8a9a29}.env-switcher.is-live .env-live-row:focus-within{border-color:var(--accent-bright);box-shadow:0 0 0 3px #1a8a9a29}.env-live-label input,.env-live-row input{flex:1;min-width:0;border:0!important;border-radius:0!important;box-shadow:none!important;padding:.55rem .7rem;font-size:.8rem;background:transparent}.env-apply{flex-shrink:0;border:0;border-left:1px solid var(--line);border-radius:0;background:#f1f5f9;color:var(--accent);font-size:.8rem;font-weight:650;padding:0 .9rem;box-shadow:none}.env-apply:hover:not(:disabled){filter:none;background:#e2e8f0;box-shadow:none}.test-banner{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;min-height:64px;background:linear-gradient(135deg,#fff7ed,#ffedd5 55%,#fed7aa);border-bottom:3px solid #ea580c;color:#9a3412;box-shadow:inset 0 -1px #ea580c2e}.test-banner-mark{flex:0 0 auto;display:inline-grid;place-items:center;min-width:52px;height:32px;padding:0 10px;border-radius:999px;background:#ea580c;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.06em}.test-banner-copy{display:grid;gap:4px;min-width:0}.test-banner-copy strong{letter-spacing:.01em;font-weight:800;color:#c2410c;font-size:.95rem}.test-banner-copy span{font-size:.88rem;line-height:1.45;color:#9a3412}.mock-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:18px;padding:10px 18px;border:1px solid #bae6fd;border-radius:var(--radius-md);font-size:.84rem;line-height:1.5;color:#0c4a6e;background:linear-gradient(90deg,#e0f2fe,#f0f9ff 55%,#ecfeff);box-shadow:var(--shadow-xs)}.mock-banner strong{letter-spacing:.01em;font-weight:700;color:#0369a1}.mock-banner span{color:#0369a1}.mock-banner-api{margin-left:4px;font-size:.8rem;opacity:.85}.mock-banner-link{margin-left:auto;font-size:.83rem;white-space:nowrap}.devstack-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 10px}.devstack-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.82rem;font-weight:600;border:1px solid transparent}.devstack-ok{background:#e3f3e8;color:var(--ok);border-color:#b8e0c5}.devstack-warn{background:#fbeede;color:var(--warn);border-color:#f0d3a8}.devstack-err{background:#fbe4e2;color:var(--err);border-color:#f0bdb8}.cmd-block{margin:8px 0;border:1px solid var(--line);border-radius:10px;background:#0e1f24;overflow:hidden}.cmd-block-pre{margin:0;padding:12px 14px;overflow-x:auto;color:#e7f0f2;font-family:ui-monospace,monospace;font-size:.82rem;line-height:1.7}.cmd-block-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;background:var(--surface);border-top:1px solid var(--line)}.backend-hint{display:grid;gap:8px;justify-items:start;margin:12px 0 16px;padding:16px 18px;border:1px solid var(--accent-2);border-left:4px solid var(--accent-2);border-radius:12px;background:var(--accent-soft)}.backend-hint strong{color:var(--ink);font-size:.95rem}.backend-hint .cmd-block{width:100%}.xcheck{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 18px}.xcheck-msg{display:block;padding:12px 14px;border:1px dashed var(--line);border-radius:10px;background:var(--panel);color:var(--muted);font-size:.85rem}.xcheck-cell{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.xcheck-n{font-size:1.3rem;font-weight:700;color:var(--ink);line-height:1.1}.xcheck-pct{font-size:.78rem;font-weight:650;color:var(--muted);letter-spacing:.01em}.xcheck-label{font-size:.78rem;color:var(--muted)}.xcheck-ok{border-color:#bfe0c8;background:#f1f8f3}.xcheck-ok .xcheck-n{color:var(--ok)}.xcheck-info{border-color:#bfdde6;background:#eef6f8}.xcheck-info .xcheck-n{color:var(--accent-2)}.xcheck-muted{border-color:var(--line);background:var(--surface)}.xcheck-warn{border-color:#eccfae;background:#fdf3e8}.xcheck-warn .xcheck-n{color:var(--warn)}@media(max-width:640px){.xcheck{grid-template-columns:repeat(2,1fr)}}.attn-page{display:flex;flex-direction:column;gap:22px}.attn-page>.toolbar{margin-bottom:0}.attn-page>.hint,.attn-page>.resolve-toast,.attn-page>.error{margin:0}.attn-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.88rem;color:var(--ink-soft)}.attn-breadcrumb strong{color:var(--ink);font-weight:700}.attn-breadcrumb-sep{color:#94a3b8}.attn-breadcrumb-workspace{padding:2px 0}.attn-nav-panel{gap:14px}.attn-nav-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.attn-nav-row{appearance:none;width:100%;margin:0;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fff,#f7fafb);padding:14px 16px;font:inherit;text-align:left;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;color:var(--ink);transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.attn-nav-row:hover{border-color:#1d7a8a;background:#f3fafb;box-shadow:0 6px 16px #0e3a4414}.attn-nav-row-main{display:grid;gap:4px;min-width:0}.attn-nav-row-main strong{font-size:1.02rem;font-weight:750;letter-spacing:.01em}.attn-nav-row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.attn-nav-chevron{font-size:1.2rem;color:#7b8f98;line-height:1}.attn-nav-status{font-size:.78rem;font-weight:700;padding:4px 9px;border-radius:999px;border:1px solid transparent}.attn-nav-status-ready{background:#e8f6ec;color:#1f6b3a;border-color:#b8e0c5}.attn-nav-status-incomplete{background:#fdf3e8;color:#9a5b12;border-color:#f0d3a8}.attn-nav-status-empty{background:#f3f5f6;color:#64748b;border-color:#e2e8f0}.attn-ready-dots{display:flex;flex-wrap:wrap;gap:6px}.attn-ready-dots span{font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:999px;background:#eef2f4;color:#94a3b8}.attn-ready-dots span.on{background:#e8f5f7;color:#0e3a44}.attn-month-add{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:12px 14px;border-radius:12px;background:#f7fafb;border:1px dashed #cfe3e9}.attn-month-add label{display:grid;gap:6px;font-size:.82rem;font-weight:650;color:var(--muted)}.intake-section{border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px 22px 24px;display:grid;gap:16px;background:var(--panel);margin-bottom:0;box-shadow:var(--shadow-xs);box-sizing:border-box}.intake-section h4{margin:0;padding:0;font-size:.95rem;letter-spacing:.01em}.attn-scope-lead{margin:0}.attn-scope-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}.attn-scope-head h4{margin:0}.attn-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.attn-source-card{gap:14px;margin:0;padding:18px}.attn-ds-head{display:flex;align-items:flex-start;gap:10px}.attn-ds-head>div{flex:1 1 auto;min-width:0}.attn-ds-head h4{margin:0;font-size:.95rem}.attn-source-card .attn-ds-num{display:inline-grid;place-items:center;flex:0 0 auto;width:1.6rem;height:1.6rem;border-radius:999px;background:#0e3a44;color:#fff;font-size:.8rem;font-weight:800}.attn-ds-desc{margin:2px 0 0;font-size:.78rem;color:var(--muted);line-height:1.35}.attn-ds-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:700;background:#e8edf0;color:var(--muted);white-space:nowrap}.attn-ds-badge.ok{background:#e2f1e6;color:#1b7a3d}.attn-file-label{display:block;margin:0}.attn-file-label input[type=file]{width:100%;font-size:.8rem}.attn-pending{margin:0;font-size:.78rem;color:var(--muted);word-break:break-all}.attn-pending.warn{color:var(--warn)}.attn-ds-btn{width:100%;justify-content:center}.attn-ds-machine{border-color:#bfdde6;background:#f7fbfd}.attn-ds-maincon{border-color:#d8c9ef;background:#faf8fd}.attn-ds-app{border-color:#bfe0c8;background:#f6fbf7}.attn-ready-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}.attn-ready-item{min-width:0;padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}.attn-ready-item.on{border-color:#9ad0b0;background:#f1f8f3}.attn-ready-item span{display:block;font-size:.72rem;color:var(--muted);font-weight:600}.attn-ready-item strong{display:block;margin-top:2px;font-size:.86rem;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attn-result{gap:18px}.attn-result-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px}.attn-result-head h4{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}.attn-filters{margin-top:4px;margin-bottom:4px}.attn-sig-filters{margin:0;gap:8px;align-items:center}.attn-filter-bar{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin:4px 0 14px}.attn-filter-group{display:grid;gap:6px}.attn-filter-group-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}.attn-filter-sep{display:inline-block;width:1px;height:1.35em;margin:0 2px;background:var(--line);flex:0 0 auto;align-self:center}.attn-status-block{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.attn-status-k{font-size:.68rem;font-weight:700;color:#94a3b8;min-width:1.8em}.attn-detail-panel{width:min(640px,100%);max-height:min(94vh,820px)}.attn-detail-meta{padding:12px 14px;border-radius:12px;background:linear-gradient(180deg,#f7fafb,#f3f7f9);border:1px solid #e4eef2;gap:12px!important}.attn-detail-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.attn-detail-chip-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;color:#94a3b8;min-width:2.2em}.attn-detail-meta-note{font-size:.8rem;line-height:1.35}.attn-detail-accept-hint{font-size:.8rem;line-height:1.35;align-self:center}.attn-detail-status-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;border-top:1px dashed #d7e4ea}.attn-detail-edit-block{padding:12px 14px;border-radius:12px;border:1px solid #e4eef2;background:#fff}.attn-detail-edit-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.attn-detail-edit-head h4{margin:0}.attn-detail-edit-save{display:flex;justify-content:flex-end}.attn-detail-log-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.attn-detail-log-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;padding:8px 10px;border-radius:8px;background:#f7fafb}.attn-detail-audit{margin-bottom:8px}.attn-edit-target{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding:12px;border-radius:14px;background:linear-gradient(180deg,#f3fafb,#eef6f8);border:1px solid #cfe3e9}.attn-edit-target-label{grid-column:1 / -1;margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:#5f7d86}.attn-edit-target-btn{appearance:none;border:1px solid #b7d2da;border-radius:12px;background:#fff;padding:12px 14px;font:inherit;text-align:left;cursor:pointer;color:var(--ink);display:grid;gap:4px;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.attn-edit-target-btn:disabled{opacity:.45;cursor:not-allowed}.attn-edit-target-btn.on{border-color:#1d7a8a;background:#e8f5f7;box-shadow:inset 0 0 0 1px #1d7a8a}.attn-edit-target-title{font-weight:700;font-size:.88rem;color:#0e3a44}.attn-edit-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.attn-edit-shortcuts-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--muted)}.attn-shortcut-btn{appearance:none;border:1px dashed #b7cdd6;border-radius:999px;background:#fff;padding:6px 12px;font:inherit;font-size:.8rem;font-weight:650;color:#1d5f6e;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.attn-shortcut-btn:hover:not(:disabled){background:#f0f8fa;border-style:solid;border-color:#1d7a8a}.attn-shortcut-btn:disabled{opacity:.4;cursor:not-allowed}.attn-shortcut-btn .mono{font-weight:500;color:var(--muted);font-size:.74rem}.attn-unify-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding:12px;border-radius:14px;background:linear-gradient(180deg,#fff8f1,#fff3e8);border:1px solid #f0d2b4}.attn-unify-btn{appearance:none;margin:0;border:1px solid #e8c49a;border-radius:14px;background:linear-gradient(180deg,#fff,#fff7ef);box-shadow:0 1px #fffc inset,0 6px 14px #92541c0f;padding:12px 14px;font:inherit;text-align:left;cursor:pointer;color:var(--ink);display:grid;gap:4px;min-width:0;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease}.attn-unify-btn:hover:not(:disabled){border-color:#c2410c;background:linear-gradient(180deg,#fff7ed,#ffedd5);box-shadow:0 0 0 1px #c2410c inset,0 8px 18px #92541c1f;transform:translateY(-1px)}.attn-unify-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 0 0 1px #c2410c inset}.attn-unify-btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;background:#f7f2ec;border-color:#e7ddd2}.attn-unify-btn-k{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b45309}.attn-unify-btn-title{font-size:.92rem;font-weight:750;color:#9a3412;letter-spacing:.01em}.attn-unify-btn-time{font-size:.84rem;font-weight:600;color:#9a6b3f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attn-unify-confirm{margin-top:10px;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fdba74;display:grid;gap:10px}.attn-unify-confirm p{margin:0;font-size:.88rem;line-height:1.5;color:#7c2d12}.attn-unify-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.attn-unify-confirm-go{background:#c2410c!important;color:#fff!important;border-color:#c2410c!important}@media(max-width:560px){.attn-unify-grid{grid-template-columns:1fr}}.attn-edit-body{gap:18px;padding:18px 20px 22px}.attn-edit-sources{gap:10px}.attn-edit-src{padding:12px 14px;border-radius:12px;background:#f6f9fb;border:1px solid #e5eef2}.attn-edit-panel{border-radius:18px}.attn-xcheck-table{margin-top:4px}.attn-xcheck-table tr.attn-row-click{cursor:pointer}.attn-xcheck-table tr.attn-row-click:hover td{background:#eef6f8}.attn-xcheck-table tr.attn-row-click.row-sev-high:hover td{background:#f8d9d6}.attn-identity-block{display:grid;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid #e4eef2;background:#fff}.attn-identity-card{display:grid;gap:8px;padding:10px 12px;border-radius:10px;background:#f7fafb;border:1px solid #e5eef2}.attn-identity-card>strong{font-size:.84rem;color:#0e3a44}.attn-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attn-identity-grid label{display:grid;gap:6px;min-width:0}.attn-identity-grid input{width:100%;box-sizing:border-box}@media(max-width:560px){.attn-identity-grid{grid-template-columns:1fr}}.attn-xcheck-table td{vertical-align:middle;padding-top:12px;padding-bottom:12px}.attn-xcheck-table .who{display:flex;flex-direction:column;gap:2px;text-align:left}.attn-xcheck-table .who-name{font-weight:700;color:inherit}.attn-xcheck-table .who-meta{font-size:.75rem;color:var(--muted);font-weight:500}.attn-reason{max-width:220px}.attn-reason-text{font-size:.84rem;line-height:1.4;color:var(--ink)}.attn-actions{min-width:160px;white-space:nowrap;vertical-align:middle}.attn-action-row{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px}.attn-ico{appearance:none;width:34px;height:34px;padding:0;border-radius:9px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.attn-ico:disabled{opacity:.4;cursor:not-allowed}.attn-ico-accept{background:#e7f6ec;color:#1b7a3d;border-color:#b9e0c5}.attn-ico-accept:hover:not(:disabled){background:#d4efdd}.attn-ico-ignore{background:#eef3f6;color:#3d5566;border-color:#d0dde6}.attn-ico-ignore:hover:not(:disabled){background:#e3ebf0}.attn-ico-delete{background:#fdf0ef;color:#b42318;border-color:#f0c7c2}.attn-ico-delete:hover:not(:disabled){background:#fbe4e2}.attn-ico-edit{background:#eef4fb;color:#1d4f91;border-color:#c5d7ee}.attn-ico-edit:hover:not(:disabled){background:#e0ebf8}.attn-ico-clear{background:#f5f5f5;color:#64748b;border-color:#e2e8f0}.attn-act{appearance:none;border:1px solid transparent;border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:650;line-height:1.2;cursor:pointer}.attn-act:disabled{opacity:.45;cursor:not-allowed}.attn-act-accept{background:#e7f6ec;color:#1b7a3d;border-color:#b9e0c5}.attn-act-ignore{background:#eef3f6;color:#3d5566;border-color:#d0dde6}.attn-act-delete{background:#fdf0ef;color:#b42318;border-color:#f0c7c2}.attn-act-edit{background:#eef4fb;color:#1d4f91;border-color:#c5d7ee}.attn-status-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.attn-res-tags{display:flex;flex-wrap:wrap;gap:4px}.tag-info{background:#e0ebf8;color:#1d4f91}.attn-batch-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f7fafb}.attn-batch-check{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:600;cursor:pointer}.attn-batch-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.attn-batch-hint{font-size:.82rem}.attn-col-check{width:48px;padding:0!important;text-align:center;vertical-align:middle}.attn-col-check .check-hit,.payroll-check-col .check-hit{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:44px;min-height:44px;margin:0;padding:12px 14px;cursor:pointer}.attn-col-check .check-hit:has(input:disabled),.payroll-check-col .check-hit:has(input:disabled){cursor:not-allowed;opacity:.55}.payroll-check-col{width:48px;padding:0!important;text-align:center;vertical-align:middle}.attn-xcheck-table tr.row-selected td{outline:none;box-shadow:none;background:#e8f4f6}.attn-xcheck-table tr.row-selected:hover td{background:#dceef1}.attn-name-cluster-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}.attn-name-variants{font-size:.74rem;white-space:nowrap}.attn-bulk-id-panel{display:grid;gap:10px;margin:0 0 12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f3f8f9}.attn-bulk-id-panel h5{margin:0;font-size:.92rem}.attn-bulk-id-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attn-bulk-id-grid label{display:grid;gap:4px;font-size:.82rem}.attn-bulk-id-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}@media(max-width:640px){.attn-bulk-id-grid{grid-template-columns:1fr}}.attn-action-panel{width:min(460px,100%)}.attn-batch-preview{margin:0;padding:0;list-style:none;display:grid;gap:6px;max-height:160px;overflow:auto}.attn-batch-preview li{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:8px;background:#f4f7f9;font-size:.84rem}.attn-act-delete-solid{background:#b42318!important;color:#fff!important;border-color:#b42318!important}.attn-edit-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:#0f172a7a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-sizing:border-box}.attn-edit-panel{width:min(520px,100%);max-height:min(92vh,720px);display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 22px 56px #0f283238;overflow:hidden}.attn-edit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex:0 0 auto;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.attn-edit-head-text{min-width:0}.attn-edit-sub{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0;font-size:.84rem;color:var(--muted)}.attn-edit-sub strong{color:var(--ink);font-weight:650}.attn-edit-body{flex:1 1 auto;min-height:0;overflow:auto;display:grid;gap:16px;padding:16px 20px;-webkit-overflow-scrolling:touch}.attn-edit-section{display:grid;gap:10px}.attn-edit-section h4{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.attn-edit-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.attn-edit-status-text{font-size:.88rem;line-height:1.4;color:var(--ink)}.attn-edit-sources{display:grid;grid-template-columns:1fr 1fr;gap:8px}.attn-edit-sources-3{grid-template-columns:repeat(3,minmax(0,1fr))}.attn-edit-src{display:grid;gap:4px;padding:10px 12px;border-radius:10px;background:#f4f7f9;border:1px solid #e7eef2;font-size:.84rem}.attn-edit-src strong{font-size:.92rem;font-weight:650}.attn-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attn-edit-grid label,.attn-edit-reason{display:grid;gap:6px;min-width:0}.attn-reason-templates{display:flex;flex-wrap:wrap;gap:6px}.attn-reason-chip{appearance:none;margin:0;border:1px solid #c9dce3;border-radius:999px;background:#fff;padding:5px 10px;font:inherit;font-size:.78rem;font-weight:650;color:#1d5f6e;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.attn-reason-chip:hover:not(:disabled){border-color:#1d7a8a;background:#f0f8fa}.attn-reason-chip.on{border-color:#1d7a8a;background:#e8f5f7;color:#0e3a44;box-shadow:inset 0 0 0 1px #1d7a8a}.attn-reason-chip:disabled{opacity:.45;cursor:not-allowed}.attn-edit-grid input,.attn-edit-reason textarea,.attn-edit-reason input{width:100%;box-sizing:border-box;min-width:0}.attn-edit-reason textarea{resize:vertical;min-height:72px;font:inherit;line-height:1.45;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.attn-edit-foot{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fff}.attn-edit-foot>button.secondary{margin-right:auto}@media(max-width:520px){.attn-edit-sources,.attn-edit-sources-3,.attn-edit-grid{grid-template-columns:1fr}}.attn-action-log{margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.attn-action-log summary{cursor:pointer;font-weight:650;font-size:.88rem;list-style:none}.attn-action-log summary::-webkit-details-marker{display:none}.attn-action-log ul{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}.attn-action-log li{display:grid;grid-template-columns:auto 1fr auto;gap:8px 10px;align-items:baseline;font-size:.8rem;padding:6px 8px;border-radius:8px;background:#fff;border:1px solid #e8eef2}.attn-log-act{font-weight:700;font-size:.72rem;padding:2px 7px;border-radius:999px;background:#e8edf0}.attn-log-accepted{background:#e2f1e6;color:#1b7a3d}.attn-log-dismissed{background:#eef3f6;color:#3d5566}.attn-log-deleted{background:#fbe4e2;color:#b42318}.attn-log-edited{background:#e0ebf8;color:#1d4f91}.attn-log-clear{background:#f1f5f7;color:#64748b}.attn-log-meta{font-size:.72rem;white-space:nowrap}@media(max-width:720px){.attn-action-log li{grid-template-columns:auto 1fr}.attn-log-meta{grid-column:1 / -1;white-space:normal}}@media(max-width:980px){.attn-sources,.attn-ready-strip{grid-template-columns:1fr}}.intake-reject-box{border:1px dashed color-mix(in srgb,var(--warn, #c45c26) 55%,var(--line));border-radius:10px;padding:12px;background:color-mix(in srgb,var(--warn, #c45c26) 8%,var(--surface))}.ocr-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ocr-fields-3{grid-template-columns:1fr 1fr 1fr}.tag{display:inline-block;font-size:.75rem;font-weight:600;line-height:1.3;padding:2px 8px;border-radius:999px;margin:0 4px 4px 0;background:#e8edf0;color:var(--ink);border:0;cursor:default}button.tag{cursor:pointer}.tag-on{outline:none;filter:brightness(.97);box-shadow:inset 0 0 0 1px #14606e59;font-weight:700}.tag-ok.tag-on{background:#c8e6d0;color:#145c2e}.tag-warn.tag-on{background:#f5d9b8;color:#8a4210}.tag-err.tag-on{background:#f5cfcb;color:#912018}.tag-info.tag-on{background:#c5e2e8;color:#0a4d5a}.tag-muted.tag-on{background:#d5dde2;color:#334155}.tag-ok{background:#e2f1e6;color:#1b7a3d}.tag-warn{background:#fbe9d6;color:#b45816}.tag-err{background:#fbe4e2;color:#b42318}.tag-info{background:#dfeef2;color:#0e5f70}.tag-purple{background:#ece5f4;color:#6a3fa0}.tag-muted{background:#e6ebee;color:#546670}.tag-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tag-cell{max-width:280px}.who{display:grid;gap:2px}.id-line{font-size:.8rem;color:var(--muted)}.row-ok{background:#f1f8f3}.row-diffs{background:#fdf3e8}.row-excel_only{background:#eaf3f7}.row-pdf_only{background:#f1f2f4}.row-flag-times_mismatch,.row-flag-hours_mismatch{background:#fdf3e8}.row-flag-incomplete_pdf{background:#f4eefa}.row-flag-missing_maincon{background:#eaf3f7}.row-flag-missing_system{background:#f1f2f4}.data-tabs{display:flex;flex-wrap:wrap;gap:8px}.data-tab{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:999px;padding:8px 14px;font-size:.86rem;font-weight:500;box-shadow:var(--shadow-xs)}.data-tab:hover:not(:disabled){background:var(--surface);border-color:var(--line-strong);filter:none}.data-tab.on{background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;border-color:transparent}.data-tab.on:hover:not(:disabled){filter:brightness(1.05)}.settings-tabs{margin:0}.settings-lead{margin:0 0 18px;max-width:58ch;line-height:1.5}.settings-layout{display:grid;grid-template-columns:minmax(12rem,13.5rem) minmax(0,1fr);gap:18px;align-items:start;min-width:0}.settings-side-nav{position:sticky;top:12px;display:grid;gap:16px;margin:0;padding:14px 12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-xs);min-width:0}.settings-side-group{display:grid;gap:6px;min-width:0}.settings-side-cap{margin:0 8px;font-size:.68rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.settings-side-list{display:grid;gap:3px;min-width:0}.settings-side-tab{appearance:none;width:100%;margin:0;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);font:inherit;font-size:.88rem;font-weight:600;text-align:left;cursor:pointer;line-height:1.3;transition:background .12s ease,color .12s ease;box-shadow:none}.settings-side-tab:hover{background:var(--accent-soft);color:var(--accent);filter:none;box-shadow:none}.settings-side-tab.is-active{background:var(--accent);color:#fff}.settings-side-tab.is-active:hover{filter:brightness(1.05);color:#fff}.settings-main{min-width:0;max-width:none;display:grid;gap:0}.settings-main>.intake-section,.settings-main>.settings-panel{margin-top:0}.settings-panel{gap:18px;padding:20px 22px 22px}.settings-panel>.hint{margin:0;line-height:1.45}.api-call-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.api-call-table{min-width:720px}.api-call-table td.error{color:var(--danger, #b91c1c)}.settings-panel>h4{margin:0}.settings-panel .ocr-fields{gap:12px 14px}.settings-panel .row-actions.settings-actions{margin-top:4px;padding-top:4px}.settings-panel-head{display:grid;gap:6px}.settings-panel-head h4{margin:0}.settings-panel-head .hint{margin:0;line-height:1.45}.settings-brand-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;max-width:36rem}.settings-brand-fields label{display:grid;gap:6px;font-size:.86rem;font-weight:600;color:var(--ink-soft)}.settings-brand-fields input{font-weight:500;color:var(--ink)}div.row-actions,.settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:flex-start;white-space:normal;margin-top:2px}.settings-actions>button{min-height:2.4rem;padding:9px 16px}.settings-nav{display:grid;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-xs)}.settings-nav-group{display:grid;gap:8px}.settings-nav-cap{margin:0;font-size:.7rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}@media(max-width:860px){.settings-layout{grid-template-columns:1fr}.settings-side-nav{position:static}.settings-side-list{display:flex;flex-wrap:wrap;gap:6px}.settings-side-tab{width:auto}.settings-brand-fields{grid-template-columns:1fr;max-width:none}.settings-main{max-width:none}}.settings-reset-fields{display:grid;gap:14px;max-width:520px}.settings-divider{border:0;border-top:1px solid var(--line);margin:28px 0 22px}.dup-worker-prompt{margin:12px 0 16px;padding:14px 16px;border-radius:10px;border:1px solid color-mix(in srgb,var(--warn, #c45c26) 45%,var(--line));background:color-mix(in srgb,var(--warn, #c45c26) 8%,var(--surface))}.dup-worker-prompt h4{margin:0 0 8px;font-size:1rem}.dup-worker-prompt p{margin:0 0 8px}.dup-worker-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.dup-worker-banner{margin:0 0 10px;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));display:grid;gap:8px}.dup-worker-banner-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}.dup-worker-banner-main>span{min-width:0;line-height:1.4}.dup-worker-banner-toggle{display:inline-flex;flex-wrap:wrap;gap:6px}.dup-worker-banner-toggle>button{margin:0;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:#0f1c22;font-size:.82rem;font-weight:650;cursor:pointer;box-shadow:none;filter:none;transform:none}.dup-worker-banner-toggle>button:hover:not(:disabled){border-color:#b8c5cc;background:#f3f8f9}.dup-worker-banner-toggle>button.on{background:#dceef1;color:#0a3d47;border-color:#14606e;box-shadow:inset 0 0 0 1px #14606e}.dup-worker-banner-note{margin:0;font-size:.78rem;color:var(--muted);line-height:1.4}.field-fill-new-swatch{display:inline-block;width:.85em;height:.85em;margin-right:4px;vertical-align:-.1em;border:2px solid var(--accent-bright);border-radius:3px;background:color-mix(in srgb,var(--accent-soft) 70%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-bright) 22%,transparent)}.field-fill-new-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;border:1px solid color-mix(in srgb,var(--accent-bright) 55%,#fff);background:var(--accent-soft);color:var(--accent-2);font-size:.7rem;font-weight:700;letter-spacing:.02em;vertical-align:.05em;line-height:1.4}label.field-fill-new>input,label.field-fill-new>select,label.field-fill-new .date-field-row input,label.field-fill-new .date-field-row select,.field-block.field-fill-new .sex-toggle,.ocr-edit-label.field-fill-new>input,.ocr-edit-label.field-fill-new>select,.ocr-edit-label.field-fill-new .date-field-row input,.ocr-edit-label.field-fill-new .date-field-row select,.ocr-edit-label.field-fill-new.field-block .sex-toggle{border-color:var(--accent-bright);border-width:2px;background:color-mix(in srgb,var(--accent-soft) 65%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-bright) 18%,transparent)}label.field-fill-new>input:focus,label.field-fill-new>select:focus,.ocr-edit-label.field-fill-new>input:focus,.ocr-edit-label.field-fill-new>select:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-bright) 28%,transparent)}.sim-presets{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.sim-grid{display:grid;gap:8px;max-width:640px}.sim-row{display:grid;grid-template-columns:auto 1fr 88px;gap:10px 12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}.sim-row.on{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.sim-row-label{display:grid;gap:2px;min-width:0}.sim-row-label strong{font-size:.95rem}.sim-row-label .hint{margin:0;font-size:.8rem;line-height:1.35}.sim-row input[type=number]{width:100%;text-align:right}.settings-reset-field{display:grid;gap:6px}.settings-reset-field .field-label{font-size:.9rem;font-weight:600;color:var(--ink-soft)}.settings-reset-field .field-label .mono,.settings-reset-field .field-label code{display:inline;font-size:.85em;padding:0 4px;border-radius:4px;background:var(--surface);border:1px solid var(--line)}.settings-feature-toggle{margin:12px 0 16px;padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc}.settings-feature-toggle h5{margin:0 0 6px;font-size:.95rem}.settings-toggle-row{margin-top:8px;font-weight:600}.ui-switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0;padding:10px 12px;border:1px solid var(--line, #e2e8f0);border-radius:10px;background:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.ui-switch-row:has(.ui-switch:disabled){opacity:.65;cursor:not-allowed}.ui-switch-label{flex:1 1 auto;font-size:.88rem;font-weight:560;line-height:1.35;color:var(--ink, #0f172a)}.ui-switch{flex:0 0 auto;position:relative;width:44px;height:26px;padding:0;border:none;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:background .18s ease}.ui-switch:focus-visible{outline:2px solid var(--accent, #0f766e);outline-offset:2px}.ui-switch.on{background:var(--accent, #0f766e)}.ui-switch:disabled{cursor:not-allowed}.ui-switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a40;transition:transform .18s ease}.ui-switch.on .ui-switch-knob{transform:translate(18px)}.contract-clause .ui-switch-row{margin-top:10px}.chip.locked{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.chip.settled{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}.chip.draft{background:var(--ok-soft, #ecfdf5);color:var(--ok, #047857);border-color:#bbf7d0}.who-btn{text-align:left;display:block;width:100%}.row-sev-high{background:#fbe4e2}.row-sev-mid{background:#fdf3e8}.row-sev-low{background:#eaf3f7}.row-sev-none{background:#f1f8f3}.row-resolved td{opacity:.6}.resolution-audit{display:grid;gap:2px;margin-top:6px;font-size:.78rem}.attn-audit-cell{min-width:168px;max-width:220px}.attn-row-audit{display:grid;gap:3px;font-size:.74rem;line-height:1.35;color:var(--muted)}.attn-row-audit-line{display:grid;grid-template-columns:2.2em 1fr;gap:6px;align-items:baseline}.attn-row-audit-k{font-weight:700;color:#64748b;letter-spacing:.02em}.attn-row-audit-v{color:var(--ink);font-size:.74rem;white-space:normal;word-break:break-word}.resolve-toast{margin:0 0 4px;padding:8px 12px;border:1px solid #b8e0c5;border-left:4px solid var(--ok);border-radius:8px;background:#f1f8f3;color:var(--ok);font-size:.85rem}.attn-error{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.attn-error-x{flex:none;margin:-2px -4px 0 0;padding:0 6px;border:0;border-radius:6px;background:transparent;color:inherit;font-size:1.1rem;line-height:1.4;cursor:pointer;opacity:.7}.attn-error-x:hover{opacity:1}.settings-note.ok.settings-note-under-btn{margin-top:10px}.settings-note.ok{margin:0;padding:8px 12px;border:1px solid #b8e0c5;border-left:3px solid var(--ok);border-radius:8px;background:var(--ok-soft);color:var(--ok);font-size:.85rem}.settings-note.ok:before{content:"✓ ";font-weight:700}.source-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:2px 0 8px;font-size:.8rem;color:var(--muted)}.source-legend .src-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}.src-machine{background:var(--accent-2)}.src-app{background:var(--ok)}.src-maincon{background:#6a3fa0}.source-legend-note{flex-basis:100%;color:var(--muted)}.source-legend-note strong{color:var(--ink)}.src-crosscheck{background:var(--warn)}.record-source-legend{margin-bottom:12px}.record-toolbar{display:grid;gap:16px;margin-bottom:18px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.record-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.record-toolbar-label{flex:0 0 auto;font-size:.75rem;font-weight:600;color:var(--muted);min-width:5.5em}.record-source-tabs,.view-mode-tabs{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 auto}.record-source-tab,.view-mode-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.82rem;cursor:pointer;color:var(--ink-soft)}.record-source-tab.on,.view-mode-tab.on{border-color:var(--accent-2);background:var(--accent-soft);color:var(--accent);font-weight:600}.record-source-count{font-size:.72rem;padding:1px 6px;border-radius:999px;background:#0f172a14;color:var(--ink-soft)}.record-search-inline{flex:1 1 200px;max-width:320px;margin-left:auto}.record-search-inline input{width:100%;padding:7px 12px;border:1px solid var(--line);border-radius:8px;font-size:.85rem}.view-date-picker{display:inline-flex;align-items:center;gap:6px;margin-left:4px;flex:0 1 auto;flex-wrap:wrap}.view-date-label{font-size:.75rem;font-weight:600;color:var(--muted)}.view-date-picker input[type=date],.view-date-picker input[type=month]{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:.85rem;font-family:inherit;background:#fff}.view-date-nav{min-width:2rem;padding:4px 8px;line-height:1.2}.view-date-hint{font-size:.78rem;white-space:nowrap}.person-picker-row{align-items:flex-start}.person-combo{position:relative;flex:1 1 320px;max-width:420px;min-width:220px}.person-combo-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;cursor:pointer;color:var(--ink)}.person-combo.open .person-combo-trigger,.person-combo-trigger:hover{border-color:var(--accent-2)}.person-combo-caret{margin-left:auto;color:var(--muted);font-size:.75rem}.person-combo-panel{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px #0f172a24;overflow:hidden}.person-combo-panel input[type=search]{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 12px;font-size:.85rem;outline:none}.person-combo-list{list-style:none;margin:0;padding:4px;max-height:260px;overflow:auto}.person-combo-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-radius:8px;background:transparent;cursor:pointer;text-align:left;color:var(--ink)}.person-combo-item:hover{background:var(--surface)}.person-combo-item.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.person-combo-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.person-combo-code{flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--muted);font-weight:600}.person-combo-item.on .person-combo-code{color:var(--accent)}.person-picker-empty{color:var(--muted);font-size:.85rem;padding:10px 12px}.person-selected-hint{margin-top:0}.record-list-search{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px}.record-list-search input{flex:1;min-width:0;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.record-group{margin-bottom:16px}.record-group-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 12px;margin-bottom:8px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}.record-group-head strong{color:var(--ink)}.tag-legend-label{font-size:.78rem;font-weight:600;color:var(--muted);margin-right:2px}.doc-slot{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:6px;background:#fff}.doc-slot.ok{border-color:var(--ok);background:#f1f8f2}.doc-slot.review{border-color:var(--warn);background:#fdf3e8}.doc-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dropzone{display:grid;place-items:center;justify-items:center;width:100%;box-sizing:border-box;min-height:210px;border:1.5px dashed var(--line);border-radius:var(--radius-md);background:#fff;cursor:pointer;font-size:1rem;color:var(--muted);padding:28px 20px;text-align:center;gap:10px;line-height:1.65}.dropzone-file-icon{display:block;margin:0 auto 2px;filter:drop-shadow(0 4px 10px rgb(15 118 110 / 22%));transition:transform .15s ease,filter .15s ease}.dropzone:hover .dropzone-file-icon,.dropzone.over .dropzone-file-icon{transform:translateY(-2px) scale(1.04);filter:drop-shadow(0 6px 14px rgb(15 118 110 / 32%))}.dropzone strong{color:var(--ink);font-weight:650}.dropzone span{line-height:1.72;letter-spacing:.01em;max-width:52ch}.dropzone-sub{display:block;font-size:.86rem;line-height:1.72;letter-spacing:.01em;max-width:52ch}.dropzone.over{border-color:var(--accent-2);background:var(--accent-soft);color:var(--accent)}.dropzone.off{opacity:.5;cursor:not-allowed}.upload-photo-guide{margin:10px 0 0;padding:12px 14px;border-left:3px solid var(--accent, #0f766e);background:color-mix(in srgb,var(--accent-soft, #ecfdf5) 70%,transparent);border-radius:0 8px 8px 0}.upload-photo-guide h5{margin:0 0 8px;font-size:.92rem;font-weight:650;color:var(--text, #0f172a)}.upload-photo-guide ul{margin:0;padding-left:1.15rem;display:grid;gap:5px;color:var(--muted, #475569);font-size:.84rem;line-height:1.45}.upload-photo-guide li strong{color:var(--text, #1e293b);font-weight:600}.upload-photo-guide-note{margin:10px 0 0;font-size:.82rem;line-height:1.45;color:var(--muted, #475569)}.upload-photo-guide-note strong{color:var(--text, #1e293b)}.upload-photo-guide.compact{padding:10px 12px}.upload-photo-guide.compact ul{font-size:.8rem}.file-chips{list-style:none;margin:0;padding:0;display:grid;gap:6px}.file-chip{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.85rem}.file-chip.bad{border-color:var(--err);background:#fbe4e2}.check{display:flex;gap:8px;align-items:center;font-size:.9rem}.split{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.1fr);gap:16px;align-items:start}.preview-pane{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-height:70vh;display:grid;grid-template-rows:auto auto auto 1fr;overflow:hidden}.preview-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.preview-identity{min-width:12rem;flex:1 1 14rem}.preview-title-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.preview-name{font-size:1.05rem}.preview-meta{margin-top:4px;font-size:.82rem;line-height:1.4}.preview-bar{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.preview-bar-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.preview-bar-actions .secondary,.preview-bar-actions .primary,.preview-bar-actions .link,.preview-bar-actions .upload-btn{margin:0;font-size:.82rem;padding:6px 10px}.contract-timeline-wrap{border-bottom:1px solid var(--line);background:#f7fafb}.contract-timeline-label{display:flex;gap:10px;align-items:baseline;padding:8px 12px 0;font-size:.82rem;font-weight:600}.contract-timeline-label .link{margin-left:auto;font-weight:500}.contract-timeline{display:flex;gap:8px;padding:8px 12px 10px;overflow-x:auto}.contract-timeline-item{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;min-width:8.5rem;max-width:12rem;font:inherit;color:inherit}.contract-timeline-item:hover{border-color:var(--accent-bright, #1a8a9a)}.contract-timeline-item.on{border-color:var(--accent-bright, #1a8a9a);background:var(--accent-soft, #e7f4f6);box-shadow:inset 0 0 0 1px var(--accent-bright, #1a8a9a)}.contract-timeline-item .ctl-emp{font-weight:600;font-size:.72rem;letter-spacing:.02em}.contract-timeline-item .ctl-emp.emp-active{color:#0a6b4a}.contract-timeline-item .ctl-emp.emp-ended{color:#64748b}.contract-timeline-item .ctl-site{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-timeline-item .ctl-foot{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.contract-timeline-item .ctl-rate{font-size:.75rem;font-variant-numeric:tabular-nums;font-weight:600}.contract-timeline-item .ctl-date{font-size:.7rem}.preview-pane iframe{width:100%;height:100%;min-height:62vh;border:0;background:#fff}.contract-preview-tabs{display:flex;gap:6px;padding:8px 12px 0;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#f7fafb}.contract-preview-tabs button{margin:0 0 -1px;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;background:transparent;padding:8px 12px;font:inherit;font-size:.84rem;font-weight:600;color:#64748b;cursor:pointer}.contract-preview-tabs button:hover:not(:disabled){color:#0f1c22;background:#eef5f6}.contract-preview-tabs button.on{background:#fff;color:#0a3d47;border-color:var(--line);box-shadow:0 1px #fff}.contract-preview-tabs button:disabled{opacity:.4;cursor:not-allowed}.contract-preview-tabs .esign-phase{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:800;vertical-align:middle}.contract-preview-tabs .esign-phase.wait{background:#e2e8f0;color:#334155}.contract-preview-tabs .esign-phase.mid{background:#fef3c7;color:#92400e}.contract-preview-tabs .esign-phase.done{background:#d1fae5;color:#065f46}.contract-draft-downloads{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:0 0 6px}.contract-draft-downloads .secondary{padding:6px 10px;font-size:.8rem}.contract-preview-frame{min-height:0;display:flex;flex-direction:column}.contract-preview-frame iframe{width:100%;height:100%;min-height:58vh;border:0;background:#c8c8c8;flex:1}.dash-site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.dash-site-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;border:1px solid var(--line, #d7e2e6);border-radius:12px;background:#fff;color:var(--ink)!important;text-align:left;cursor:pointer;box-shadow:none;font:inherit;font-weight:500}.dash-site-card:hover:not(:disabled){border-color:#14606e;background:#f7fbfb;filter:none;transform:none}.dash-site-card.is-live{border-color:#0f766e;box-shadow:inset 3px 0 #0f766e}.dash-site-card.is-warn{border-color:#c2410c}.dash-site-card-kicker{font-size:.75rem;font-weight:600;letter-spacing:.02em;color:#0f766e}.dash-site-card.is-warn .dash-site-card-kicker{color:#c2410c}.dash-site-card strong{font-size:1.05rem}.foreman-worker-groups{display:flex;flex-direction:column;gap:10px;padding:8px}.foreman-group{border:1px solid var(--line, #d7e2e6);border-radius:12px;background:#fff;overflow:hidden}.foreman-group-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none;background:#f7fafb}.foreman-group-head::-webkit-details-marker{display:none}.foreman-group-title{display:flex;flex-direction:column;gap:2px}.foreman-group-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.foreman-worker-list{list-style:none;margin:0;padding:6px 8px 10px}.foreman-worker-row{width:100%;display:flex;align-items:center;gap:12px;padding:10px 8px;border:0;border-radius:8px;background:transparent;color:var(--ink)!important;text-align:left;cursor:pointer;box-shadow:none;font:inherit;font-weight:500}.foreman-worker-row:hover:not(:disabled){background:#f0f7f8;filter:none;transform:none}.foreman-worker-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.foreman-worker-row.is-archived,.foreman-worker-row.is-blacklisted{opacity:.72}.site-map-tabs{margin:10px 0 4px}.th-sort{display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;border:0;background:transparent;font:inherit;font-weight:600;color:inherit;cursor:pointer}.th-sort:hover{color:var(--accent-2, #14606e)}.th-sort-mark{font-size:.75rem;opacity:.7}.list-mode-toggle{margin:0}.list-mode-hint{margin:0 0 10px}.emp-code-line{font-size:.78rem;font-weight:600;color:#334155}tr.row-cont td:first-child{padding-left:1.25rem}.row-cont-mark{font-size:.78rem}.preview-hint{padding:0 12px;margin:8px 0 0}.row-on{background:var(--accent-soft)}.link-btn{color:var(--accent-2);align-self:center;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none}@media(max-width:960px){.split{grid-template-columns:1fr}}@media(max-width:640px){.ocr-fields,.ocr-fields-3{grid-template-columns:1fr}.file-chip{grid-template-columns:1fr auto}}.ocr-preview-block{margin-top:14px;display:grid;gap:12px}.ocr-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ocr-preview-head h4{margin:0}.ocr-original-img{max-width:100%;max-height:280px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#0b1220}.ocr-crop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.ocr-crop-grid.ocr-crop-list{grid-template-columns:1fr;gap:16px}.ocr-hw-group{display:grid;gap:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.ocr-hw-group-head{padding:14px 18px 12px}.ocr-hw-group-head h5{margin:0;font-size:.95rem}.ocr-hw-group-head p{margin:4px 0 0;color:var(--ink-soft);font-size:.86rem}.ocr-hw-split{display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(280px,1fr);gap:0;align-items:start}.ocr-hw-photos{display:grid;grid-template-columns:1fr;gap:10px;padding:0 0 12px;border-right:1px solid var(--line);min-width:0}.ocr-hw-fields{display:grid;gap:10px;align-content:start;min-width:0;padding:16px 18px 20px}.ocr-hw-photo{display:grid;gap:8px;margin:0}.ocr-hw-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px}.ocr-hw-thumb{width:100%;padding:0;border:0;background:#0b1220;border-radius:10px;overflow:hidden;cursor:zoom-in}.ocr-hw-thumb img{width:100%;max-height:min(32vh,240px);object-fit:contain;display:block;background:#0b1220}.ocr-hw-group .ocr-decide-row{justify-content:flex-start;flex-wrap:wrap}.ocr-hw-group .ocr-decide-row button{flex:0 0 auto;width:auto;font-size:.9rem;line-height:1.2;padding:8px 14px;border-radius:8px}.ocr-hw-clash{display:grid;gap:8px}.ocr-hw-choices{display:flex;flex-wrap:wrap;gap:8px}.ocr-hw-choice{border:1px solid var(--line-strong);background:#fff;color:var(--ink);border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left}.ocr-hw-choice:hover{border-color:var(--accent)}.ocr-crop-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);display:grid;grid-template-rows:150px auto;box-shadow:0 1px #0f172a0a}.ocr-crop-card.ocr-split{grid-template-columns:minmax(280px,1.1fr) minmax(280px,1fr);grid-template-rows:auto;align-items:start;min-height:0}.ocr-crop-media{background:#0b1220;min-height:0;height:auto;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);position:sticky;top:0;align-self:start}.ocr-thumb-large{width:100%;height:auto;min-height:0;display:block}.ocr-thumb-large img{width:100%;height:auto;max-height:min(72vh,640px);min-height:0;object-fit:contain;object-position:center top;background:#0b1220;display:block;vertical-align:top}.ocr-crop-card.confirmed{border-color:#16a34a}.ocr-crop-card.bad{border-color:#f87171}.ocr-crop-card img{width:100%;height:150px;object-fit:contain;background:#0b1220}.ocr-crop-card.ocr-split img{height:auto;object-fit:contain;object-position:center center}.ocr-crop-card.ocr-split .ocr-crop-media img{width:100%;height:auto;max-height:none;aspect-ratio:85.6 / 53.98;object-fit:contain;object-position:center center;background:#0b1220;border:1px solid var(--line);border-radius:8px}.ocr-crop-card.ocr-split.handwriting .ocr-crop-media img{aspect-ratio:auto;max-height:min(52vh,420px);width:100%;object-fit:contain}.ocr-crop-frame-hint{margin:2px 0 10px}.ocr-halfcard-chip{position:absolute;left:8px;top:8px;z-index:2;font-size:.72rem;font-weight:700;letter-spacing:.02em;color:#cbd5e1;background:#0f172ad1;border:1px solid #475569;padding:2px 8px;border-radius:999px}.ocr-crop-meta{padding:12px 14px 14px;display:grid;gap:8px;align-content:start}.ocr-crop-card.ocr-split .ocr-crop-meta{padding:16px 18px 20px;overflow:visible;max-height:none;min-height:0}.ocr-edit-fields-side{display:grid;gap:8px;margin-top:4px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.ocr-side-hint{margin:0 0 2px;font-size:.8rem}.ocr-crop-card.ocr-split .ocr-decide-row{margin-top:8px}.ocr-crop-card.ocr-split .ocr-btn-accept,.ocr-crop-card.ocr-split .ocr-btn-reject{min-width:5.5rem;padding:8px 12px;font-size:.9rem}@media(max-width:900px){.ocr-hw-split{grid-template-columns:1fr}.ocr-hw-photos{border-right:0;border-bottom:1px solid var(--line);padding-bottom:12px}.ocr-hw-fields{padding-top:14px}.ocr-crop-card.ocr-split{grid-template-columns:1fr;min-height:0}.ocr-crop-media{position:static;border-right:0;border-bottom:1px solid var(--line);min-height:0;height:auto}.ocr-thumb-large,.ocr-thumb-large img{min-height:0;max-height:min(55vh,420px)}.ocr-crop-card.ocr-split .ocr-crop-meta{min-height:0}}.ocr-crop-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ocr-crop-title-row strong{font-size:.86rem;word-break:break-all;padding-top:4px}.ocr-crop-title-row .ocr-remove-circle{flex-shrink:0;width:28px;height:28px}.ocr-pill-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ocr-pill{display:inline-flex;align-items:center;max-width:100%;padding:2px 10px;border-radius:999px;font-size:.72rem;font-weight:600;line-height:1.4;border:1px solid transparent;white-space:nowrap}.ocr-pill.conf{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.ocr-pill.type{background:#f1f5f9;color:#334155;border-color:#cbd5e1}.ocr-pill.status.pending{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.ocr-pill.status.ok{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.ocr-pill.status.expired,.ocr-pill.status.bad{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.ocr-pill.status.invalid{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.date-field-wrap{display:grid;gap:4px}.date-field-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.month-year-pick{flex-wrap:nowrap;width:100%}.month-year-pick select{min-width:4.5rem;width:auto;flex:0 0 auto}.ocr-crop-meta .month-year-pick select{width:auto;max-width:none}.month-year-pick>.muted{flex:0 0 auto;line-height:1}.month-year-pick .date-display,.month-year-pick .ocr-pill{flex:0 1 auto;white-space:nowrap}.date-field-row input[type=date],.date-field-row input[type=month]{flex:1;min-width:160px;max-width:220px}.date-field-row .date-display{font-size:.85rem;font-variant-numeric:tabular-nums}.sex-toggle{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sex-opt{display:inline-flex!important;flex-direction:row;align-items:center;gap:8px;padding:8px 16px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;cursor:pointer;font-weight:600;margin:0;width:auto;min-width:4.75rem;white-space:nowrap;box-sizing:border-box}.sex-opt.on{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.sex-opt input[type=radio]{width:1rem;height:1rem;min-width:1rem;margin:0;padding:0;border:none;border-radius:50%;background:transparent;flex-shrink:0;accent-color:#2563eb;box-shadow:none}.date-field-row input{flex:1;min-width:140px}.doc-slot.expired{border-color:#f87171;background:#fff5f5}.ocr-complete-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#16a34a;color:#fff;font-size:.75rem;font-weight:800;flex-shrink:0;line-height:1}.doc-head-title{display:inline-flex;align-items:center;gap:8px}.doc-slot.complete{border-color:#16a34a;background:#f0fdf4}.doc-slot-pills{justify-content:flex-end;flex:1}.doc-slot-pills .ocr-pill{max-width:14rem;overflow:hidden;text-overflow:ellipsis}.ocr-crop-meta select{width:100%}.ocr-decide-row{display:flex;gap:8px;margin-top:4px}.ocr-image-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}.ocr-action-btn{display:inline-flex;align-items:center;gap:6px;margin:0;cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:#f4f7f9;color:var(--ink);line-height:1.2}.ocr-action-btn:hover:not(:disabled):not(.off){background:#e8eef2;border-color:#b7c4cc}.ocr-action-btn.primary-lite{background:#e8f3f0;border-color:#9fc9bc;color:#0f5c4c}.ocr-action-btn.primary-lite:hover:not(:disabled){background:#d7ebe5}.ocr-action-btn.off,.ocr-action-btn:disabled{opacity:.55;cursor:not-allowed}.ocr-action-btn input{display:none}.ocr-action-ico{font-size:.95rem;opacity:.85}.ocr-confirmed-note{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;padding:8px 10px;border-radius:8px;background:#f0fdf4;border:1px solid #bbf7d0;font-size:.78rem;color:#166534;line-height:1.35}.ocr-confirmed-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#16a34a;color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em}.ocr-card-foot{display:flex;justify-content:flex-end;margin-top:6px}.ocr-remove-circle{width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:transparent;color:#64748b;display:inline-grid;place-items:center;padding:0;cursor:pointer;line-height:0;transition:background .12s ease,color .12s ease,border-color .12s ease}.ocr-remove-circle svg{display:block}.ocr-remove-circle:hover{border-color:#fecaca;color:#b91c1c;background:#fef2f2}.ocr-remove-circle:focus-visible{outline:2px solid var(--accent-2, #14606e);outline-offset:1px}.ocr-prelim-form{margin-top:16px;padding-top:8px;border-top:1px dashed var(--line)}.card-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.legend-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.legend-pill.green{background:#dcfce7;color:#166534;border:1px solid #86efac}.legend-pill.gray{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.doc-slot.empty{border-color:#cbd5e1;background:#f8fafc}.doc-slot.filled,.doc-slot.ok{border-color:#86efac;background:#f0fdf4}.doc-slot.filled.review,.doc-slot.review{border-color:var(--warn);background:#fdf3e8}.ocr-replace-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0;font-size:.85rem;padding:.35rem .7rem}.ocr-replace-btn input{display:none}.ocr-decide-row button{flex:1;width:auto;font-size:1.35rem;line-height:1;padding:10px 8px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-weight:700}.ocr-btn-accept{background:#15803d;color:#ecfdf5;border-color:#166534}.ocr-btn-accept:hover{background:#16a34a}.ocr-btn-reject{background:#b91c1c;color:#fef2f2;border-color:#991b1b}.ocr-btn-reject:hover{background:#dc2626}.doc-slot-thumb{width:100%;max-height:220px;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#0b1220;margin:6px 0 8px}.doc-slot-thumb-btn{margin:6px 0 8px}.doc-slot-thumb-btn .doc-slot-thumb{margin:0;border:0}.proof-drop-wrap{display:grid;gap:10px;margin-bottom:8px;width:100%}.proof-drop-wrap .dropzone{width:100%}.proof-existing-thumb{max-width:280px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.proof-existing-thumb img{width:100%;max-height:160px;object-fit:contain;background:#0b1220;display:block}.batch-job-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;background:var(--panel, #fff);display:grid;gap:10px}.batch-job-head-right{display:flex;align-items:center;gap:12px}.ocr-loading{display:grid;gap:8px;margin:10px 0 4px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#f8fafc}.ocr-loading span,.ocr-loading-row{font-size:.85rem;color:var(--muted, #64748b);display:inline-flex;align-items:center;gap:8px}.ocr-loading-track{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.ocr-loading-bar{height:100%;width:40%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#14b8a6,#0f766e);background-size:200% 100%;animation:ocr-indeterminate 1.1s ease-in-out infinite}.ocr-loading-bar.determ{animation:none;background:#0f766e;background-size:100% 100%;transition:width .25s ease;min-width:0}@keyframes ocr-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.ocr-spinner{display:inline-block;width:16px;height:16px;border:2px solid #cbd5e1;border-top-color:#0f766e;border-radius:50%;animation:ocr-spin .7s linear infinite;flex-shrink:0}@keyframes ocr-spin{to{transform:rotate(360deg)}}.ocr-circle-wrap{display:inline-flex;align-items:center;gap:8px}.ocr-circle{width:40px;height:40px;transform:rotate(-90deg)}.ocr-circle-track{fill:none;stroke:#e2e8f0;stroke-width:4}.ocr-circle-prog{fill:none;stroke:#0f766e;stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.ocr-circle-label{display:grid;line-height:1.15;font-size:.75rem;color:var(--muted, #64748b)}.ocr-circle-label strong{color:var(--text, #0f172a);font-size:.9rem}.ocr-status-cell{display:inline-flex;align-items:center;gap:6px}.form-confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border-radius:10px;border:1px dashed #0f766e;background:#f0fdfa}.card-confirm-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;padding-top:4px}.card-confirm-footer .primary{min-width:88px}.doc-slot.dirty{box-shadow:inset 0 0 0 1px #0f766e33}.draft-banner{margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid #f59e0b;background:#fffbeb;color:#92400e;font-size:.9rem}.ocr-thumb-btn{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.ocr-thumb-busy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#0f172a8c;color:#fff;font-size:.85rem;font-weight:700}.ocr-crop-card.ocring{outline:2px solid #2563eb}.ocr-zoom-hint{position:absolute;right:8px;bottom:8px;font-size:.75rem;color:#fff;background:#0000008c;padding:2px 8px;border-radius:999px}.ocr-crop-card.handwriting{border-style:dashed}.ocr-edit-fields{display:grid;gap:6px}.ocr-edit-fields input{width:100%;font-size:.85rem}.ocr-lightbox{position:fixed;inset:0;z-index:80;background:#080c14b8;display:grid;place-items:center;padding:24px}.ocr-lightbox-inner{max-width:min(960px,96vw);max-height:92vh;background:var(--panel, #111827);border:1px solid var(--line);border-radius:14px;overflow:auto;display:grid;grid-template-rows:auto 1fr}.ocr-lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid color-mix(in srgb,#000 18%,transparent);background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff}.ocr-lightbox-bar strong{color:#fff;font-weight:700}.ocr-lightbox-inner header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;border-bottom:1px solid color-mix(in srgb,#000 18%,transparent)}.ocr-lightbox-inner header strong{color:#fff}.ocr-lightbox-inner img{display:block;max-width:100%;max-height:calc(92vh - 52px);margin:0 auto;object-fit:contain;background:#e9edf1}.avatar-capture-panel{margin-top:16px;padding:18px 18px 20px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:12px;background:linear-gradient(135deg,#f0fdfa,#fff 70%);display:grid;gap:14px;box-sizing:border-box}.avatar-capture-head h4{margin:0 0 6px}.avatar-capture-head .muted{margin:0;font-size:.84rem;line-height:1.45}.avatar-source-nav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff}.avatar-source-nav-btn{width:44px;height:40px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.15rem;font-weight:700;border-radius:10px}.avatar-source-nav-meta{display:grid;gap:2px;justify-items:center;text-align:center;min-width:0}.avatar-source-nav-meta strong{font-size:.92rem;color:#0f1c22}.avatar-source-nav-meta span{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.avatar-capture-layout{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:18px;align-items:start}.avatar-capture-picker-col{display:grid;gap:12px;min-width:0}@media(max-width:720px){.avatar-capture-layout{grid-template-columns:1fr}}.avatar-capture-body{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end}.avatar-capture-source,.avatar-capture-preview{display:grid;gap:10px;justify-items:center;align-content:start;width:100%;box-sizing:border-box}.avatar-capture-preview{padding:12px 12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.avatar-capture-preview-label{margin:0;font-size:.82rem;font-weight:650;color:var(--muted);text-align:center}.avatar-capture-source-tag{margin:0;font-size:.76rem;color:var(--muted);text-align:center;line-height:1.35}.avatar-capture-source img{width:140px;max-height:100px;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#0b1220}.avatar-capture-img{width:128px;height:128px;object-fit:cover;border-radius:999px;border:3px solid #14b8a6;background:#e2e8f0}.avatar-capture-skeleton{width:128px;height:128px;border-radius:999px;display:grid;place-items:center;background:#f1f5f9;color:#64748b;font-size:.82rem;border:2px dashed #cbd5e1}.avatar-capture-preview .manual-crop-status-badge{justify-self:center}.avatar-capture-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%;margin-top:4px}.avatar-capture-actions>button{width:100%;margin:0;min-height:40px;justify-content:center;box-sizing:border-box}.avatar-capture-actions>button.secondary{margin-right:0}.manual-crop-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.manual-crop-actions:has(>.manual-crop-back-btn){justify-content:space-between}.manual-crop-actions>button.secondary,.manual-crop-actions>.manual-crop-back-btn{margin-right:0}.circle-avatar-picker-shell{display:grid;gap:8px;width:100%}.circle-avatar-picker{position:relative;width:100%;min-height:420px;height:min(78vh,690px);max-height:690px;border-radius:var(--radius-md);overflow:hidden;background:var(--ink);border:1px solid var(--line-strong);touch-action:none}.circle-avatar-picker.is-zoomed{cursor:grab}.circle-avatar-picker.is-zoomed.is-panning{cursor:grabbing}.circle-avatar-picker:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.circle-avatar-picker.has-error{border-color:var(--err);background:var(--surface)}.circle-avatar-picker>img{max-width:none;object-fit:fill;display:block;-webkit-user-select:none;user-select:none;pointer-events:none}.circle-avatar-picker>img:not([style*=position]){width:100%;height:100%;min-height:420px;object-fit:contain}.circle-avatar-overlay{position:absolute;inset:0;width:100%;height:100%}.circle-avatar-zoom-bar{justify-content:flex-start}.circle-avatar-ring{fill:transparent;stroke:var(--accent-bright);stroke-width:2.5;cursor:move}.circle-avatar-center{fill:var(--accent-bright);stroke:#fff;stroke-width:1.5;pointer-events:none}.circle-avatar-handle{fill:#fff;stroke:var(--accent);stroke-width:2;cursor:ew-resize}@media(pointer:coarse){.circle-avatar-handle{stroke-width:3}}.circle-avatar-picker:focus-visible .circle-avatar-ring{stroke:var(--accent-2);stroke-dasharray:6 4}.circle-avatar-hint{position:absolute;left:10px;bottom:8px;right:10px;margin:0;padding:4px 10px;border-radius:999px;background:#0f172ac7;color:#e2e8f0;font-size:.74rem;line-height:1.5;pointer-events:none}.circle-avatar-error{position:absolute;inset:auto 12px 12px;margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--err-soft);border:1px solid var(--err);color:var(--err);font-size:.84rem;font-weight:600}.ocr-edit-label{display:grid;gap:2px;font-size:.78rem;color:var(--muted, #94a3b8)}.ocr-edit-label input{font-size:.9rem;color:inherit}.ocr-edit-label.ocr-field-missing>span{color:#b91c1c;font-weight:700}.ocr-field-miss-hint{margin-left:6px;padding:1px 6px;border-radius:999px;background:#fee2e2;color:#dc2626;font-size:.7rem;font-weight:800;letter-spacing:.02em;vertical-align:middle}.ocr-edit-label.ocr-field-missing input.ocr-field-missing-ctrl,.ocr-edit-label.ocr-field-missing .date-field-row.ocr-field-missing-ctrl,.ocr-edit-label.ocr-field-missing .sex-toggle.ocr-field-missing-ctrl{border:2px solid #ef4444;border-radius:8px;background:#fff7f7;box-shadow:0 0 0 1px #fecaca}.ocr-edit-label.ocr-field-missing .date-field-row.ocr-field-missing-ctrl{padding:4px 6px}.ocr-edit-label.ocr-field-missing .date-field-row.ocr-field-missing-ctrl input,.ocr-edit-label.ocr-field-missing .date-field-row.ocr-field-missing-ctrl select{border-color:#fca5a5}.doc-meta-fields{margin-top:8px}.contract-form h4{margin:12px 0 6px}.contract-form.compact .hint{font-size:.85rem}.contract-form.compact .contract-clause{padding:10px 12px;gap:6px}.contract-clause-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}.contract-clause{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.contract-clause>strong{font-size:.92rem}.contract-clause>span,.contract-clause .clause-sub{margin:0;font-size:.82rem;color:var(--muted);line-height:1.45}.contract-clause.muted-clause{background:var(--surface, #f3f6f8)}.clause-auto-hint{display:block;font-size:.82rem;color:var(--muted);line-height:1.45}.unit-field{display:grid;gap:6px;justify-items:start}.unit-field .field-label{font-size:.82rem;font-weight:600;color:var(--ink)}.unit-group{display:inline-flex;align-items:stretch;max-width:220px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.unit-group:focus-within{border-color:var(--accent-bright, #14b8a6);box-shadow:0 0 0 3px #14b8a624}.unit-group-num,.unit-group-unit{margin:0!important;border:none!important;border-radius:0!important;box-shadow:none!important;height:38px;background:transparent}.unit-group-num{width:5.25rem;min-width:5.25rem;padding:0 12px!important;text-align:center;font-variant-numeric:tabular-nums;font-weight:650}.unit-group-unit{width:auto;min-width:4.25rem;padding:0 10px!important;border-left:1px solid var(--line)!important;background:var(--surface, #f3f6f8)!important;font-weight:600}.clause-subblock{display:grid;gap:6px;padding-top:8px;border-top:1px dashed var(--line)}.clause-subblock:first-of-type{border-top:none;padding-top:0}.contract-choice{display:flex;flex-wrap:wrap;gap:8px}.contract-choice label{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#0f172a;font-weight:600;font-size:.86rem;cursor:pointer;width:auto}.contract-choice label.on{border-color:var(--accent, #0e3a44);background:#e4eef0;color:var(--accent, #0e3a44)}.contract-choice input[type=radio]{width:auto;margin:0;accent-color:var(--accent, #0e3a44)}.check-row{display:flex;align-items:center;gap:8px;margin:6px 0}.inline-pair{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}.contract-status{display:inline-block;font-size:.78rem;font-weight:600;padding:2px 8px;border-radius:999px;margin-right:6px}.contract-status.generated{background:#e8eef5;color:#334155}.contract-status.signing{background:#fef3c7;color:#92400e}.contract-status.signed{background:#dcfce7;color:#166534}.contract-edit-panel{padding:0;border-bottom:1px solid var(--line)}button.contract-edit-toggle,.contract-edit-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:0;border-radius:0;background:#f7fafb;color:var(--ink)!important;box-shadow:none;font:inherit;font-weight:600;font-size:.88rem;cursor:pointer;text-align:left}button.contract-edit-toggle:hover,.contract-edit-toggle:hover{filter:none;box-shadow:none;background:#eef5f7;color:var(--ink)!important}.contract-edit-summary{margin:0;padding:0 12px 10px;font-size:.82rem;line-height:1.4}.contract-edit-modal-body{display:grid;gap:12px;padding:4px 4px 8px;max-height:min(70vh,640px);overflow:auto}.contract-edit-modal{display:flex;flex-direction:column;max-height:min(94vh,920px)}.contract-edit-modal .contract-edit-modal-body{flex:1 1 auto;min-height:0;display:grid;gap:18px;padding:22px 24px 20px;max-height:none;overflow:auto;box-sizing:border-box;-webkit-overflow-scrolling:touch}.contract-edit-modal .contract-edit-modal-body>.hint{margin:0;line-height:1.5;padding:10px 12px;border-radius:10px;background:#f7fafb;border:1px solid var(--line)}.contract-edit-modal .contract-edit-modal-body>.ocr-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:start}.contract-edit-modal .contract-edit-modal-body>.ocr-fields>label{display:flex;flex-direction:column;gap:6px;font-size:.84rem;font-weight:600;color:#334155;min-width:0}.contract-edit-modal .contract-edit-modal-body>.ocr-fields>label:nth-child(3){grid-column:1 / -1}.contract-edit-modal .contract-form{display:grid;gap:12px}.contract-edit-modal .contract-form h4{margin:4px 0 0}.contract-edit-modal .contract-form>.hint{margin:0;line-height:1.45}.contract-edit-modal .contract-clause-list{margin:0;gap:12px}.contract-edit-modal .contract-form.compact .contract-clause,.contract-edit-modal .contract-clause{padding:14px 16px;gap:10px}.contract-edit-modal .ui-modal-actions{flex:0 0 auto;margin:0;padding:14px 24px 18px;border-top:1px solid var(--line, #e2e8f0);background:#fff}@media(max-width:640px){.contract-edit-modal .contract-edit-modal-body{padding:16px 16px 14px}.contract-edit-modal .contract-edit-modal-body>.ocr-fields{grid-template-columns:1fr}.contract-edit-modal .contract-edit-modal-body>.ocr-fields>label:nth-child(3){grid-column:auto}.contract-edit-modal .ui-modal-actions{padding:12px 16px 16px}}.contract-edit-panel .hint,.contract-edit-panel .status-log{margin-left:12px;margin-right:12px}.contract-edit-panel .status-log{margin-bottom:12px}.contract-gate{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:8px;margin-bottom:12px;font-size:.9rem;line-height:1.45}.contract-gate strong{font-size:.92rem}.contract-gate.warn{background:#fef3c7;color:#92400e}.contract-gate.blocking{background:#fee2e2;color:#991b1b}.contract-gate .link{align-self:flex-start;padding:0}.gate-flag{font-size:.82rem;font-weight:600;color:#b91c1c;margin-top:2px}.status-log{margin-top:12px;font-size:.88rem}.status-log ul{margin:6px 0 0;padding-left:1.1rem}.status-log li{margin-bottom:6px}.upload-btn{cursor:pointer;display:inline-flex;align-items:center}.manual-crop-workspace{margin-top:16px;display:grid;gap:14px}.manual-crop-batch-pipeline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;list-style:none;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);font-size:.84rem}.manual-crop-batch-pipeline li{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600}.manual-crop-batch-pipeline li.on{color:var(--accent);font-weight:800}.manual-crop-batch-pipeline li.done{color:var(--ok)}.manual-crop-batch-pipeline-num{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--line);color:var(--muted);font-size:.72rem;font-weight:800}.manual-crop-batch-pipeline li.on .manual-crop-batch-pipeline-num{background:var(--accent);color:#fff}.manual-crop-batch-pipeline li.done .manual-crop-batch-pipeline-num{background:var(--ok-soft);color:var(--ok)}.manual-crop-batch-pipeline-sep{width:18px;height:1px;background:var(--line-strong);margin:0 8px}.manual-crop-batch-actions{flex-wrap:wrap;align-items:center}.manual-crop-batch-actions .primary{flex:1 1 220px}.manual-crop-batch-preview{display:grid;gap:14px}.manual-crop-batch-preview-hint{margin:0;padding:10px 12px;border-radius:10px;background:#fffbeb;border:1px solid #fcd34d}.manual-crop-batch-preview-group{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.manual-crop-batch-preview-group-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.manual-crop-batch-preview-group-head h5{margin:0;font-size:.92rem}.manual-crop-results-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px 12px;border-top:1px solid #ccfbf1}.intake-manual-note{margin-top:10px}.manual-crop-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.manual-crop-gallery-card{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.manual-crop-gallery-card.needs-confirm{border-color:color-mix(in srgb,var(--warn, #b45309) 55%,var(--line))}.manual-crop-gallery-card.is-confirmed{border-color:color-mix(in srgb,var(--ok, #15803d) 45%,var(--line))}.manual-crop-gallery-close{position:absolute;top:8px;right:8px;z-index:4;width:28px;height:28px;border:0;border-radius:999px;background:#0f172ab8;color:#fff;font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}.manual-crop-gallery-close:hover:not(:disabled){background:#0f172aeb}.manual-crop-gallery-close:disabled{opacity:.45;cursor:not-allowed}.manual-crop-gallery-actions{flex-wrap:wrap;gap:8px;display:flex}.manual-crop-gallery-actions-row{display:flex;flex-wrap:nowrap;align-items:stretch;width:100%;gap:6px}.manual-crop-gallery-actions .manual-crop-auto-btn,.manual-crop-gallery-actions .manual-crop-frame-btn{flex:1 1 110px}.manual-crop-gallery-actions-row .manual-crop-auto-btn,.manual-crop-gallery-actions-row .manual-crop-frame-btn,.manual-crop-gallery-actions-row .manual-crop-skip-btn{flex:1 1 0;min-width:0;width:0;padding:8px 6px;gap:4px;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manual-crop-gallery-actions .manual-crop-skip-btn{flex:0 1 72px}.manual-crop-gallery-actions-row .manual-crop-skip-btn{flex:1 1 0;min-width:0}.manual-crop-gallery-actions .secondary,.manual-crop-gallery-actions .primary-lite{flex:1 1 110px}.manual-crop-gallery-card.ok{border-color:#86efac}.manual-crop-gallery-thumb{position:relative;display:block;width:100%;padding:0;border:0;background:#0b1220;cursor:zoom-in;min-height:140px}.manual-crop-thumb-wrap{position:relative}.manual-crop-thumb-bar{position:absolute;left:8px;right:8px;bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:2;pointer-events:none}.manual-crop-thumb-bar .ocr-zoom-hint{position:static;pointer-events:none}.manual-crop-rotate-btns{display:flex;gap:6px;pointer-events:auto}.manual-crop-rotate-btns button{width:36px;height:32px;padding:0;border:0;border-radius:8px;background:#0000009e;color:#fff;font-size:1.2rem;line-height:1;cursor:pointer}.manual-crop-rotate-btns button:hover:not(:disabled){background:#0e3a44f0}.manual-crop-rotate-btns button:disabled{opacity:.45;cursor:not-allowed}.manual-crop-rotate-btns.on-light button{background:#0e3a44;color:#fff}.manual-crop-rotate-btns.on-light button:hover:not(:disabled){background:#14606e}.manual-crop-gallery-thumb img{width:100%;max-height:200px;object-fit:contain;display:block}.manual-crop-gallery-meta{padding:10px 12px;display:grid;gap:6px}.manual-crop-gallery-meta strong{font-size:.88rem;word-break:break-all}.manual-crop-frame-type-label{display:block;min-width:0}.manual-crop-frame-type-select{width:100%;max-width:100%;box-sizing:border-box;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:.84rem;font-weight:700;color:#0f172a;cursor:pointer}.manual-crop-frame-type-select:disabled{opacity:.65;cursor:not-allowed}.manual-crop-frame-type-select:focus{outline:2px solid var(--accent-bright);outline-offset:1px;border-color:var(--accent)}.manual-doc-buttons{display:flex;flex-wrap:wrap;gap:10px;row-gap:10px;align-items:flex-start}.manual-doc-buttons button.manual-doc-btn,.manual-doc-buttons button.danger-lite{box-shadow:none;filter:none;flex:0 0 auto}.manual-crop-block-hint{margin:14px 0 0;max-width:none}.manual-crop-workspace~.hint{margin-top:16px}.manual-crop-next-step+.manual-crop-actions{margin-top:18px}.manual-crop-next-step{display:grid;gap:4px;margin:18px 0 0;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}.manual-crop-next-step-kicker{font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--accent)}.manual-crop-next-step p{margin:0;color:var(--ink-soft);font-size:.9rem;line-height:1.55}.manual-crop-meta-chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.manual-crop-meta-chips li{padding:4px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink-soft);font-size:.78rem;font-weight:650;line-height:1.35}.manual-crop-auto-status{display:grid;gap:10px}.manual-crop-auto-status-lead{display:grid;gap:2px;margin:0}.manual-crop-auto-status-lead strong{color:var(--ink);font-size:.95rem}.manual-crop-auto-status-lead span{color:var(--ink-soft);font-size:.86rem}.manual-crop-sheet-groups{display:grid;gap:14px}.manual-crop-sheet-group{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.manual-crop-sheet-group-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}.manual-crop-sheet-group-head strong{display:block;font-size:.92rem;overflow-wrap:anywhere}.manual-crop-sheet-group-head p{margin:2px 0 0;color:var(--muted);font-size:.82rem}.manual-crop-gallery-head{display:grid;gap:12px;margin-bottom:14px}.manual-crop-gallery-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.manual-crop-gallery-title-row h4{margin:0}.manual-crop-gallery-sub{font-size:.82rem}.manual-crop-gallery-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.manual-crop-gallery-toolbar-left,.manual-crop-gallery-toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.manual-crop-gallery-toolbar-right{margin-left:auto}.manual-crop-gallery-sections{display:grid;gap:18px}.manual-crop-gallery-section{display:grid;gap:10px}.manual-crop-gallery-section-head{display:flex;align-items:baseline;gap:8px}.manual-crop-gallery-section-head h5{margin:0;font-size:.92rem;font-weight:700;color:var(--ink)}.manual-crop-gallery-section-empty{margin:0;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface);font-size:.86rem}.manual-crop-select-all{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none}.manual-crop-select-all input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.manual-crop-auto-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border:0;border-radius:var(--radius-sm);font-size:.88rem;font-weight:700;color:#fff;background:var(--accent);box-shadow:var(--shadow-xs);cursor:pointer;transition:background .12s ease,opacity .12s ease}.manual-crop-auto-btn:hover:not(:disabled){background:var(--accent-2)}.manual-crop-auto-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.manual-crop-auto-btn-batch{padding:9px 16px}.manual-crop-auto-btn-toolbar{font-size:.84rem;padding:7px 12px}.manual-crop-auto-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgb(255 255 255 / 35%);border-top-color:#fff;border-radius:50%;animation:ocr-spin .7s linear infinite;flex-shrink:0}.manual-crop-frame-btn{display:inline-flex;align-items:center;justify-content:center;flex:1 1 110px;padding:8px 12px;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;color:var(--accent);background:#fff;cursor:pointer}.manual-crop-frame-btn:hover:not(:disabled){background:var(--accent-soft)}.manual-crop-frame-btn:disabled{opacity:.5;cursor:not-allowed}.manual-crop-skip-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 1 auto;min-width:4.5rem;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;color:var(--muted);background:#fff;cursor:pointer}.manual-crop-skip-btn:hover:not(:disabled){border-color:var(--muted);color:var(--ink);background:var(--surface)}.manual-crop-skip-btn:disabled{opacity:.5;cursor:not-allowed}.manual-crop-gallery-card.is-skipped{opacity:.88;border-style:dashed}.manual-crop-auto-hint{margin:0;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--accent-soft);color:var(--accent)!important;font-size:.86rem;line-height:1.5}.manual-crop-batch-progress{margin:0}.manual-crop-results-panel{border:1px solid #99f6e4;border-radius:14px;background:linear-gradient(180deg,#f0fdfa,#fff);overflow:hidden}.manual-crop-results-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 16px;padding:14px 16px 10px;border-bottom:1px solid #ccfbf1}.manual-crop-results-head h5{margin:0;font-size:1rem;color:#115e59}.manual-crop-results-sub{margin:4px 0 0;font-size:.82rem}.manual-crop-results-tip{font-size:.8rem;color:#64748b;max-width:320px;line-height:1.45}.manual-crop-results-list{list-style:none;margin:0;padding:8px;display:grid;gap:8px}.manual-crop-results-row{display:grid;grid-template-columns:auto 80px 1fr;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.manual-crop-results-thumb-edit{position:relative;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.manual-crop-results-thumb-edit:hover:not(:disabled){box-shadow:0 0 0 2px var(--accent-bright);transform:scale(1.02)}.manual-crop-results-thumb-badge{position:absolute;right:4px;bottom:4px;padding:2px 6px;border-radius:6px;background:#0f766eeb;color:#fff;font-size:.65rem;font-weight:700;pointer-events:none}.manual-crop-frame-popup{position:fixed;inset:0;z-index:90;background:#080c14c7;display:grid;place-items:stretch;padding:8px}.manual-crop-frame-popup-inner{width:min(1400px,98vw);height:min(96vh,100%);max-height:96vh;overflow:hidden;display:flex;flex-direction:column;gap:0;background:#fff;border-radius:14px;border:none;box-shadow:0 24px 48px #0f172a38;margin:auto}.manual-crop-frame-popup-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0;padding:12px 16px;border-bottom:1px solid color-mix(in srgb,#000 18%,transparent);border-radius:14px 14px 0 0;flex:0 0 auto}.manual-crop-frame-popup-titleblock{display:grid;gap:4px;min-width:0}.manual-crop-frame-popup-titleblock strong{font-size:1rem;color:#0f172a;word-break:break-all}.manual-crop-frame-popup-sub{display:block;font-size:.8rem;margin-top:4px}.manual-crop-frame-count{display:inline-flex;align-items:center;width:fit-content;padding:2px 8px;border-radius:999px;background:#ecfeff;color:#0e7490;font-size:.75rem;font-weight:700}.manual-crop-frame-popup-head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.manual-crop-frame-popup-done{min-width:72px;height:34px;padding:0 14px;border:0;border-radius:8px;background:#0e3a44;color:#fff;font-weight:700;cursor:pointer}.manual-crop-frame-popup-done:hover:not(:disabled){background:#14606e}.manual-crop-frame-popup-tools{padding:0 16px}.manual-crop-tools-row{display:grid;gap:6px;padding:12px 16px 0;flex:0 0 auto}.manual-crop-tools-tips{margin:0;font-size:.74rem;color:#64748b;letter-spacing:.01em}.manual-crop-frame-popup-tools-wrap{padding-bottom:4px}.manual-crop-frame-popup .manual-crop-popup-layout{flex:1 1 auto;min-height:0;height:auto;padding:12px 16px 0;align-items:stretch;box-sizing:border-box}.manual-crop-frame-popup .manual-crop-editor{min-height:0;height:100%}.manual-crop-frame-popup .manual-crop-stage{flex:1 1 auto;min-height:min(62vh,720px);height:100%;margin:0;border-radius:12px}.manual-crop-frame-popup .manual-crop-del-hint,.manual-crop-frame-popup .manual-crop-coords-hint{padding:0 16px;flex:0 0 auto}.manual-crop-popup-layout{padding:0 8px}.manual-crop-popup-sheet-list{max-height:none;height:100%;overflow:auto}.manual-crop-frame-popup-foot{display:flex;justify-content:flex-end;padding:10px 16px 12px;border-top:1px solid var(--line);margin-top:0;flex:0 0 auto}.manual-crop-frame-popup-foot.ui-modal-actions{margin:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}.manual-crop-results-edit{white-space:nowrap}.manual-crop-unframed-note,.manual-crop-frame-summary{margin:0;font-size:.84rem}.manual-crop-del-hint{margin:0;font-size:.8rem}.manual-crop-ctx-menu{position:fixed;z-index:90;min-width:180px;max-height:min(70vh,420px);overflow:auto;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 10px 28px #0f172a2e;display:grid;gap:2px}.manual-crop-ctx-menu-title{padding:6px 10px 4px;font-size:.72rem;font-weight:700;color:#64748b;letter-spacing:.02em}.manual-crop-ctx-menu button{border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;font-size:.86rem;font-weight:600;color:#0f172a;cursor:pointer}.manual-crop-ctx-menu button:hover{background:var(--surface);color:var(--accent)}.manual-crop-ctx-menu button.on{background:var(--accent-soft);color:var(--accent)}.manual-crop-ctx-menu button.manual-crop-ctx-lock{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 8px 8px;color:#92400e}.manual-crop-pipeline-step-btn{border:0;background:transparent;padding:0;font:inherit;color:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.manual-crop-batch-pipeline li.backable{cursor:pointer}.manual-crop-results-index{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#ccfbf1;color:#0f766e;font-size:.78rem;font-weight:800}.manual-crop-results-thumb{width:72px;height:54px;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#0b1220;cursor:zoom-in}.manual-crop-results-thumb img{width:100%;height:100%;object-fit:cover;display:block}.manual-crop-results-body{display:grid;gap:6px;min-width:0}.manual-crop-results-body strong{font-size:.88rem;word-break:break-all}.manual-crop-results-chips{display:flex;flex-wrap:wrap;gap:6px}.manual-crop-results-chip{display:inline-flex;padding:2px 8px;border-radius:999px;background:#ecfeff;border:1px solid #a5f3fc;color:#0e7490;font-size:.74rem;font-weight:700}.manual-crop-results-frame-thumbs{display:flex;flex-wrap:wrap;gap:8px}.manual-crop-results-frame-thumb{width:58px;height:42px;padding:0;border-radius:10px;border:1px solid var(--line);background:#0b1220;overflow:hidden;cursor:pointer}.manual-crop-results-frame-thumb img{width:100%;height:100%;object-fit:contain;display:block;background:#0b1220}.manual-crop-results-frame-thumb:disabled{opacity:.65;cursor:not-allowed}.manual-crop-results-frame-thumb-skeleton{display:block;width:100%;height:100%;background:linear-gradient(90deg,#0b1220,#14213d,#0b1220);background-size:200% 100%;animation:manual-crop-thumb-skeleton 1.2s ease-in-out infinite}@keyframes manual-crop-thumb-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.manual-crop-results-meta{font-size:.78rem}.manual-crop-results-actions{display:flex;flex-direction:column;gap:6px;min-width:108px}.manual-crop-auto-btn-sm{padding:7px 10px;font-size:.8rem}.manual-crop-results-actions .manual-crop-frame-btn{flex:none;padding:7px 10px;font-size:.8rem}.manual-crop-results-errors{margin:0 12px 12px;padding:10px 12px;border-radius:10px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;font-size:.84rem}.manual-crop-results-errors ul{margin:6px 0 0;padding-left:18px}.manual-crop-gallery-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.manual-crop-gallery-card.framing{border-color:var(--accent-bright)}.manual-crop-select-check{position:absolute;top:8px;left:8px;z-index:5;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#ffffffeb;box-shadow:0 2px 8px #0f172a1f;cursor:pointer}.manual-crop-select-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.manual-crop-status-badge{display:inline-flex;align-items:center;width:fit-content;padding:3px 9px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:.01em}.manual-crop-status-badge.tone-idle{background:var(--surface);color:var(--muted)}.manual-crop-status-badge.tone-draft{background:var(--warn-soft);color:var(--warn)}.manual-crop-status-badge.tone-ok{background:var(--ok-soft);color:var(--ok)}.manual-crop-status-badge.tone-busy{background:var(--accent-soft);color:var(--accent);animation:manual-crop-pulse 1.2s ease-in-out infinite}.manual-crop-status-badge.tone-skip{background:#eef1f4;color:#64748b}@keyframes manual-crop-pulse{0%,to{opacity:1}50%{opacity:.72}}.manual-crop-card-overlay{position:absolute;inset:0;z-index:3;display:grid;place-content:center;gap:10px;background:#0f172a94;color:#fff;font-size:.88rem;font-weight:700;pointer-events:none}.manual-crop-card-overlay .manual-crop-auto-spinner{justify-self:center;width:28px;height:28px;border-width:3px}.manual-crop-auto-draft{margin:8px 0 0;padding:8px 12px;border-radius:8px;background:#fffbeb;border:1px solid #fcd34d;color:#92400e!important}.manual-doc-other-wrap{position:relative}.manual-doc-other-btn{border-style:dashed}.manual-doc-other-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:min(360px,84vw);max-height:280px;overflow:auto;display:grid;gap:4px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px #0f283224}.manual-doc-other-item{display:grid;gap:2px;text-align:left;background:#fff;color:#0f172a;border:1px solid transparent;border-radius:8px;padding:8px 10px;cursor:pointer}.manual-doc-other-item strong{font-size:.86rem}.manual-doc-other-item span{font-size:.72rem;color:var(--muted);font-weight:400}.manual-doc-other-item:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.manual-doc-other-item.on,.manual-doc-other-item.has{border-color:#86efac;background:#ecfdf5}.manual-doc-other-item.on{border-color:var(--accent, #0e3a44);background:#e4eef0}.manual-doc-btn{border:1px solid #94a3b8;background:#fff;color:#0f172a;border-radius:10px;padding:8px 12px;font-size:.82rem;font-weight:600;cursor:pointer;line-height:1.35;text-align:left;max-width:100%;white-space:nowrap;min-height:36px;box-shadow:none}.manual-doc-btn:hover:not(:disabled){background:#e2e8f0;color:#0f172a}.manual-doc-btn.on{border-style:solid;border-color:var(--accent, #0e3a44);background:#0e3a44;color:#fff;font-weight:700}.manual-doc-btn.on:hover:not(:disabled){background:#14606e;color:#fff}.manual-doc-btn.has:not(.on){border-color:#15803d;background:#ecfdf5;color:#14532d}.manual-doc-btn.handwriting{border-color:var(--violet);border-style:solid;color:var(--violet);background:var(--violet-soft)}.manual-doc-btn.handwriting:hover:not(:disabled){background:var(--violet-soft);color:var(--violet)}.manual-doc-btn.handwriting.on{border-style:solid;border-color:var(--violet);background:var(--violet);color:#fff}.manual-doc-btn.handwriting.on:hover:not(:disabled){background:var(--violet);color:#fff}.manual-doc-btn.handwriting.has:not(.on){border-color:var(--violet);background:var(--violet-soft);color:var(--violet)}.manual-crop-layout{display:grid;grid-template-columns:120px 1fr;gap:10px;min-height:420px}.manual-crop-editor{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}.manual-crop-sheet-list{display:grid;gap:8px;align-content:start;max-height:520px;overflow:auto}.manual-crop-sheet-tab{display:grid;gap:4px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#0f172a;cursor:pointer;text-align:left}.manual-crop-sheet-tab:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.manual-crop-sheet-tab.on{border-color:var(--brand, #0b3d4a);box-shadow:0 0 0 1px var(--brand, #0b3d4a)}.manual-crop-sheet-tab img{width:100%;height:56px;object-fit:cover;border-radius:4px}.manual-crop-sheet-tab span{font-size:.72rem;word-break:break-all;color:var(--muted)}.manual-crop-stage{position:relative;width:100%;flex:1 1 auto;min-height:420px;background:#111827;border-radius:12px;overflow:hidden;touch-action:none}.manual-crop-stage.is-zoomed{cursor:grab}.manual-crop-stage.is-zoomed.manual-crop-dragging,body.manual-crop-dragging .manual-crop-stage.is-zoomed{cursor:grabbing}.manual-crop-img{max-width:none;object-fit:fill;display:block;-webkit-user-select:none;user-select:none;pointer-events:none}.manual-crop-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.manual-crop-zoom-bar{position:static;transform:none;z-index:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:10px;background:#0f172a;border:1px solid #334155;box-shadow:none;color:#f8fafc;-webkit-backdrop-filter:none;backdrop-filter:none;flex:0 0 auto}.manual-crop-zoom-btn{width:28px;height:28px;padding:0;border:0;border-radius:999px;background:#ffffff1f;color:#fff;font-size:1.15rem;line-height:1;cursor:pointer}.manual-crop-zoom-btn:hover:not(:disabled){background:#ffffff38}.manual-crop-zoom-btn:disabled{opacity:.35;cursor:not-allowed}.manual-crop-zoom-slider{width:min(160px,32vw);accent-color:#38bdf8;cursor:pointer}.manual-crop-zoom-pct{min-width:3.2em;font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.manual-crop-zoom-fit{height:28px;padding:0 10px;border:0;border-radius:999px;background:#0e3a44;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;white-space:nowrap}.manual-crop-zoom-fit:hover:not(:disabled){background:#14606e}.manual-crop-zoom-fit:disabled{opacity:.4;cursor:not-allowed}.manual-crop-zoom-gesture{font-size:.72rem;color:#94a3b8!important;white-space:nowrap}@media(max-width:720px){.manual-crop-zoom-gesture{width:100%;text-align:center}}.manual-crop-overlay .manual-crop-poly,.manual-crop-overlay .manual-crop-handle{pointer-events:all;cursor:move}.manual-crop-poly{fill:#0ea5e914;stroke:#38bdf8;stroke-width:2;stroke-dasharray:8 6}.manual-crop-overlay g.active .manual-crop-poly{stroke:#fbbf24;fill:#fbbf241f}.manual-crop-handle{fill:#fff;stroke:#38bdf8;stroke-width:2;cursor:nwse-resize;touch-action:none}.manual-crop-handle-edge{fill:#e0f2fe;stroke:#0ea5e9;stroke-width:1.75}@media(pointer:coarse){.manual-crop-handle{stroke-width:2.5}}.manual-crop-overlay g.active .manual-crop-handle{stroke:#fbbf24}.manual-crop-overlay g.active .manual-crop-handle-edge{fill:#fef3c7;stroke:#f59e0b}.manual-crop-overlay g.locked .manual-crop-poly{stroke:#94a3b8;fill:#94a3b81a;stroke-dasharray:4 4}.manual-crop-overlay g.locked .manual-crop-label{fill:#cbd5e1}.manual-crop-lock-hit{fill:transparent;cursor:move;pointer-events:all}.manual-crop-lock-hit.is-locked{cursor:pointer}.manual-crop-lock-caption{fill:#94a3b8;font-size:11px;font-weight:600;paint-order:stroke;stroke:#0f172abf;stroke-width:3px}.manual-crop-label{fill:#fff;font-size:12px;font-weight:600;pointer-events:none;paint-order:stroke;stroke:#000000a6;stroke-width:3px}.manual-crop-empty-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#94a3b8;text-align:center;pointer-events:none}.manual-crop-frame-panel{display:flex;flex-direction:column;gap:8px;min-height:min(88vh,960px)}.manual-crop-frame-panel .manual-crop-toolbar{margin-bottom:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.manual-crop-frame-panel .manual-crop-tools-row{padding:0}.manual-crop-frame-layout{flex:1 1 auto;min-height:min(72vh,820px);align-items:stretch}.manual-crop-frame-panel .manual-crop-sheet-list{max-height:none;height:100%}.manual-crop-frame-panel .manual-crop-editor{min-height:0;height:100%}.manual-crop-frame-panel .manual-crop-stage{min-height:min(68vh,780px);height:100%}.manual-crop-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap;row-gap:10px}.manual-crop-toolbar .ghost,.manual-crop-toolbar .secondary{box-shadow:none;filter:none;flex:0 0 auto}.manual-crop-toolbar .muted{flex:1 1 120px;min-width:0;word-break:break-all}.manual-crop-toolbar .manual-crop-rotate-btns{margin-left:auto;flex:0 0 auto}.manual-crop-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.manual-crop-preview-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.manual-crop-preview-card h5{margin:0 0 8px;font-size:.9rem}.manual-crop-preview-card img{width:100%;max-height:220px;object-fit:contain;background:#e9edf1;border-radius:8px;display:block}.manual-crop-preview-card .manual-crop-gallery-thumb{background:#e9edf1;min-height:120px}.manual-crop-no-preview{margin:0;display:grid;place-items:center;min-height:120px;border:1px dashed var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);font-size:.85rem}.manual-crop-hint{margin:0 0 8px}.manual-crop-coords-hint{margin:-4px 0 8px;font-size:.78rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);letter-spacing:-.01em}body.manual-crop-dragging{overflow:hidden;touch-action:none}.manual-crop-pdf{display:grid;place-items:center;min-height:140px;color:#94a3b8;font-weight:600}.danger-lite{border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;border-radius:999px;padding:8px 14px;font-size:.85rem;cursor:pointer;box-shadow:none;filter:none;white-space:nowrap}.danger-lite:hover:not(:disabled){background:#fee2e2;color:#991b1b}button.ghost{background:#0e3a44;color:#fff}button.ghost:hover:not(:disabled){background:#14606e;color:#fff}@media(max-width:720px){.manual-crop-layout{grid-template-columns:1fr}.manual-crop-sheet-list{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:none}.manual-crop-results-row{grid-template-columns:auto 72px 1fr}}@media(max-width:560px){.manual-crop-batch-pipeline{font-size:.76rem;padding:10px;gap:4px 2px}.manual-crop-batch-pipeline-sep{width:8px;margin:0 3px}.manual-crop-batch-pipeline-num{width:18px;height:18px}.manual-crop-gallery-grid{grid-template-columns:1fr}.manual-crop-actions{flex-direction:column-reverse;align-items:stretch;gap:10px;position:sticky;bottom:0;z-index:3;background:#fff}.manual-crop-actions>button{width:100%;white-space:normal;line-height:1.3;min-height:44px;padding:10px 12px}.manual-crop-sheet-group-head .primary{width:100%}.manual-crop-back-btn{font-size:.9rem}}.contract-templates-page{display:grid;gap:14px;min-width:0}.contract-templates-page>.toolbar{margin-bottom:0}.contract-templates-lead{margin:0;max-width:68ch;line-height:1.5}.contract-templates-toast{margin:0;padding:8px 12px;border-radius:8px;background:#e8f6f0;color:#0f5c45;width:fit-content}.contract-templates-page .settings-tabs{margin:2px 0;gap:8px}.contract-templates-page .data-tab{min-height:2.25rem;padding:8px 16px}.contract-templates-layout{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:16px;align-items:start}.contract-templates-list{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;display:grid;gap:12px}.contract-templates-list h4{margin:0;font-size:.92rem}.contract-template-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}.contract-template-item{width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);cursor:pointer;display:grid;gap:4px;color:var(--ink)!important;box-shadow:none;font:inherit}.contract-template-item:hover{filter:none;box-shadow:none;border-color:#14606e47;background:#f7fafb}.contract-template-item .muted{color:var(--ink-soft);font-size:.82rem}.contract-template-item.on{border-color:var(--accent-2);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #14606e1f}.contract-template-item.on strong{color:var(--accent)}.contract-template-item.on .muted{color:var(--ink-soft)}.badge-lite{display:inline-block;width:fit-content;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:999px;background:var(--accent-2);color:#fff}.contract-template-clone .secondary{border-color:var(--accent-2);color:var(--accent);font-weight:600;width:100%;justify-content:center}.contract-template-clone{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:12px}.contract-template-clone h5{margin:0;font-size:.88rem}.contract-template-clone label{display:grid;gap:5px;font-size:.82rem;font-weight:600;color:var(--ink-soft)}.contract-templates-editor{min-width:0;gap:16px}.contract-template-editor-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0}.contract-signers-panel{display:grid;gap:16px;max-width:56rem}.contract-signers-table-wrap{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.contract-signers-table{width:100%;table-layout:fixed;margin:0}.contract-signers-table th,.contract-signers-table td{padding:10px 12px;vertical-align:middle}.contract-signers-table th:nth-child(1){width:18%}.contract-signers-table th:nth-child(2){width:20%}.contract-signers-table th:nth-child(3){width:5.5rem}.contract-signers-table th:nth-child(4){width:auto}.contract-signers-table th:nth-child(5){width:9.75rem}.contract-signers-table td.cell-center{text-align:center}.contract-signers-table td.cell-actions{white-space:nowrap;text-align:right;width:1%}.contract-signers-actions{display:inline-flex;gap:6px;justify-content:flex-end;align-items:center}.contract-signer-modal-body{display:grid;gap:12px;padding:4px 0 8px}.contract-signer-modal-body label{display:grid;gap:6px;font-size:.86rem;font-weight:600;color:var(--ink-soft)}.contract-signer-modal-body input{font-weight:500;color:var(--ink)}.leave-att-links{display:flex;flex-direction:column;gap:4px}.leave-drawer{width:min(480px,100%)}.leave-drawer-form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.leave-form-fields{display:grid;grid-template-columns:1fr;gap:14px}.leave-form-fields .person-combo{width:100%;max-width:none}.leave-form-fields label:not(.check-row){display:grid;gap:8px;font-size:.9rem}.leave-form-fields .check-row{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0}.leave-form-check{margin:0}.leave-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.leave-form-files{margin:0;padding-left:1.1rem}.leave-note-field{max-width:480px}.dash-page{gap:22px}.dash-layout-reset{cursor:pointer;font:inherit}.dash-layout-reset:hover{filter:brightness(.97)}.dash-block{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:8px;align-items:start;border-radius:var(--radius-lg);transition:outline-color .15s,opacity .15s;outline:2px solid transparent;outline-offset:3px}.dash-block.is-dragging{opacity:.45}.dash-block.is-over{outline-color:var(--accent-bright, #14b8a6)}.dash-drag-handle{position:sticky;top:12px;z-index:6;display:inline-grid;place-items:center;width:26px;height:26px;margin-top:10px;padding:0;border:1px solid rgb(226 232 240 / 90%);border-radius:8px;background:#fffffff5;color:#94a3b8;cursor:grab;box-shadow:0 1px 2px #0f172a0f;line-height:0;opacity:.78;transition:opacity .15s,color .15s,border-color .15s,background .15s;justify-self:center}.dash-block:hover .dash-drag-handle,.dash-block.is-dragging .dash-drag-handle,.dash-block.is-over .dash-drag-handle{opacity:1}.dash-drag-handle:active{cursor:grabbing}.dash-drag-handle:hover:not(:disabled){color:#64748b;border-color:#cbd5e1;background:#fff;filter:none;transform:none}.dash-block-body{min-width:0}.dash-block[data-dash-block=hero] .dash-drag-handle{margin-top:22px;background:#ffffff2e;border-color:#ffffff47;color:#fffc}.dash-block[data-dash-block=hero] .dash-drag-handle:hover:not(:disabled){background:#ffffff47;color:#fff;border-color:#fff6}.dash-block[data-dash-block=map] .dash-drag-handle{margin-top:22px}.dash-page .site-map-panel-hero{margin-left:0;margin-right:0;width:100%;max-width:100%;box-sizing:border-box}@media(min-width:1280px){main:has(.dash-page){padding-left:20px;padding-right:20px}.dash-page .site-map-panel-hero{margin-left:0;margin-right:0;width:100%}}.dash-hero{display:block;padding:0;border-radius:var(--radius-xl);background:radial-gradient(ellipse 80% 120% at 100% 0%,rgb(56 189 248 / 22%),transparent 55%),radial-gradient(ellipse 70% 100% at 0% 100%,rgb(20 184 166 / 18%),transparent 50%),linear-gradient(135deg,#0b2f36,#0e4a54 42%,#14606e 78%,#1a7a88);color:#fff;box-shadow:var(--shadow-md);overflow:visible;position:relative}.dash-hero:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgb(255 255 255 / 6%) 0%,transparent 42%),repeating-linear-gradient(-18deg,transparent,transparent 18px,rgb(255 255 255 / 1.5%) 18px,rgb(255 255 255 / 1.5%) 19px);pointer-events:none;overflow:hidden}.dash-hero:after{content:"";position:absolute;inset:auto -8% -45% auto;width:280px;height:280px;border-radius:50%;background:#ffffff12;pointer-events:none}.dash-hero-stack{position:relative;z-index:1;display:grid;gap:10px;padding:14px 16px 16px;min-width:0}.dash-hero-weather-row{position:relative;display:grid;gap:0;min-width:0}.dash-hero-weather-card{display:grid;gap:8px;width:100%;min-width:0;padding:0;border:0;border-radius:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.dash-weather-main{display:grid;gap:14px;min-width:0}.dash-weather-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;min-width:0}.dash-weather-left{display:grid;gap:6px;align-content:start;justify-items:start;min-width:0;max-width:28rem;flex:1 1 auto}.dash-weather-forecast-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 10px;min-width:0;margin-left:auto}.dash-forecast-toggle{display:inline-flex;align-items:center;gap:2px;width:fit-content;padding:2px;border-radius:999px;background:#ffffff1a;border:1px solid rgb(255 255 255 / 14%)}.dash-forecast-tab{appearance:none;margin:0;padding:4px 10px;border:0;border-radius:999px;background:transparent;color:#ffffffad;font-size:.72rem;font-weight:700;letter-spacing:.02em;cursor:pointer;line-height:1.2}.dash-forecast-tab:hover{color:#fff}.dash-forecast-tab.is-active{background:#ffffff2e;color:#fff}.dash-hero-timeband{display:grid;place-items:center;width:100%;min-width:0;padding:23px 0 18px;margin-top:2px;border-top:1px solid rgb(255 255 255 / 16%);text-align:center}.dash-hero-time{display:grid;gap:10px;justify-items:center;justify-self:center;width:max-content;max-width:100%;text-align:center;margin:0 auto;padding:10px 0 13px}.dash-context-date{margin:0;font-size:clamp(1.35rem,2.2vw,1.7rem);letter-spacing:.06em;color:#ffffffe0;font-weight:700;line-height:1.25;text-align:center}.dash-context-clock{margin:0 auto;display:inline-flex;align-items:baseline;justify-content:center;gap:.06em;font-size:clamp(4.8rem,12.5vw,8.4rem);font-weight:780;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:.92;color:#fff;text-align:center;text-shadow:0 1px 0 rgb(0 0 0 / 22%),0 12px 36px rgb(15 23 42 / 28%);font-feature-settings:"tnum" 1}.dash-clock-seg{display:inline-block;min-width:1.85ch;text-align:center;font-weight:inherit;font-size:inherit;opacity:1;color:inherit}.dash-clock-colon{display:inline-block;opacity:.55;font-weight:inherit;font-size:inherit;animation:dash-clock-blink 1s steps(1,end) infinite}@keyframes dash-clock-blink{0%,49%{opacity:.65}50%,to{opacity:.25}}@media(prefers-reduced-motion:reduce){.dash-clock-colon{animation:none;opacity:.5}}.dash-hero-bottom-row{display:grid;grid-template-columns:minmax(12rem,.9fr) minmax(0,1.55fr) auto;gap:14px 18px;align-items:center;min-width:0;margin-top:2px;padding:12px 2px 2px;border-top:1px solid rgb(255 255 255 / 14%)}@media(max-width:980px){.dash-hero-bottom-row{grid-template-columns:1fr;gap:12px}.dash-hero-badges{justify-content:flex-start}}.dash-hero-copy{min-width:0;display:grid;gap:6px}.dash-greeting{margin:0;font-size:clamp(1.18rem,1.9vw,1.42rem);font-weight:750;letter-spacing:-.03em;line-height:1.2}.dash-lead{margin:0;font-size:.8rem;line-height:1.5;color:#ffffffb8;max-width:28rem}.dash-hero-snapshots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;min-width:0;padding:6px;border-radius:14px;background:#00000029;border:1px solid rgb(255 255 255 / 10%);box-shadow:inset 0 1px #ffffff0f}@media(max-width:520px){.dash-hero-snapshots{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-hero-snap{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#fff!important;cursor:pointer;text-align:left;box-shadow:none;position:relative;transition:background .12s ease,transform .12s ease}.dash-hero-snap+.dash-hero-snap:before{content:none}.dash-hero-snap:hover:not(:disabled){background:#ffffff1a;border:0;opacity:1;transform:none;filter:none;color:#fff!important}.dash-hero-snap-copy{display:grid;gap:2px;min-width:0}.dash-hero-snap-val{font-size:1.22rem;font-weight:780;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}.dash-hero-snap-label{font-size:.7rem;font-weight:650;color:#ffffffb3;letter-spacing:.02em;white-space:nowrap}.dash-hero-snap-ico{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;flex-shrink:0;border:1px solid rgb(255 255 255 / 10%);background:#ffffff1a;color:#fff}.dash-hero-snap-ico svg{width:18px;height:18px}.dash-hero-snap-ico.tone-workers{background:#2dd4bf33;color:#99f6e4}.dash-hero-snap-ico.tone-pending{background:#fbbf2433;color:#fde68a}.dash-hero-snap-ico.tone-contract{background:#a78bfa33;color:#ddd6fe}.dash-hero-snap-ico.tone-leave{background:#fb718533;color:#fecdd3}.dash-hero-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center;flex-shrink:0}.dash-hero-badges .ui-badge,.dash-hero-action-btn{min-height:34px;padding:0 12px;border-radius:999px;font-size:.78rem;font-weight:700;box-shadow:none}.dash-hero-action-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid rgb(255 255 255 / 55%);background:#fff;color:#0e4a54!important;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.dash-hero-action-btn:hover:not(:disabled){background:#f0f9fa;border-color:#fff;filter:none;transform:none;color:#0e4a54!important}.dash-hero-badges .ui-badge.accent{background:#ffffff24;border-color:#ffffff3d}.dash-hero-badges .ui-badge.ok{background:#ecfdf3eb}.dash-weather-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.dash-weather-now{display:flex;align-items:center;gap:10px;min-width:0;flex-shrink:0}.dash-weather-hourly{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;min-width:0;overflow:visible;padding:0;align-self:center}@media(max-width:1100px){.dash-weather-hourly{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:6px}}.dash-weather-hour{display:grid;justify-items:center;gap:8px;min-width:0;padding:8px 2px;border:0;border-radius:0;background:transparent;box-shadow:none;position:relative}.dash-weather-hour+.dash-weather-hour:before{content:none}.dash-weather-hour.is-now{background:transparent;border:0}.dash-weather-hour .dash-weather-glyph{width:26px;height:26px;border-radius:999px;border:0}.dash-weather-hour-time{font-size:.78rem;font-weight:700;color:#ffffffe0;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em;padding:4px 0 6px;line-height:1.3;border-bottom:1px solid rgb(255 255 255 / 14%);width:100%;text-align:center}.dash-weather-hour-temp{font-size:.76rem;font-weight:750;font-variant-numeric:tabular-nums}.dash-weather-hour-temp.is-hot,.dash-weather-temp.is-hot{color:#fecaca;text-shadow:0 0 12px rgb(248 113 113 / 45%)}.dash-weather-temp.is-hot .dash-weather-unit{color:#fca5a5;opacity:1}.dash-weather-warnings{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;width:fit-content;max-width:100%;padding:2px 0 0;border:0;border-radius:0;background:transparent}.dash-weather-warnings.has-warn{border:0;background:transparent}.dash-weather-warn-list{display:flex;flex-wrap:wrap;gap:6px 10px;min-width:0}.dash-weather-warn{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border-radius:0;font-size:.78rem;font-weight:750;line-height:1.2;border:0;background:transparent}.dash-weather-warn.tone-info{color:#bae6fd}.dash-weather-warn.tone-amber{color:#fde68a}.dash-weather-warn.tone-red,.dash-weather-warn.tone-storm{color:#fecaca}.dash-weather-warn.tone-black{color:#f8fafc}.dash-weather-warn.tone-typhoon{color:#ddd6fe}.dash-weather-daily{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;min-width:0}@media(max-width:1100px){.dash-weather-daily{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:8px}}.dash-weather-day{display:grid;justify-items:center;gap:8px;min-width:0;padding:8px 2px}.dash-weather-day-label{font-size:.78rem;font-weight:700;color:#ffffffe0;white-space:nowrap;padding:4px 0 6px;border-bottom:1px solid rgb(255 255 255 / 14%);width:100%;text-align:center;line-height:1.3}.dash-weather-day .dash-weather-glyph{width:26px;height:26px;border-radius:999px;border:0}.dash-weather-day-temp{display:inline-flex;align-items:baseline;gap:2px;font-size:.76rem;font-weight:750;font-variant-numeric:tabular-nums;color:#fff}.dash-weather-day-temp .is-hot{color:#fecaca}.dash-weather-day-sep{opacity:.4;font-weight:600}.dash-weather-day-min{color:#ffffff9e;font-weight:650}.dash-status-loc,.dash-status-updated,.dash-weather-refresh,.dash-badge-with-icon{display:inline-flex;align-items:center;gap:5px}.dash-status-loc svg,.dash-status-updated svg,.dash-weather-refresh svg,.dash-badge-with-icon svg{flex-shrink:0;opacity:.92}.dash-hero-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.dash-status-loc,.dash-status-updated{font-size:.72rem;font-weight:650;letter-spacing:.04em;color:#ffffff9e;padding:4px 9px;border-radius:999px;background:#ffffff14;border:1px solid rgb(255 255 255 / 10%);font-variant-numeric:tabular-nums}.dash-weather-refresh{font-size:.72rem;font-weight:700;letter-spacing:.02em;color:#fff;padding:5px 11px;border-radius:999px;border:1px solid rgb(255 255 255 / 28%);background:#ffffff1a;cursor:pointer;box-shadow:none}.dash-weather-refresh:hover:not(:disabled){background:#ffffff2e;filter:none;transform:none}.dash-weather-glyph{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;background:#ffffff1a;border:0;color:#fff;flex-shrink:0}.dash-weather-glyph.is-sun{background:#fbbf242e;color:#fde047}.dash-weather-glyph.is-cloud{background:#94a3b82e;color:#e2e8f0}.dash-weather-glyph.is-rain{background:#38bdf82e;color:#7dd3fc}.dash-weather-glyph.is-storm{background:#a78bfa2e;color:#c4b5fd}.dash-weather-core{display:grid;gap:5px;min-width:0;flex:1}.dash-weather-core.is-loading{gap:2px;color:#ffffffb8;font-size:.82rem}.dash-weather-primary{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}.dash-weather-temp{display:inline-flex;align-items:baseline;font-size:1.55rem;font-weight:750;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.dash-weather-temp-n{display:inline-block;min-width:2ch;text-align:right}.dash-weather-unit{font-size:.82rem;font-weight:650;margin-left:1px;opacity:.8}.dash-weather-cond{font-size:.88rem;font-weight:650;color:#ffffffe0;white-space:nowrap}.dash-weather-metrics{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}.dash-weather-metrics>div{display:flex;align-items:baseline;gap:5px;min-width:0;padding-right:0;margin-right:0;border-right:0}.dash-weather-metrics>div:last-child{padding-right:0;margin-right:0;border-right:0}.dash-weather-metrics dt{margin:0;font-size:.7rem;font-weight:600;color:#ffffff8c;white-space:nowrap}.dash-weather-metrics dd{margin:0;display:inline-flex;align-items:baseline;gap:3px;font-size:.78rem;font-weight:700;color:#ffffffe0;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.dash-weather-num{display:inline-block;text-align:right}.dash-weather-num.is-temp,.dash-weather-num.is-pct,.dash-weather-num.is-wind{min-width:2ch}.dash-weather-unit-sm{font-size:.68rem;font-weight:600;color:#ffffff8c}.dash-weather-loading{opacity:.55;font-size:1.4rem}.dash-notify{position:relative;z-index:5}.dash-notify-bell{position:relative;width:40px;height:40px;padding:0;display:grid;place-items:center;border-radius:12px;border:1px solid rgb(255 255 255 / 28%);background:#ffffff24;color:#fff;cursor:pointer;box-shadow:0 4px 12px #0000001f;transition:background .12s ease,border-color .12s ease,transform .12s ease}.dash-notify-bell:hover:not(:disabled),.dash-notify-bell.is-open{background:#ffffff3d;border-color:#ffffff6b;filter:none;transform:none}.dash-notify-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center;border-radius:999px;background:#ef4444;color:#fff;font-size:.68rem;font-weight:780;line-height:1;border:2px solid #0e4a54;font-variant-numeric:tabular-nums;box-shadow:0 2px 6px #ef444459}.dash-notify-panel{position:absolute;top:calc(100% + 8px);right:0;width:min(320px,calc(100vw - 48px));max-height:min(420px,70vh);overflow:auto;border-radius:14px;background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:0 16px 40px #0f172a38}.dash-notify-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}.dash-notify-head strong{font-size:.95rem}.dash-notify-head span{font-size:.78rem;color:var(--muted);font-weight:650}.dash-notify-empty{margin:0;padding:18px 14px;font-size:.88rem;color:var(--muted)}.dash-notify-list{list-style:none;margin:0;padding:6px;display:grid;gap:4px}.dash-notify-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:inherit;cursor:pointer;text-align:left;box-shadow:none}.dash-notify-item:hover:not(:disabled){background:var(--accent-soft, #ecfeff);filter:none;transform:none}.dash-notify-item.is-urgent .dash-notify-item-count{background:#fee2e2;color:#b91c1c}.dash-notify-item-copy{display:grid;gap:2px;min-width:0}.dash-notify-item-label{font-size:.88rem;font-weight:700}.dash-notify-item-hint{font-size:.72rem;color:var(--muted)}.dash-notify-item-count{flex-shrink:0;min-width:1.8rem;padding:3px 8px;border-radius:999px;background:#ecfeff;color:#0f766e;font-size:.8rem;font-weight:780;text-align:center;font-variant-numeric:tabular-nums}.ui-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:.02em;border:1px solid transparent}.ui-badge.accent{background:#ffffff29;color:#fff;border-color:#ffffff38}.ui-badge.warn{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.ui-badge.ok{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}.ui-badge.subtle{background:var(--surface);color:var(--muted);border-color:var(--line);font-weight:600}.ui-pill{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.78rem;font-weight:700}.ui-text-btn{background:none;border:0;color:var(--accent-2);font-size:.86rem;font-weight:600;padding:4px 0;box-shadow:none}.ui-text-btn:hover:not(:disabled){color:var(--accent-bright);filter:none;text-decoration:underline}.dash-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media(max-width:1100px){.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.dash-stats{grid-template-columns:1fr}}.dash-pulse-wrap{display:grid;gap:10px}.dash-period-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.dash-period-bar-label{font-size:.82rem;font-weight:700;letter-spacing:.02em;color:var(--muted, #64748b)}.dash-period-seg{display:inline-flex;align-items:stretch;padding:3px;border-radius:999px;background:#eef3f5;border:1px solid var(--line, #e2e8f0);gap:2px}.dash-period-seg button{margin:0;border:0!important;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:#475569!important;background:transparent!important;box-shadow:none!important;cursor:pointer;filter:none!important;transform:none!important;-webkit-text-fill-color:currentColor}.dash-period-seg button:hover:not(:disabled){color:#0f172a!important;background:#ffffff8c!important;filter:none!important;transform:none!important}.dash-period-seg button.on,.dash-period-seg button[aria-selected=true]{color:#0a3d47!important;background:#fff!important;box-shadow:0 1px 2px #0f172a1a!important}.dash-panel-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.dash-pulse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media(max-width:1100px){.dash-pulse{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.dash-pulse{grid-template-columns:1fr}}.dash-pulse-card{display:grid;gap:4px;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid var(--line, #e2e8f0);background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:var(--shadow-xs);color:inherit;cursor:pointer}.dash-pulse-card:hover:not(:disabled){border-color:#99b4bc;box-shadow:var(--shadow-sm);filter:none;transform:none}.dash-pulse-card.is-live{border-color:#86efac;background:linear-gradient(180deg,#fff,#ecfdf3)}.dash-pulse-card.is-warn{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff1f2)}.dash-live-wrap{display:grid;gap:10px;min-width:0;max-width:100%;overflow:hidden}.dash-pulse-kicker{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.dash-pulse-card strong{font-size:1.45rem;font-weight:750;letter-spacing:-.03em;color:var(--ink);line-height:1.1}.dash-pulse-card .muted{font-size:.78rem}.dash-quick{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;min-width:0}@media(max-width:1100px){.dash-quick{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.dash-quick{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-quick-btn{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;padding:14px 14px 12px;border-radius:14px;border:1px solid rgb(14 116 144 / 14%);background:linear-gradient(165deg,#f7fcfd,#fff 42%,#f8fafc);color:var(--ink);font-size:.86rem;font-weight:650;box-shadow:0 1px 2px #0f172a0a;cursor:pointer;text-align:left;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.dash-quick-btn:hover:not(:disabled){border-color:#0e749052;background:linear-gradient(165deg,#eef9fb,#fff,#f0f9fa);box-shadow:0 6px 16px #0e3a4414;transform:translateY(-1px);filter:none}.dash-quick-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#0e74901a;color:#0e7490}.dash-quick-icon svg{width:18px;height:18px;stroke-linecap:round;stroke-linejoin:round}.dash-quick-label{line-height:1.25}.dash-stat{display:grid;gap:10px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 18px 16px;color:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s,border-color .15s;position:relative;overflow:hidden}.dash-stat:after{content:"";position:absolute;inset:auto -20% -60% auto;width:120px;height:120px;border-radius:50%;background:var(--stat-accent, var(--accent-bright));opacity:.06;pointer-events:none}.dash-stat:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--stat-accent, var(--accent-bright))}.dash-stat:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-strong);filter:none}.dash-stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-stat-label{font-size:.82rem;color:var(--muted);font-weight:600}.dash-stat-arrow{color:var(--line-strong);font-size:.9rem;transition:transform .15s,color .15s}.dash-stat:hover .dash-stat-arrow{transform:translate(2px);color:var(--stat-accent, var(--accent-bright))}.dash-stat-val{font-size:2rem;font-weight:700;line-height:1;letter-spacing:-.03em;color:var(--stat-accent, var(--accent))}.dash-stat.tone-teal{--stat-accent: #0e7490}.dash-stat.tone-amber{--stat-accent: #c2410c}.dash-stat.tone-violet{--stat-accent: #7c3aed}.dash-stat.tone-rose{--stat-accent: #e11d48}.dash-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:900px){.dash-charts{grid-template-columns:1fr}}.dash-chart-card{min-height:0}.dash-chart-body{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.dash-donut{position:relative;flex:0 0 auto}.dash-donut svg{display:block}.dash-donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;gap:2px}.dash-donut-center strong{font-size:1.45rem;font-weight:800;letter-spacing:-.03em;color:var(--ink);line-height:1}.dash-donut-center span{font-size:.72rem;color:var(--muted);font-weight:600}.dash-chart-legend{list-style:none;margin:0;padding:0;display:grid;gap:8px;flex:1 1 160px;min-width:140px}.dash-chart-legend li{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:.84rem}.dash-swatch{width:10px;height:10px;border-radius:3px}.dash-legend-label{color:var(--ink-soft)}.dash-legend-val{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink)}.dash-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}@media(max-width:960px){.dash-grid{grid-template-columns:1fr}}.dash-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 22px;display:grid;gap:14px;box-shadow:var(--shadow-sm)}.dash-panel:not(.site-map-panel){transition:box-shadow .15s}.dash-panel:not(.site-map-panel):hover{box-shadow:var(--shadow-md)}.dash-panel-table{padding-bottom:16px}.dash-panel-title{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.02em}.dash-panel-sub{margin:4px 0 0;font-size:.78rem;color:var(--muted);font-weight:500}.dash-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dash-empty-state{display:grid;justify-items:center;gap:10px;padding:28px 16px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:.9rem}.dash-empty-state.compact{justify-items:start;text-align:left;padding:20px}.dash-empty-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-weight:700;font-size:1rem}.dash-todos{list-style:none;margin:0;padding:0;display:grid;gap:8px}.dash-todo-btn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 14px;font-size:.9rem;font-weight:500;box-shadow:none}.dash-todo-btn:hover:not(:disabled){background:#fff;border-color:var(--accent-bright);filter:none;box-shadow:var(--shadow-xs)}.dash-todo-btn.is-priority{background:#f0f9fa;border-color:#c5dde2}.dash-todo-btn.is-urgent{background:#fff7ed;border-color:#fed7aa}.dash-todo-copy{display:grid;gap:2px;flex:1;min-width:0}.dash-todo-label{font-weight:650}.dash-todo-hint{font-size:.75rem;color:var(--muted);font-weight:500}.dash-todo-arrow{color:var(--line-strong);font-size:.9rem}.dash-todo-count{display:inline-grid;place-items:center;min-width:2.35rem;height:2.35rem;padding:0 8px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-weight:750;font-size:.92rem;flex-shrink:0}.dash-todo-count.urgent{background:var(--err-soft);color:var(--err)}.dash-progress{display:grid;gap:8px;padding-top:4px;border-top:1px solid var(--line)}.dash-progress-meta{display:flex;justify-content:space-between;align-items:baseline;font-size:.78rem;color:var(--muted)}.dash-progress-meta strong{color:var(--ink);font-variant-numeric:tabular-nums}.dash-progress-track{height:8px;border-radius:999px;background:#e8eef0;overflow:hidden}.dash-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0e7490,#14b8a6);min-width:0}.dash-ops-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dash-ops-unified{display:grid;gap:14px;min-width:0;max-width:100%;overflow:hidden}.dash-ops-unified .dash-panel-head{flex-wrap:wrap;gap:10px}.dash-ops-unified .dash-panel-actions{flex-wrap:wrap;gap:8px;justify-content:flex-end}.dash-ops-section{display:grid;gap:8px;min-width:0}.dash-ops-section-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted, #64748b)}.dash-ops-unified .dash-pulse{margin:0}@media(max-width:900px){.dash-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-ops-card{display:grid;gap:4px;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,#fff,#f7fafb);color:inherit;cursor:pointer;box-shadow:none}.dash-ops-card:hover:not(:disabled){border-color:#99b4bc;filter:none;transform:none;box-shadow:var(--shadow-xs)}.dash-ops-card.is-warn{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff1f2)}.dash-ops-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.dash-ops-card strong{font-size:1.5rem;font-weight:750;letter-spacing:-.03em;line-height:1.1}.dash-ops-card .muted{font-size:.78rem}.dash-row-click{cursor:pointer}.dash-row-click:hover td{background:#eef6f7}.dash-miss-hint{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:#ffedd5;color:#c2410c;font-size:.72rem;font-weight:700}.dash-hire-name{display:inline-flex;align-items:center;gap:10px}.dash-avatar{width:28px;height:28px;border-radius:9px;display:inline-grid;place-items:center;background:linear-gradient(180deg,#134e5a,#0e3a44);color:#fff;font-size:.78rem;font-weight:700;flex-shrink:0}.dash-frac{display:inline-grid;place-items:center;min-width:2.4rem;padding:3px 8px;border-radius:999px;font-size:.78rem;font-weight:750;font-variant-numeric:tabular-nums;background:#e2e8f0;color:#475569}.dash-frac.ok{background:#d1fae5;color:#047857}.dash-frac.mid{background:#fef3c7;color:#b45309}.dash-frac.bad{background:#ffe4e6;color:#be123c}.dash-contract-cell{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px}.dash-table-hires th,.dash-table-hires td{padding:12px 14px}.dash-flow{display:grid;gap:0}.dash-flow-step{display:flex;align-items:flex-start;gap:14px;width:100%;text-align:left;background:transparent;border:none;border-radius:var(--radius-md);padding:10px 8px;color:inherit;box-shadow:none}.dash-flow-step:hover:not(:disabled){background:#f0f9fa;filter:none;box-shadow:none}.dash-flow-rail{display:flex;flex-direction:column;align-items:center;flex-shrink:0;min-height:100%}.dash-flow-no{flex-shrink:0;width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:10px;background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.04em}.dash-flow-line{width:2px;flex:1;min-height:16px;margin:4px 0 0;background:linear-gradient(180deg,#99b4bc,#e2e8f0);border-radius:2px}.dash-flow-body{display:grid;gap:2px;flex:1;min-width:0;padding-top:2px}.dash-flow-body strong{font-size:.92rem;font-weight:650}.dash-flow-body span{font-size:.8rem;color:var(--muted)}.dash-flow-arrow{color:var(--line-strong);font-size:.95rem;margin-top:6px}.dash-table th,.dash-table td{padding:10px 14px;font-size:.85rem}@media(max-width:720px){.app{grid-template-columns:1fr}aside{flex-direction:row;flex-wrap:wrap;gap:10px;padding:12px}.brand{width:100%;padding-bottom:10px;margin-bottom:0}.nav-group{width:100%}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.aside-bottom,.aside-foot{width:100%;margin-top:0}.dash-hero-badges,.dash-hero-toolbar{justify-content:flex-start}main{padding:18px 16px 32px}}@media(max-width:520px){.leave-form-row{grid-template-columns:1fr}}@media(max-width:900px){.contract-templates-layout{grid-template-columns:1fr}}.site-map-panel{overflow:hidden;padding:0!important;gap:0!important}.site-map-panel-hero{border:1px solid rgb(14 116 144 / 14%);box-shadow:var(--shadow-lg);background:var(--panel)}.site-map-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:20px 22px 18px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 55% 120% at 0% 0%,rgb(20 184 166 / 10%),transparent 55%),linear-gradient(180deg,#f4fafb,#fff 72%);position:relative}.site-map-head:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--accent-bright),var(--accent-2))}.site-map-head-main{display:flex;align-items:center;gap:14px;min-width:0;padding-left:6px}.site-map-head-icon{width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,var(--accent-2),var(--accent-bright));color:#fff;box-shadow:0 6px 16px #14606e47,inset 0 1px #ffffff38}.site-map-head-icon svg{width:22px;height:22px}.site-map-head-copy{min-width:0}.site-map-head-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.site-map-title{margin:0;font-size:1.12rem;font-weight:750;letter-spacing:-.02em;color:var(--ink);line-height:1.25}.site-map-live-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 7px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;color:#c2410c;background:linear-gradient(180deg,#fff7ed,#ffedd5);border:1px solid #fdba74}.site-map-live-pill-dot{width:7px;height:7px;border-radius:50%;background:#ea580c;box-shadow:0 0 #ea580c8c;animation:site-map-pulse 1.6s ease-out infinite}@keyframes site-map-pulse{0%{box-shadow:0 0 #ea580c7f}70%{box-shadow:0 0 0 8px #ea580c00}to{box-shadow:0 0 #ea580c00}}.site-map-sub{margin:5px 0 0;font-size:.8rem;color:var(--muted);line-height:1.5;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.site-map-provider-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.02em;color:var(--accent-2);background:var(--accent-soft);border:1px solid rgb(20 96 110 / 14%)}.site-map-provider-chip.muted{color:var(--muted);background:#f1f5f9;border-color:var(--line)}.site-map-stat-row{display:flex;gap:8px;flex-wrap:wrap}.site-map-stat{display:grid;gap:4px;min-width:72px;padding:10px 12px 9px;border-radius:14px;border:1px solid var(--line);background:#fff;text-align:center;box-shadow:0 1px 2px #0f172a0a;position:relative;overflow:hidden}.site-map-stat:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#94a3b8;opacity:.55}.site-map-stat-val{font-size:1.4rem;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums}.site-map-stat-label{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.site-map-stat.live{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed,#fff 88%)}.site-map-stat.live:before{background:var(--live);opacity:1}.site-map-stat.live .site-map-stat-val{color:var(--live)}.site-map-stat.ok{border-color:#bbf7d0;background:linear-gradient(180deg,#ecfdf3,#fff 88%)}.site-map-stat.ok:before{background:var(--ok);opacity:1}.site-map-stat.ok .site-map-stat-val{color:var(--ok)}.site-map-stat.warn{border-color:#fecaca;background:linear-gradient(180deg,#fff1f2,#fff 88%);animation:site-map-warn-glow 2.4s ease-in-out infinite}.site-map-stat.warn:before{background:#e11d48;opacity:1}.site-map-stat.warn .site-map-stat-val{color:#e11d48}.site-map-stat.calm{border-color:#e2e8f0;background:linear-gradient(180deg,#f8fafc,#fff 88%)}.site-map-stat.calm:before{background:#94a3b8;opacity:.35}.site-map-stat.calm .site-map-stat-val{color:#64748b}@keyframes site-map-warn-glow{0%,to{box-shadow:0 1px 2px #0f172a0a}50%{box-shadow:0 0 0 3px #e11d4814}}.site-map-alerts{margin:0;padding:14px 18px 16px;border-bottom:1px solid #fecdd3;background:radial-gradient(ellipse 70% 120% at 100% 0%,rgb(251 113 133 / 12%),transparent 55%),linear-gradient(180deg,#fff1f2,#fff7f8)}.site-map-alerts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.site-map-alerts-title{display:flex;align-items:flex-start;gap:10px;min-width:0}.site-map-alerts-title strong{display:block;font-size:.92rem;color:#9f1239;letter-spacing:-.01em}.site-map-alerts-title p{margin:2px 0 0;font-size:.75rem;color:#be123c;opacity:.78;line-height:1.4}.site-map-alerts-icon{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#e11d48,#fb7185);color:#fff;box-shadow:0 4px 12px #e11d4847}.site-map-alerts-icon svg{width:18px;height:18px}.site-map-alerts-count{flex-shrink:0;margin-top:2px;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:750;color:#9f1239;background:#fff;border:1px solid #fecdd3;box-shadow:0 1px 2px #9f12390f}.site-map-alerts-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.site-map-alerts-list>li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #fecdd3;box-shadow:0 1px 3px #9f12390d}.site-map-alert-main{display:flex;align-items:center;gap:12px;min-width:0}.site-map-alert-avatar{flex:0 0 auto}.site-map-alert-avatar.worker-avatar{border-width:2px}.site-map-alert-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:5px}.site-map-alert-copy strong{display:block;font-size:.92rem;font-weight:700;line-height:1.2;color:var(--ink);letter-spacing:-.01em}.site-map-alert-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:0}.site-map-alert-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:650;font-variant-numeric:tabular-nums;background:#f8fafc;color:var(--muted);border:1px solid var(--line)}.site-map-alert-chip.time{color:var(--accent-2);background:var(--accent-soft);border-color:#14606e24}.site-map-alert-chip.dist{color:#9f1239;background:#fff1f2;border-color:#fecdd3}.site-map-alert-ack{flex-shrink:0;border:0;border-radius:10px;padding:8px 14px;font-size:.8rem;font-weight:700;color:#fff;background:linear-gradient(180deg,#e11d48,#be123c);box-shadow:0 2px 8px #be123c47;cursor:pointer}.site-map-alert-ack:hover:not(:disabled){filter:brightness(1.05)}.site-map-alert-ack:disabled{opacity:.65;cursor:wait}@media(max-width:720px){.site-map-alerts-list>li{flex-direction:column;align-items:stretch}.site-map-alert-ack{width:100%}}.site-map-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,30%);gap:0;align-items:stretch;min-width:0;max-width:100%}@media(max-width:960px){.site-map-body{grid-template-columns:1fr}}.site-map-panel.is-dashboard .site-map-body{grid-template-columns:minmax(0,1.15fr) minmax(260px,.95fr)}.site-map-panel.is-dashboard .site-map-canvas{min-height:clamp(280px,38dvh,420px);height:clamp(280px,38dvh,420px)}.site-map-panel.is-dashboard .site-map-legend{min-height:clamp(280px,38dvh,420px);height:clamp(280px,38dvh,420px);padding:12px 14px}.site-map-panel.is-dashboard .site-map-head{padding:12px 14px}.site-map-panel.is-dashboard .site-map-stat-row{gap:8px}.site-map-panel.is-dashboard .site-map-stat{padding:8px 10px}.site-map-worker.is-compact{padding:8px 10px;gap:10px;align-items:center}.site-map-worker.is-compact .site-map-worker-av{width:36px;height:36px}.site-map-worker.is-compact .site-map-worker-av img,.site-map-worker.is-compact .site-map-worker-av>.site-map-worker-av-fallback{width:36px;height:36px;font-size:.85rem}.site-map-worker.is-compact .site-map-worker-main,.site-map-worker.is-compact .site-map-worker-hours{gap:4px}.site-map-worker.is-clickable{cursor:pointer}.site-map-worker.is-clickable:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 6px 16px #0e749024}.site-map-worker.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-map-worker-tap-hint{margin:4px 0 0;font-size:.78rem}.site-worker-action-code{margin:0 0 12px;font-size:.85rem;color:#64748b}.worker-day-modal{display:grid;gap:4px}.worker-day-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.worker-day-section{margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.worker-day-section h4{margin:0 0 4px;font-size:.92rem}.worker-day-section .hint{margin:0 0 8px}.worker-day-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:168px;overflow:auto}.worker-day-list li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:.84rem;padding:7px 10px;background:#fff;border-radius:8px;border:1px solid var(--line)}.worker-day-timeline{max-height:320px}.worker-day-timeline li.is-warn{border-color:#f0b4a8;background:#fff7f5}.foreman-modal-worker-list{max-height:280px;gap:4px}.foreman-modal-worker-li{padding:0!important;border:0!important;background:transparent!important;display:block!important}.foreman-modal-worker-btn{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px}.foreman-modal-worker-btn:hover:not(:disabled){background:#f0f7f8;border-color:#94a3b8}.foreman-modal-worker-hint{flex-shrink:0;font-size:.78rem}.site-map-foremen-block{margin:8px 0 4px;padding-bottom:6px;border-bottom:1px dashed var(--line)}.site-map-foremen-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 6px}.site-map-foremen-head h5{margin:0;font-size:.88rem;font-weight:700}.site-map-foremen-list{margin-bottom:4px}.site-map-foreman-av img,.site-map-foreman-av .site-map-worker-av-fallback{border-radius:10px}.site-map-list>.site-map-foreman-row{background:#fff4ec}.table-wrap tr.is-clickable{cursor:pointer}.table-wrap tr.is-clickable:hover td{background:#f8fafc}.table-wrap tr.is-clickable:focus-visible{outline:2px solid #0f766e;outline-offset:-2px}.worker-day-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}.worker-day-actions .action-ping,.worker-day-actions .action-verify{min-height:48px;font-size:1.02rem;font-weight:800;letter-spacing:.06em}.site-worker-action-grid{display:grid;gap:10px}.site-worker-action-grid .action-ping,.site-worker-action-grid .action-verify{min-height:48px;font-size:1.02rem;font-weight:800;letter-spacing:.06em}.site-map-list.is-compact{gap:8px}.site-map-canvas{position:relative;overflow:hidden;border-right:1px solid var(--line);background:#dbeafe;min-height:clamp(560px,calc(100dvh - 300px),920px);height:clamp(560px,calc(100dvh - 300px),920px)}@media(max-width:960px){.site-map-canvas{border-right:0;border-bottom:1px solid var(--line);height:clamp(420px,55dvh,640px);min-height:420px}}.site-map-leaflet{width:100%;height:100%;min-height:inherit;z-index:0}.site-map-canvas:has(.site-map-google) .site-map-canvas-shade{background:linear-gradient(180deg,rgb(15 23 42 / 5%) 0%,transparent 14%,transparent 86%,rgb(15 23 42 / 6%) 100%),linear-gradient(90deg,rgb(15 23 42 / 4%) 0%,transparent 10%,transparent 90%,rgb(15 23 42 / 4%) 100%)}.site-map-google{background:#eef2f7;filter:saturate(.92)}.site-map-provider-tag{font-weight:600;color:var(--accent-2)}.site-map-provider-tag.muted{color:var(--muted);font-weight:500}.site-map-canvas-shade{position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,rgb(15 23 42 / 4%) 0%,transparent 12%,transparent 88%,rgb(15 23 42 / 5%) 100%),linear-gradient(90deg,rgb(15 23 42 / 3%) 0%,transparent 8%,transparent 92%,rgb(15 23 42 / 3%) 100%)}.site-map-loading{position:absolute;inset:0;display:grid;place-items:center;background:#f8fafcc7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;z-index:2}.site-map-legend{display:flex;flex-direction:column;min-width:0;min-height:clamp(560px,calc(100dvh - 300px),920px);height:clamp(560px,calc(100dvh - 300px),920px);padding:16px 16px 14px;background:linear-gradient(180deg,#f8fafc,#fff);color:var(--ink);overflow:auto}@media(max-width:960px){.site-map-legend{height:auto;min-height:280px;max-height:50dvh}}.site-map-legend-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.site-map-legend-head h4{margin:0;font-size:.9rem;font-weight:700;color:var(--ink)}.site-map-legend-count{display:grid;place-items:center;min-width:1.6rem;height:1.6rem;padding:0 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.76rem;font-weight:700}.live-activity-log{border-top:1px solid var(--line);padding:16px 18px 20px;background:radial-gradient(ellipse 50% 80% at 0% 0%,rgb(20 184 166 / 6%),transparent 55%),linear-gradient(180deg,#f8fafc,#fff)}.live-activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.live-activity-head h4{margin:0;font-size:.98rem;font-weight:750;letter-spacing:-.01em;color:var(--ink)}.live-activity-head .hint{margin:3px 0 0;font-size:.78rem}.live-activity-filters{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff}.live-filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.live-filter-label{font-size:.68rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:2px}.live-filter-tag{border:1px solid var(--line);background:#f8fafc;color:var(--muted);border-radius:999px;padding:4px 10px;font-size:.74rem;font-weight:650;cursor:pointer}.live-filter-tag:hover{border-color:#14606e47;color:var(--accent-2)}.live-filter-tag.on{background:var(--accent-soft);border-color:#14606e47;color:var(--accent-2)}.live-filter-tag.warn.on{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.live-filter-worker select{min-width:140px;padding:4px 8px;border-radius:8px;border:1px solid var(--line);font-size:.8rem;background:#fff}.live-activity-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.78rem;color:var(--muted)}.live-activity-meta strong{color:var(--ink);font-variant-numeric:tabular-nums}.live-activity-empty{display:grid;gap:4px;padding:28px 16px;text-align:center;border-radius:12px;border:1px dashed var(--line);background:#fff}.live-activity-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:min(420px,42dvh);overflow:auto}.live-activity-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:start;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff;box-shadow:0 1px 2px #0f172a08}.live-activity-row.outside{border-color:#fecdd3;background:linear-gradient(180deg,#fff1f2,#fff 70%)}.live-activity-kind{display:inline-flex;align-items:center;justify-content:center;height:fit-content;padding:5px 8px;border-radius:8px;font-size:.68rem;font-weight:750;letter-spacing:.02em;white-space:nowrap}.live-activity-kind.ping{color:var(--accent-2);background:var(--accent-soft)}.live-activity-kind.verify{color:#0f766e;background:#ccfbf1}.live-activity-body strong{display:block;font-size:.9rem;color:var(--ink)}.live-activity-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.live-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:650;border:1px solid var(--line);background:#f8fafc;color:var(--muted);font-variant-numeric:tabular-nums}.live-chip.time{color:var(--accent-2);background:var(--accent-soft);border-color:#14606e24}.live-chip.ok{color:var(--ok);background:var(--ok-soft);border-color:#bbf7d0}.live-chip.warn{color:#9f1239;background:#fff1f2;border-color:#fecdd3}.live-chip.source{color:#0f766e;background:#f0fdfa;border-color:#99f6e4}.live-chip.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem}.live-onsite-page{display:flex;flex-direction:column;gap:12px;min-height:calc(100dvh - 88px)}.live-onsite-page .site-map-panel-hero{flex:1 1 auto}@media(max-width:720px){.live-activity-row{grid-template-columns:1fr}}.site-map-legend .hint,.site-map-legend-hint{max-width:none;color:var(--muted);font-size:.8rem;line-height:1.5;margin:0 0 10px}.site-map-legend-live{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--live);margin-right:6px;vertical-align:middle;animation:site-pulse 1.6s ease-out infinite}.site-map-empty{display:flex;flex-direction:column;gap:12px;align-items:flex-start;margin-top:8px}.hk-site-pin-wrap{background:transparent;border:none}.hk-site-pin{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;filter:drop-shadow(0 3px 8px rgb(15 23 42 / 28%));transition:transform .18s ease}.hk-site-pin.active{transform:scale(1.12)}.hk-site-pin-pulse{position:absolute;top:2px;left:50%;width:52px;height:52px;margin-left:-26px;border-radius:999px;background:#0d948861;animation:site-pulse 1.6s ease-out infinite;pointer-events:none}@keyframes site-pulse{0%{transform:scale(.7);opacity:.85}to{transform:scale(2.4);opacity:0}}.hk-site-pin-badge{position:relative;z-index:1;min-width:48px;height:48px;padding:0 10px;border-radius:999px;background:#0284c7;color:#fff;font-size:1rem;font-weight:800;display:grid;place-items:center;border:3px solid #fff;box-shadow:0 3px 10px #0f172a38}.hk-site-pin-pulse-2{animation-delay:.75s}.hk-site-pin-live-tag{font-size:9px;font-weight:800;color:#0f766e;letter-spacing:.04em;text-transform:uppercase}.hk-site-pin.live .hk-site-pin-badge{background:linear-gradient(145deg,#0d9488,#14b8a6);box-shadow:0 0 0 5px #0d948847,0 3px 10px #0f172a38}.hk-site-pin.idle .hk-site-pin-badge{background:linear-gradient(145deg,#0369a1,#0ea5e9);color:#fff}.hk-site-pin.active .hk-site-pin-badge{background:linear-gradient(145deg,#c2410c,#ea580c);box-shadow:0 0 0 5px #ea580c47,0 3px 10px #0f172a3d}.hk-site-pin.active.live .hk-site-pin-badge{background:linear-gradient(145deg,#c2410c,#ea580c);box-shadow:0 0 0 5px #ea580c52,0 3px 10px #0f172a3d}.hk-site-pin.active .hk-site-pin-pulse{animation:none;opacity:0}.hk-site-pin:not(.active).live .hk-site-pin-pulse{animation:site-pulse 2.4s ease-out infinite}.hk-site-pin-label{max-width:110px;padding:3px 8px;border-radius:7px;background:#fffffff5;color:#0f172a;font-size:11px;font-weight:750;text-align:center;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 6px #0f172a24;border:1px solid rgb(14 116 144 / 18%)}.site-live-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:999px;background:#22c55e;animation:site-pulse 2.4s ease-out infinite;vertical-align:middle;flex-shrink:0}.site-map-site-picks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;overflow:auto;max-height:480px}.site-map-site-pick{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;text-align:left;font:inherit;font-weight:500;box-shadow:var(--shadow-xs);transition:border-color .15s,background .15s,transform .12s}.site-map-site-pick:hover{border-color:#7dd3fc;background:#f0f9ff;transform:translate(2px);filter:none}.site-map-site-pick.on{border-color:#0891b2;background:linear-gradient(90deg,#ecfeff,#f0fdfa);box-shadow:0 0 0 1px #0891b21f;filter:none}.site-map-site-pick.live{border-left:3px solid #14606e}.site-map-site-pick-name{display:flex;align-items:center;font-size:.84rem;font-weight:650;min-width:0;color:var(--ink);line-height:1.35}.site-map-count-chip{flex-shrink:0;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--surface);color:var(--muted);border:1px solid var(--line)}.site-map-count-chip.has{background:var(--accent-soft);color:var(--accent-2);border-color:#bae6fd}.site-map-detail-head{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.site-map-back{align-self:flex-start;background:none;border:0;color:var(--accent-2);font-size:.82rem;font-weight:600;padding:0;box-shadow:none;cursor:pointer}.site-map-back:hover:not(:disabled){color:var(--accent-bright);filter:none;text-decoration:underline}.site-map-detail-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.site-map-detail-title h4{margin:0;font-size:1rem;font-weight:750;color:var(--ink);letter-spacing:-.02em}.site-map-live-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.site-map-detail-meta{margin:0;font-size:.8rem;color:var(--muted);line-height:1.55;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.site-map-contract-chip{display:inline-flex;padding:2px 8px;border-radius:6px;font-size:.72rem;font-weight:650;font-family:ui-monospace,monospace;color:var(--accent-2);background:var(--accent-soft);border:1px solid #bae6fd}.site-map-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;overflow:auto;max-height:420px}.site-map-worker{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:12px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-xs);transition:border-color .15s,box-shadow .15s}.site-map-worker:hover{border-color:#bae6fd;box-shadow:var(--shadow-sm)}.site-map-worker-av{position:relative;width:46px;height:46px;flex-shrink:0}.site-map-worker-av img,.site-map-worker-av>.site-map-worker-av-fallback{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block;border:2px solid #fff;box-shadow:0 2px 8px #0f172a24;background:#e2e8f0}.site-map-worker-av>.site-map-worker-av-fallback{display:grid;place-items:center;font-weight:800;font-size:1rem;color:#fff;background:#0f766e}.site-map-worker-live{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:999px;background:#22c55e;border:2px solid #fff;box-shadow:0 0 0 1px #22c55e4d;z-index:1}.site-map-worker-main{flex:1;min-width:0;display:grid;gap:8px}.site-map-worker-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.site-map-worker-top strong{font-size:.92rem;font-weight:700;color:var(--ink)}.site-map-worker-code{font-size:.74rem;color:var(--muted)}.site-map-worker-hours{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.site-map-time-chip.ok{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.site-map-worker-stats{margin-top:8px;display:grid;gap:2px;font-size:.78rem;color:var(--ink-soft)}.site-map-worker-stats strong{color:var(--ink);font-weight:600}.site-map-nudge-pending{color:#9a3412;margin-top:2px}.site-map-worker-actions{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.site-map-worker-actions .primary,.site-map-worker-actions .secondary{font-size:.78rem;padding:6px 10px}.site-map-nudge-msg{margin-top:8px}.push-event-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.push-event-list li{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.site-map-time-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;font-size:.74rem;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line)}.site-map-time-chip strong{font-weight:750;color:var(--ink)}.site-map-time-chip.accent{background:linear-gradient(180deg,#fff7ed,#fff);border-color:#fed7aa;color:#9a3412}.site-map-time-chip.accent strong{color:#c2410c}.site-map-time-chip.warn{background:#fff1f2;border-color:#fecaca;color:#be123c;font-weight:700}.ai-fab{position:fixed;right:22px;bottom:22px;z-index:50;display:inline-flex;align-items:center;gap:12px;margin:0;border:0;border-radius:18px;padding:12px 16px 12px 14px;background:linear-gradient(145deg,#14606e,#0e3a44 72%);color:#fff;cursor:pointer;box-shadow:0 12px 28px #0e3a4447,0 0 0 1px #ffffff14 inset;transition:transform .15s ease,box-shadow .15s ease}.ai-fab:hover{transform:translateY(-1px);box-shadow:0 16px 32px #0e3a4457,0 0 0 1px #ffffff1f inset}.ai-fab-glyph{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#ffffff1f;font-size:.95rem;font-weight:700}.ai-fab-copy{display:grid;gap:1px;text-align:left}.ai-fab-copy strong{font-size:.9rem;letter-spacing:.02em}.ai-fab-copy small{font-size:.72rem;color:#ffffffb8;font-weight:500}button.ai-backdrop{position:fixed;inset:0;z-index:60;margin:0;border:0;padding:0;background:#08141c6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;animation:ai-fade .16s ease-out}@keyframes ai-fade{0%{opacity:0}to{opacity:1}}.ai-drawer{--ai-ink: #0f1c22;--ai-muted: #5b6b74;--ai-line: #d5e1e6;--ai-soft: #eef5f6;--ai-teal: #0e3a44;--ai-teal-2: #14606e;--ai-mint: #1a8a9a;position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(440px,100vw);display:flex;flex-direction:column;color:var(--ai-ink);background:radial-gradient(120% 60% at 100% 0%,rgb(26 138 154 / 10%),transparent 55%),linear-gradient(180deg,#f7fbfc,#eef3f5);border-left:1px solid rgb(14 58 68 / 12%);box-shadow:-20px 0 48px #0818202e;animation:ai-drawer-in .2s cubic-bezier(.22,1,.36,1);padding:0!important;gap:0!important;border-right:0!important}@keyframes ai-drawer-in{0%{transform:translate(28px);opacity:.5}to{transform:none;opacity:1}}.ai-drawer-head{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(180deg,#14606ef5,#0e3a44fa);color:#fff;border-bottom:1px solid rgb(255 255 255 / 8%)}.ai-drawer-top,.ai-drawer-sub{display:contents}.ai-brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.ai-brand-text{min-width:0}.ai-brand-mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#5ecfc4,#1a8a9a 45%,#0e3a44);box-shadow:0 0 0 1px #ffffff2e inset;flex:0 0 auto}.ai-brand h2{margin:0;font-size:.95rem;font-weight:700;letter-spacing:.02em;color:#fff;white-space:nowrap;line-height:1.2}.ai-brand p{margin:2px 0 0;font-size:.65rem;color:#ffffffad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14ch}.ai-drawer-head-right{display:contents}.ai-month{margin:0;display:inline-flex;align-items:center;gap:4px;padding:3px 6px 3px 8px;border-radius:8px;background:#ffffff1a;border:1px solid rgb(255 255 255 / 14%);flex:0 0 auto}.ai-month span{font-size:.65rem;font-weight:650;color:#ffffffb8}.ai-month input[type=month]{width:7.8rem;padding:1px 0;border:0;background:transparent;color:#fff;font-size:.78rem}.ai-month input[type=month]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.75;cursor:pointer}.ai-icon-btn{margin:0;border:1px solid rgb(255 255 255 / 16%);border-radius:8px;padding:6px 9px;background:transparent;color:#fff;font-size:.72rem;font-weight:600;cursor:pointer;flex:0 0 auto;white-space:nowrap}.ai-icon-btn.solid{background:#ffffff24}.ai-icon-btn:hover{background:#ffffff2e}.ai-drawer-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 14px 12px;background:transparent;color:var(--ai-ink)}.ai-empty-hero{margin-bottom:16px;padding:4px 2px 2px}.ai-empty-kicker{margin:0 0 8px;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ai-mint)}.ai-empty-hero h3{margin:0 0 8px;font-size:1.35rem;font-weight:750;letter-spacing:-.02em;color:var(--ai-ink);line-height:1.25}.ai-empty-hint{margin:0;max-width:34ch;font-size:.86rem;line-height:1.55;color:var(--ai-muted)}.ai-quick{list-style:none;margin:0;padding:0;display:grid;gap:8px}.ai-quick li{animation:ai-rise .28s ease both}@keyframes ai-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ai-quick button{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:0;padding:12px 14px;border:1px solid var(--ai-line);border-radius:14px;background:#ffffffdb;color:var(--ai-ink);text-align:left;cursor:pointer;box-shadow:0 1px 2px #0f172a0a;transition:border-color .12s,background .12s,transform .12s}.ai-quick button:hover:not(:disabled){border-color:#1a8a9a73;background:#fff;transform:translateY(-1px)}.ai-quick button:disabled{opacity:.55;cursor:not-allowed}.ai-quick-i{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:700;color:var(--ai-mint);letter-spacing:.04em}.ai-quick-text{display:grid;gap:2px;min-width:0}.ai-quick-text strong{font-size:.9rem;font-weight:650}.ai-quick-text small{font-size:.75rem;color:var(--ai-muted)}.ai-quick-go{color:var(--ai-teal-2);font-size:1rem;opacity:.55}.ai-thread{display:flex;flex-direction:column;gap:12px}.ai-row{display:flex}.ai-row.me{justify-content:flex-end}.ai-bubble.me{max-width:88%;padding:10px 14px;border-radius:16px 16px 4px;background:linear-gradient(145deg,#14606e,#0e3a44);color:#fff;font-size:.9rem;line-height:1.5;box-shadow:0 6px 16px #0e3a442e}.ai-card{position:relative;max-width:100%;display:grid;grid-template-columns:4px 1fr;overflow:hidden;border:1px solid rgb(14 58 68 / 10%);border-radius:16px;background:linear-gradient(180deg,#f8fbfc,#f3f8f9);box-shadow:0 4px 16px #0f28320d;animation:ai-rise .22s ease both}.ai-card.err{display:block;padding:12px 14px;background:#fef2f2;border-color:#fecaca;color:#991b1b}.ai-card-mark{background:linear-gradient(180deg,#1a8a9a,#0e3a44)}.ai-card-body{padding:12px 14px 10px;min-width:0}.ai-answer-p{margin:0 0 8px;font-size:.92rem;line-height:1.6;color:var(--ai-ink);white-space:pre-wrap}.ai-answer-p:last-of-type{margin-bottom:0}.ai-err-hint{margin:8px 0 0;font-size:.8rem;color:#7f1d1d}.ai-retry{margin-top:10px;padding:5px 16px;border:1px solid #fecaca;border-radius:999px;background:#fff;color:#991b1b;font-size:.8rem;font-weight:600;cursor:pointer}.ai-retry:hover:not(:disabled){background:#fef2f2}.ai-retry:disabled{opacity:.5;cursor:default}.ai-card-foot{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--ai-line);font-size:.7rem;color:var(--ai-muted)}.ai-proposal-actions{margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid #f0d9a8;background:#fffbeb;display:grid;gap:8px}.ai-proposal-hint{margin:0;font-size:.82rem;color:var(--ink);line-height:1.4}.ai-proposal-btns{display:flex;flex-wrap:wrap;gap:8px}.ai-table-wrap{margin-top:12px;border:1px solid var(--ai-line);border-radius:12px;overflow:hidden;background:var(--ai-soft)}.ai-table-title{padding:7px 12px;font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--ai-teal);background:#e8f3f5cc;border-bottom:1px solid var(--ai-line)}.ai-table-scroll{overflow:auto;max-height:280px;background:#fff}.ai-table{width:100%;border-collapse:collapse;font-size:.8rem}.ai-table th,.ai-table td{padding:8px 11px;text-align:left;border-bottom:1px solid #eef3f5;white-space:nowrap;color:var(--ai-ink)}.ai-table td.muted{color:var(--ai-muted);text-align:center;font-style:italic}.ai-table th{position:sticky;top:0;font-size:.68rem;font-weight:700;color:var(--ai-muted);background:#f8fbfc}.ai-table tbody tr:hover td{background:#f7fbfc}.ai-table tbody tr:last-child td{border-bottom:0}.ai-steps{margin-top:10px;font-size:.8rem}.ai-steps summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;list-style:none;color:var(--ai-teal-2);font-weight:650}.ai-steps summary::-webkit-details-marker{display:none}.ai-steps summary em{font-style:normal;font-size:.72rem;font-weight:600;color:var(--ai-muted);padding:2px 8px;border-radius:999px;background:var(--ai-soft)}.ai-steps ol{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:8px}.ai-steps li{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start}.ai-step-i{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--ai-soft);color:var(--ai-teal);font-size:.68rem;font-weight:700}.ai-tool{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:#e8f3f5;color:var(--ai-teal);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}.ai-step-sum{color:#42535c}.ai-typing{display:inline-flex!important;align-items:center;gap:7px;padding:14px 16px!important;color:var(--ai-muted);font-size:.82rem}.ai-typing span{width:6px;height:6px;border-radius:50%;background:var(--ai-mint);animation:ai-dot 1s infinite ease-in-out}.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}.ai-typing em{font-style:normal;margin-left:4px}@keyframes ai-dot{0%,80%,to{opacity:.28;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ai-drawer-foot{flex:0 0 auto;margin-top:auto;padding:10px 12px 14px;background:#ffffffeb;border-top:1px solid var(--ai-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ai-followups-wrap{display:grid;gap:6px;padding-bottom:10px}.ai-followups-label{padding:0 2px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ai-muted)}.ai-followups{display:flex;gap:6px;overflow-x:auto;padding:0 2px;scrollbar-width:thin}.ai-follow{flex:0 0 auto;margin:0;border:1px solid var(--ai-line);border-radius:999px;padding:5px 11px;background:var(--ai-soft);color:#334155;font-size:.74rem;font-weight:600;cursor:pointer;white-space:nowrap}.ai-follow:hover:not(:disabled){border-color:var(--ai-mint);color:var(--ai-teal);background:#fff}.ai-follow:disabled{opacity:.5;cursor:not-allowed}.ai-input-row{display:flex;align-items:center;gap:8px;margin:0;padding:6px;border:1px solid var(--ai-line);border-radius:14px;background:#fff;box-shadow:0 8px 20px #0f28320d}.ai-input-row:focus-within{border-color:#1a8a9a8c;box-shadow:0 0 0 3px #1a8a9a24,0 8px 20px #0f28320d}.ai-input-row input{flex:1 1 auto;min-width:0;height:38px;padding:0 10px;border:0;background:transparent;color:var(--ai-ink);font-size:.92rem}.ai-input-row input:focus{outline:none}.ai-send{flex:0 0 auto;height:38px;min-width:72px;margin:0;border:0;border-radius:10px;padding:0 16px;background:linear-gradient(180deg,#14606e,#0e3a44);color:#fff;font-weight:700;font-size:.86rem;cursor:pointer}.ai-send:hover:not(:disabled){filter:brightness(1.06)}.ai-send:disabled{background:#9aa8b0;color:#fff;cursor:not-allowed;filter:none}.ai-drawer button{box-shadow:none;transform:none;filter:none}.ai-drawer .ai-send{background:linear-gradient(180deg,#14606e,#0e3a44)!important;color:#fff!important;opacity:1!important}.ai-drawer .ai-send:disabled{background:#9aa8b0!important;color:#fff!important;opacity:1!important}.ai-drawer .ai-quick button{background:#ffffffdb!important;color:var(--ai-ink)!important;border:1px solid var(--ai-line)!important}.ai-drawer .ai-follow{background:var(--ai-soft)!important;color:#334155!important;border:1px solid var(--ai-line)!important}.ai-drawer .ai-icon-btn{background:transparent!important;color:#fff!important}.ai-drawer .ai-icon-btn.solid{background:#ffffff24!important}@media(max-width:520px){.ai-drawer{width:100vw}.ai-fab{right:14px;bottom:14px}.ai-drawer-head{flex-wrap:wrap}.ai-month span{display:none}}.app-punch-toolbar.app-punch-toolbar{margin-bottom:14px}.app-punch-date{padding:8px 12px;border:1px solid var(--line, #e2e8f0);border-radius:8px;background:#fff;font-size:.88rem;font-family:inherit;color:var(--ink)}.app-punch-date:focus{outline:none;border-color:var(--accent-2)}.app-punch-gps{margin-left:auto}.app-punch-toolbar .person-combo{flex:1 1 320px;max-width:420px}.app-punch-site-board{display:flex;flex-direction:column;gap:14px}.app-punch-site-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}.app-punch-site-chips{display:flex;flex-wrap:wrap;gap:8px}.app-punch-site-chips>button{border:1px solid var(--line, #e2e8f0);background:#fff;color:#334155;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:650;cursor:pointer}.app-punch-site-chips>button.on{background:#0f172a;border-color:#0f172a;color:#fff}.app-punch-site-chips>button.on .muted{color:#ffffffb8}.app-punch-site-sort select{min-width:8rem}.app-punch-site-card{border:1px solid var(--line, #e2e8f0);border-radius:14px;background:#fff;overflow:hidden}.app-punch-site-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--line, #e2e8f0)}.app-punch-site-card-head h3{margin:0;font-size:1rem;font-weight:750;color:#0f172a}.app-punch-site-card .table-wrap{margin:0;border:0;border-radius:0}.app-punch-schedule{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;padding:12px 14px;margin-bottom:14px;background:#f1f5f9;border:1px solid var(--line, #e2e8f0);border-radius:10px}.app-punch-schedule>strong{width:100%;font-size:.9rem;color:#0f172a}.app-punch-schedule label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:#475569}.app-punch-schedule input[type=time],.app-punch-schedule input[type=number]{min-width:7rem;background:#fff}.app-punch-schedule .schedule-hint{flex:1 1 12rem;font-size:.78rem;line-height:1.35}.app-punch-form{max-width:32rem;margin-bottom:16px;display:grid;gap:10px}.app-punch-form h3{margin:0 0 4px}.inline-field{display:inline-flex;align-items:center;gap:8px;font-size:.85rem}.inline-field input[type=month]{background:var(--panel, #fff)}.blacklist-dialog .blacklist-dialog-body{display:grid;gap:12px;padding:4px 0 8px}.blacklist-dialog .blacklist-dialog-body p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.blacklist-dialog textarea{width:100%;min-height:4.5rem;resize:vertical}.blacklist-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;padding:10px 14px;border-radius:10px;background:#a0282814;border:1px solid rgba(160,40,40,.25);color:#7a1f1f;font-size:.88rem}.blacklist-banner strong{font-size:.82rem;letter-spacing:.04em}.worker-row.is-blacklisted td{background:#a0282808}.blacklist-log-panel .blacklist-log-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}.blacklist-log-list li{display:grid;grid-template-columns:9.5rem 5.5rem 6.5rem minmax(0,1fr);gap:8px 12px;padding:8px 10px;border-radius:8px;background:#f7fafb;font-size:.82rem}.blacklist-log-list time,.blacklist-log-who{color:var(--muted);font-variant-numeric:tabular-nums}.blacklist-log-action.is-add{color:#8a1f1f;font-weight:600}.blacklist-log-action.is-remove{color:#14606e;font-weight:600}.blacklist-log-reason{color:var(--ink)}@media(max-width:700px){.blacklist-log-list li{grid-template-columns:1fr;gap:2px}}.ui-modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:#0f172a7a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-sizing:border-box}.ui-modal-overlay.corner-tr{align-items:flex-start;justify-content:flex-end;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) 12px;background:#0f172a47;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.ui-modal-overlay~.ui-modal-overlay{z-index:10010;background:#0f172a52}.ui-modal-panel{width:min(560px,calc(100vw - 32px));max-height:min(94vh,880px);display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 22px 56px #0f283238;overflow:hidden}.ui-modal-panel.wide{width:min(820px,calc(100vw - 32px));max-height:min(94vh,960px)}.ui-modal-panel.xl{width:min(1840px,calc(100vw - 24px));max-height:min(98vh,1280px)}.ui-modal-panel.guide{width:min(920px,calc(100vw - 24px));max-height:min(96vh,1100px)}.ui-modal-panel.corner{width:min(420px,calc(100vw - 24px));max-height:min(86vh,720px);margin-top:4px;border-radius:14px;box-shadow:0 16px 40px #0f283247;animation:ui-corner-in .22s ease}@keyframes ui-corner-in{0%{opacity:0;transform:translate(12px,-8px)}to{opacity:1;transform:none}}.ui-modal-panel.corner .ui-modal-body,.ui-modal-panel.xl .ui-modal-body,.ui-modal-panel.guide .ui-modal-body{overflow:auto}.ui-modal-panel.guide .ui-modal-body{overflow:hidden;display:flex;flex-direction:column;padding-bottom:0}.ui-modal-panel.xl .trial-deck-modal{min-height:min(78vh,980px)}.ui-modal-panel.guide .trial-deck-modal{flex:1 1 auto;min-height:0;height:100%;display:flex;flex-direction:column;gap:0}.ui-modal-panel.wide:has(.avatar-upload-crop){width:min(960px,calc(100vw - 32px));max-height:min(96vh,980px)}.ui-modal-head,.drawer-head,.attn-edit-head,.manual-crop-frame-popup-head,.payroll-slip-head,.ai-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;padding:16px 22px;border-bottom:1px solid color-mix(in srgb,#000 18%,transparent);background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff}.drawer-head{margin:0!important;padding:16px 24px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.drawer-head-profile{display:flex;align-items:center;gap:14px}.drawer-head-profile .drawer-head-main{flex:1 1 auto;min-width:0;display:grid;gap:4px}.drawer-head-profile h3{margin:0;line-height:1.25}.drawer-head-sub{margin:0;font-size:.78rem;line-height:1.35;color:#ffffffd1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-profile-btn{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;cursor:pointer;margin:0}.drawer-profile-btn.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.drawer-profile-btn .worker-avatar{border-color:#ffffffb3;box-shadow:0 0 0 2px #0000001f;background:#fff}.drawer-profile-badge{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:999px;display:grid;place-items:center;background:#fff;color:var(--accent, #0e7490);border:1px solid rgb(14 116 144 / 25%);box-shadow:0 1px 3px #0f172a2e}.worker-avatar-upload-row{display:flex;align-items:stretch;gap:14px;margin-top:6px}.worker-avatar-upload-row>.worker-avatar{flex:0 0 auto;align-self:center}.worker-avatar-upload-main{flex:1 1 auto;min-width:0}.drawer.wide>.drawer-head,.card.drawer>.drawer-head{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.ui-modal-panel>.ui-modal-head{margin:0;border-radius:16px 16px 0 0}.attn-edit-head{align-items:flex-start;padding:16px 20px;border-radius:16px 16px 0 0}.manual-crop-frame-popup-head{flex-wrap:wrap;align-items:center;padding:12px 16px;border-radius:14px 14px 0 0}.payroll-slip-head{flex-wrap:wrap;align-items:flex-start;gap:16px 20px;padding:18px 0 16px;margin:0;border-radius:0}.payroll-slip.card.drawer>.payroll-slip-head,.card.drawer.slip>.payroll-slip-head{margin:0;padding:18px 28px 16px;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.ai-drawer-head{flex-wrap:wrap;margin:0;padding:14px 16px;border-radius:inherit}.ui-modal-head h3,.drawer-head h3,.attn-edit-head h3,.manual-crop-frame-popup-titleblock strong,.payroll-slip-head h3,.ai-drawer-head h2,.ai-brand-text h2{margin:0;font-size:1.12rem;font-weight:700;color:#fff;letter-spacing:-.01em;flex:1 1 auto;min-width:0}.attn-edit-head h3{margin:0 0 6px;font-size:1.08rem}.payroll-slip-head h3{font-size:1.35rem;letter-spacing:.01em;line-height:1.3}.manual-crop-frame-popup-titleblock strong{word-break:break-all;font-size:1rem}.attn-edit-sub,.manual-crop-frame-count,.manual-crop-frame-popup-sub,.payroll-slip-kicker,.payroll-slip-en,.ai-brand-text p{color:#ffffffc7!important}.attn-edit-sub strong{color:#fff!important;font-weight:650}.manual-crop-frame-count{background:#ffffff29!important;border:1px solid rgb(255 255 255 / 22%);color:#fff!important}.ui-modal-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0;padding:0;border:1px solid rgb(255 255 255 / 35%);border-radius:10px;background:#ffffff24;color:#fff;font-size:1.45rem;font-weight:500;line-height:1;cursor:pointer;box-shadow:none}.ui-modal-close:hover:not(:disabled){background:#ffffff3d;color:#fff;border-color:#ffffff8c}.ui-modal-close:disabled{opacity:.45;cursor:not-allowed}.ui-modal-close>span{display:block;margin-top:-2px}.manual-crop-frame-popup-head .manual-crop-auto-btn,.manual-crop-frame-popup-head .manual-crop-rotate-btns button{border-color:#ffffff59!important;background:#ffffff1f!important;color:#fff!important}.manual-crop-frame-popup-head .manual-crop-auto-btn:hover:not(:disabled),.manual-crop-frame-popup-head .manual-crop-rotate-btns button:hover:not(:disabled){background:#ffffff38!important}.ai-drawer-head .ai-month{color:#ffffffe0}.ai-drawer-head .ai-month input{background:#ffffff24;border-color:#ffffff59;color:#fff}.ai-drawer-head .ai-icon-btn{border-color:#ffffff59;background:#ffffff1f;color:#fff}.ai-drawer-head .ai-brand-mark{background:#ffffff38;border-color:#ffffff59}.payroll-slip-head .chip,.payroll-slip-head .payroll-slip-foreman{border-color:#ffffff4d;background:#ffffff24;color:#fff}.payroll-slip-head .chip.approved,.payroll-slip-head .chip.pending{color:#fff}.ui-modal-body{flex:1 1 auto;min-height:0;overflow:auto;padding:18px 22px 12px;box-sizing:border-box;-webkit-overflow-scrolling:touch}.ui-modal-body .ocr-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:start}.ui-modal-body .app-punch-form-fields{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.ui-modal-body .ocr-fields>label,.ui-modal-body .app-punch-form-fields>label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:#334155;min-width:0}.ui-modal-body .ocr-fields>label input,.ui-modal-body .ocr-fields>label select,.ui-modal-body .app-punch-form-fields>label input,.ui-modal-body .app-punch-form-fields>label select{font-weight:500;width:100%;box-sizing:border-box}.ui-modal-body .app-punch-form-fields .worker-combo-field{flex:1 1 auto;max-width:none;width:100%;min-width:0;font-weight:500}.ui-modal-body .app-punch-form-fields .person-combo-panel{z-index:40}.ui-modal-body .app-punch-form-fields .person-combo-list{max-height:240px}.ui-modal-body .app-punch-form-fields>.app-punch-inout{grid-column:1 / -1;margin:0;padding:12px 14px;border:1px solid var(--line, #e2e8f0);border-radius:12px;display:grid;gap:10px;background:#f8fafc}.ui-modal-body .app-punch-form-fields>.app-punch-inout>legend{padding:0 6px;font-size:.82rem;font-weight:700;color:#334155}.ui-modal-body .app-punch-form-fields>.app-punch-inout>label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:#334155}.ui-modal-body .app-punch-form-fields>.app-punch-inout>label.check-row{flex-direction:row;align-items:center;gap:8px;font-weight:650}.ui-modal-body .app-punch-form-fields>.app-punch-inout input[type=time]:disabled{opacity:.45;cursor:not-allowed}.ui-modal-body .ocr-fields>.registry-map-field,.ui-modal-body .ocr-fields>.ui-modal-actions,.ui-modal-body .ocr-fields>.error,.ui-modal-body .ocr-fields>.empty,.ui-modal-body .ocr-fields>p.error,.ui-modal-body .ocr-fields>.iam-span-2,.ui-modal-body .ocr-fields>.iam-acct-meta,.ui-modal-body .app-punch-form-fields>.ui-modal-actions{grid-column:1 / -1}.ui-modal-body .ocr-fields>label:has(input[placeholder=可選]),.ui-modal-body .ocr-fields>label:last-of-type{grid-column:1 / -1}.ui-modal-body .registry-map-field{margin-top:2px}.ui-modal-panel.wide .map-coord-picker{min-height:0}.ui-modal-panel.wide .map-coord-picker .map-coord-picker-map,.ui-modal-panel.wide .map-coord-picker .map-coord-picker-map .leaflet-container{min-height:320px;height:320px}.ui-modal-actions,.drawer-foot.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.drawer-foot.row .ui-modal-actions-left,.drawer-foot.row .ui-modal-actions-right{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.drawer-foot.row .ui-modal-actions-right{margin-left:auto}.ui-modal-actions{margin:10px -22px 0;padding:14px 22px 18px;border-top:1px solid var(--line, #e2e8f0);background:#fff}.ui-modal-actions>.ui-modal-actions-spacer,.drawer-foot.row>.ui-modal-actions-spacer{flex:1 1 auto;min-width:0}.drawer-foot.row>.ui-modal-actions-left,.drawer-foot.row>.ui-modal-actions-right{flex:0 0 auto}.ui-modal-actions>button,.drawer-foot.row>button,.drawer-foot.row>.ui-modal-actions-left button,.drawer-foot.row>.ui-modal-actions-right button{flex:0 0 auto;align-self:center;width:auto;min-width:5.5rem;height:auto;min-height:0;padding:8px 16px;font-size:.9rem;font-weight:600;line-height:1.25;border-radius:8px;margin-left:0}.ui-modal-actions>button.primary,.ui-modal-actions>button[type=submit],.drawer-foot.row>button.primary,.drawer-foot.row>button[type=submit],.drawer-foot.row>.ui-modal-actions-right button.primary{min-width:6rem;order:2}.ui-modal-actions>button.secondary,.drawer-foot.row>button.secondary{order:1;margin-right:auto}@media(max-width:560px){.ui-modal-body .ocr-fields{grid-template-columns:1fr}}.iam-page{display:grid;gap:18px;max-width:none;width:100%}.iam-page .toolbar{margin-bottom:0;align-items:flex-end}.iam-head{display:grid;gap:4px}.iam-head-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.iam-head h2{margin:0;font-size:1.45rem;font-weight:700;letter-spacing:-.025em}.iam-cta{flex-shrink:0;border-radius:10px;padding:10px 16px;box-shadow:var(--shadow-sm)}.iam-tabs{display:flex;gap:4px;margin:4px 0 0;border-bottom:1px solid var(--line)}.iam-tabs button{appearance:none;border:0;background:transparent;color:var(--muted);box-shadow:none;border-radius:0;padding:10px 14px 12px;font-weight:650;font-size:.92rem;position:relative;line-height:1.2}.iam-tabs button:hover:not(:disabled){color:var(--ink);background:transparent;filter:none;box-shadow:none;transform:none}.iam-tabs button.on{color:var(--accent);background:transparent;box-shadow:none}.iam-tabs button.on:hover:not(:disabled){color:var(--accent);background:transparent}.iam-tabs button.on:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}.iam-lead{margin:6px 0 0;color:var(--muted);font-size:.92rem;max-width:42rem}.iam-banner{padding:12px 16px;border-radius:var(--radius-md);font-weight:600}.iam-banner.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.iam-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.iam-stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 18px;display:grid;gap:4px;box-shadow:var(--shadow-sm);color:var(--muted);font-size:.82rem}.iam-stat:first-child{border-color:#bae6fd;background:linear-gradient(180deg,#f0f9ff,var(--panel))}.iam-stat:nth-child(2){border-color:#bbf7d0;background:linear-gradient(180deg,#f0fdf4,var(--panel))}.iam-stat-n{font-size:1.55rem;font-weight:800;letter-spacing:-.03em;color:var(--ink)}.iam-card h3{margin:0 0 6px;font-size:1.05rem}.iam-card-sub{margin:0 0 16px}.iam-card-title .iam-card-sub{margin:4px 0 0}.iam-card-head{display:flex;gap:12px 16px;align-items:flex-end;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.iam-card-title{min-width:12rem;flex:1}.iam-card-head h3{margin:0}.iam-search{min-width:12rem;flex:1;max-width:280px}.iam-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.iam-seg{display:inline-flex;flex-wrap:wrap;gap:8px;padding:0;border:0;background:transparent}.iam-seg button,.iam-type-tabs .view-mode-tab,.iam-audit-toolbar .view-mode-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-weight:650;font-size:.82rem;color:var(--ink-soft);box-shadow:none}.iam-seg button:hover:not(:disabled):not(.on),.iam-type-tabs .view-mode-tab:hover:not(:disabled):not(.on),.iam-audit-toolbar .view-mode-tab:hover:not(:disabled):not(.on){filter:none;transform:none;background:#fff;box-shadow:none;border-color:var(--line-strong)}.iam-seg button.on,.iam-type-tabs .view-mode-tab.on,.iam-audit-toolbar .view-mode-tab.on{border-color:var(--accent-2);background:var(--accent-soft);color:var(--accent);box-shadow:none}.iam-seg button.on:hover:not(:disabled),.iam-type-tabs .view-mode-tab.on:hover:not(:disabled),.iam-audit-toolbar .view-mode-tab.on:hover:not(:disabled){filter:none;transform:none;background:var(--accent-soft);color:var(--accent);box-shadow:none}.iam-audit-toolbar{margin:4px 0 16px}.iam-audit-date{width:auto;min-width:10.5rem;border-radius:999px;padding:8px 14px}.iam-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.iam-form{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.iam-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end}.iam-chips{display:flex;flex-wrap:wrap;gap:8px}.iam-chip{border:1px solid var(--line);background:var(--surface, #f8fafc);border-radius:999px;padding:8px 14px;font-weight:650;cursor:pointer}.iam-chip:hover{border-color:#0e7490;color:#0e7490}.iam-cred{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;padding:12px 14px;margin-bottom:14px;border-radius:var(--radius-md);background:#ecfeff;border:1px solid #a5f3fc;color:#155e75}.iam-cred code{font-weight:700}.iam-table-wrap{overflow:auto}.iam-table{width:100%;table-layout:fixed}.iam-table th,.iam-table td{vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.iam-nowrap{white-space:nowrap}.iam-accounts-table col.iam-col-user{width:18%}.iam-accounts-table col.iam-col-role{width:11%}.iam-accounts-table col.iam-col-bind{width:15%}.iam-accounts-table col.iam-col-perm{width:18%}.iam-accounts-table col.iam-col-time{width:14%}.iam-accounts-table col.iam-col-act{width:4.75rem}.iam-audit-table col.iam-col-time{width:16%}.iam-audit-table col.iam-col-who{width:12%}.iam-audit-table col.iam-col-action{width:14%}.iam-audit-table col.iam-col-type{width:10%}.iam-audit-table col.iam-col-entity{width:16%}.iam-table th:last-child,.iam-table td:last-child{text-align:right}.iam-audit-table th:last-child,.iam-audit-table td:last-child,.iam-accounts-table th:nth-child(-n+6),.iam-accounts-table td:nth-child(-n+6){text-align:left}.iam-perm-cell{color:var(--muted);font-size:.82rem}.iam-accounts-table td.row-actions{overflow:visible}.iam-row-actions{display:flex;gap:10px;justify-content:flex-end;white-space:nowrap}.iam-create-panel{width:min(640px,calc(100vw - 32px))}.iam-form-modal{position:relative;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.iam-acct-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0;padding:14px 16px;border:1px solid var(--line, #e2e8f0);border-radius:12px;background:#f8fafc}.iam-acct-meta div{display:grid;gap:4px;min-width:0}.iam-acct-meta dt{color:var(--muted);font-size:.75rem;font-weight:650}.iam-acct-meta dd{margin:0;display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;font-weight:650;word-break:break-word}.iam-acct-meta code{font-size:.86rem;font-weight:700}.iam-acct-bind,.iam-acct-pw{grid-column:1 / -1}.iam-acct-pw{padding-top:8px;border-top:1px solid var(--line, #e2e8f0)}.iam-pw-value{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:10px}.iam-pw-mask{letter-spacing:.12em;color:#334155}.iam-pw-toggle{font-size:.82rem}.iam-pw-hint{margin:2px 0 0;font-size:.75rem;font-weight:500;color:var(--muted);line-height:1.4}.iam-span-2{grid-column:1 / -1}.ui-modal-body .iam-field-label,.iam-field-label{display:block;font-weight:600;font-size:.82rem;margin-bottom:6px;color:#334155}.iam-role-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.iam-role-hint{margin:0 0 8px;font-size:.82rem;line-height:1.4}.iam-role-pick{text-align:left;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:12px;padding:10px 12px;cursor:pointer;display:grid;gap:4px;box-shadow:none}.iam-role-pick strong{font-size:.92rem;color:#0f172a}.iam-role-pick small{color:#475569;font-weight:500;line-height:1.35}.iam-role-pick:hover:not(:disabled){filter:none;background:#f1f5f9;box-shadow:none;border-color:#94a3b8}.iam-role-pick.on{border-color:#0f766e;background:#ccfbf1;color:#134e4a}.iam-role-pick.on strong{color:#134e4a}.iam-role-pick.on small{color:#0f766e}.iam-role-pick.on:hover:not(:disabled){background:#99f6e4;filter:none;box-shadow:none}.iam-role-pick:disabled{cursor:not-allowed;opacity:.55}.iam-role-pick.on:disabled{opacity:1}.iam-matrix-wrap{overflow:auto}.iam-matrix th,.iam-matrix td.iam-matrix-cell{text-align:center;width:5.5rem}.iam-matrix th:last-child,.iam-matrix td:last-child{text-align:center}.iam-matrix th:first-child,.iam-matrix td:first-child{text-align:left;width:12rem;position:sticky;left:0;background:var(--panel);z-index:1}.iam-role-head{display:flex;flex-direction:column;align-items:center;gap:4px}.iam-group-row td{background:var(--surface);font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:14px}.iam-audit-filters{margin-bottom:8px}.iam-audit-dates{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end}.iam-audit-dates label{display:grid;gap:4px;font-size:.8rem;color:var(--muted)}.iam-audit-detail{font-size:.82rem;color:var(--ink-soft);word-break:break-word}.iam-audit-act{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:700;background:#e2e8f0;color:#334155}.iam-audit-act-login{background:#dcfce7;color:#166534}.iam-audit-act-login_failed{background:#fee2e2;color:#b91c1c}.iam-audit-act-account{background:#e0f2fe;color:#075985}.iam-perm-id{font-size:.72rem}.iam-matrix-cell input{width:18px;height:18px}.worker-acct{display:grid;gap:16px}.worker-acct-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0}.worker-acct-dl div{display:grid;gap:4px}.worker-acct-dl dt{color:var(--muted);font-size:.8rem}.worker-acct-dl dd{margin:0;display:flex;gap:10px;align-items:baseline;font-weight:650}.worker-acct-reset{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.worker-acct-reset label{flex:1;min-width:12rem}.iam-role{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;background:#e2e8f0;color:#334155}.iam-role-worker{background:#dcfce7;color:#166534}.iam-role-admin,.iam-role-owner{background:#e0f2fe;color:#075985}.iam-role-foreman{background:#ffedd5;color:#c2410c}.iam-form-modal .iam-card-sub{grid-column:1 / -1;margin-bottom:4px}.iam-form-modal .ui-modal-actions{grid-column:1 / -1;margin-top:8px}.list-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 4px 0}.list-pager-btns{display:flex;gap:8px}@media(max-width:720px){.iam-stats,.iam-form,.iam-acct-meta,.iam-role-picks{grid-template-columns:1fr}.iam-head-top{flex-wrap:wrap}}.feedback-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.feedback-detail-title{margin:0}.feedback-detail-body{white-space:pre-wrap}.feedback-image-list{display:flex;flex-wrap:wrap;gap:10px}.feedback-image-chip{display:grid;gap:6px;justify-items:center;width:92px}.feedback-image-chip img{width:92px;height:92px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line)}.feedback-rec-live,.feedback-rec-done{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.feedback-rec-dot{width:10px;height:10px;border-radius:50%;background:#e11d48;animation:feedback-rec-blink 1.1s ease-in-out infinite}@keyframes feedback-rec-blink{0%,to{opacity:1}50%{opacity:.25}}.feedback-rec-done audio{height:36px}.feedback-timeline{display:grid;gap:10px;margin:0;padding:0;list-style:none}.feedback-timeline-item{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:var(--panel)}.feedback-timeline-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.feedback-timeline-item p{margin:0;white-space:pre-wrap}.trial-hub{max-width:980px;padding:8px 4px 56px;animation:trial-fade-in .35s ease-out}@keyframes trial-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.trial-hub-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.trial-progress{display:grid;gap:4px;min-width:min(280px,100%)}.trial-progress-checks{font-size:.82rem}.trial-check-prog{margin:4px 0 0;font-size:.8rem;font-weight:650;color:var(--muted, #667)}.trial-check-prog.is-full{color:#0f766e}.trial-session-pill{display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--accent-2);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-bright) 28%,var(--line));padding:3px 10px;border-radius:999px}.trial-hub-head h2{margin:0 0 6px;font-size:1.55rem;letter-spacing:-.02em;color:var(--accent)}.trial-hub-head p{margin:0;max-width:36em;line-height:1.45}.trial-progress{min-width:200px;display:grid;gap:8px;font-size:.88rem;color:var(--muted)}.trial-progress-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}.trial-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent-bright));border-radius:inherit;transition:width .45s ease}.trial-howto{margin:0 0 18px;padding:14px 16px;border-left:3px solid var(--accent-bright);background:linear-gradient(90deg,var(--accent-soft),transparent)}.trial-howto h3{margin:0 0 8px;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2)}.trial-howto ol{margin:0;padding-left:1.15rem;display:grid;gap:4px;color:var(--ink, #1e293b);font-size:.92rem;line-height:1.45}.trial-active-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--accent-bright) 35%,var(--line));background:var(--panel);box-shadow:0 1px color-mix(in srgb,var(--accent) 6%,transparent);margin-bottom:22px;font-size:.95rem;animation:trial-strip-in .4s ease}@keyframes trial-strip-in{0%{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:none}}.trial-active-strip.idle{border-style:dashed;border-color:var(--line-strong);color:var(--muted);box-shadow:none}.trial-active-strip strong{font-weight:600;color:var(--accent)}.trial-wave{margin-bottom:28px}.trial-wave-head{margin-bottom:12px}.trial-wave-head h3{margin:0 0 2px;font-size:1.05rem;font-weight:650;color:var(--accent)}.trial-wave-head p{margin:0;font-size:.88rem;color:var(--muted)}.trial-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}.trial-step{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:14px 14px 14px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);transition:border-color .2s ease,background .2s ease}.trial-step.is-focus{border-color:color-mix(in srgb,var(--accent-bright) 55%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--accent-soft) 70%,#fff),var(--panel))}.trial-step.status-done{border-color:color-mix(in srgb,#86efac 50%,var(--line))}.trial-step-index{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:.85rem;font-weight:700;color:var(--accent);background:var(--bg-subtle);border:1px solid var(--line)}.trial-step.status-done .trial-step-index{color:#15803d;background:#ecfdf5;border-color:#bbf7d0}.trial-step.is-focus .trial-step-index{color:#fff;background:linear-gradient(180deg,var(--accent-2),var(--accent));border-color:transparent}.trial-step-body{min-width:0;display:grid;gap:8px}.trial-step-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.trial-step-top strong{display:block;font-size:1rem;color:var(--accent);margin-bottom:2px}.trial-step-summary{margin:0;font-size:.9rem;color:var(--muted);line-height:1.4}.trial-badge{flex-shrink:0;font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--bg-subtle);color:var(--muted)}.trial-badge.active{border-color:color-mix(in srgb,var(--accent-bright) 40%,var(--line));color:var(--accent-2);background:var(--accent-soft)}.trial-badge.done{border-color:#bbf7d0;color:#15803d;background:#ecfdf5}.trial-resource{margin:0;font-size:.84rem;color:var(--accent-2);background:var(--accent-soft);padding:6px 10px;border-radius:var(--radius-sm)}.trial-step-live{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:.88rem;font-variant-numeric:tabular-nums;color:var(--accent)}.trial-live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-bright);animation:trial-pulse 1.2s ease-in-out infinite}@keyframes trial-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.trial-gpu{color:var(--muted);font-size:.82rem}.trial-deck .linkish{border:none;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:2px;padding:6px 4px;cursor:pointer;font:inherit;font-size:.85rem}.trial-deck .linkish:hover{color:var(--accent-2)}.trial-card-main{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:14px;align-items:start}.trial-steps-title{margin:0 0 8px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-2)}.trial-detail-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}.trial-detail-steps li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start}.trial-detail-steps li>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;color:var(--accent-2);background:var(--accent-soft)}.trial-detail-steps strong{display:block;font-size:.88rem;color:var(--ink)}.trial-detail-steps p{margin:2px 0 0;font-size:.84rem;line-height:1.45;color:var(--muted)}.trial-card-side{display:grid;gap:8px;min-width:0}.trial-shot{margin:0;max-width:min(100%,720px);margin-inline:auto;display:grid;gap:8px;justify-items:center}.trial-shot-toolbar{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.trial-shot-badge{margin:0;padding:4px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-2);font-size:.75rem;font-weight:650;text-align:center}.trial-shot-zoom{display:inline-flex;align-items:center;gap:6px;padding:3px 6px;border-radius:999px;background:color-mix(in srgb,var(--surface-2, #eef2f5) 90%,#fff);border:1px solid var(--line)}.trial-zoom-slider{width:min(140px,28vw);height:28px;margin:0;accent-color:var(--accent);cursor:pointer}.trial-zoom-slider:disabled{opacity:.4;cursor:not-allowed}.trial-shot-frame{width:100%;overflow:auto;max-height:min(48vh,520px);min-height:220px;height:min(48vh,520px);background:linear-gradient(160deg,#e8eef3,#f4f7fa);border:1px solid var(--line);border-radius:14px;padding:8px;display:grid;place-items:center;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch}.trial-zoom-btn{min-width:32px;height:32px;padding:0 8px;border:none;border-radius:999px;background:#fff;color:var(--ink);font-size:1rem;font-weight:650;line-height:1;cursor:pointer;box-shadow:0 1px 2px #0f283214}.trial-zoom-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-2)}.trial-zoom-btn:disabled{opacity:.4;cursor:not-allowed}.trial-zoom-pct{min-width:3.2rem;text-align:center;font-size:.78rem;color:var(--muted)}.trial-zoom-reset{font-size:.72rem;font-weight:600;padding:0 10px}.trial-shot-frame.is-zoomed{cursor:grab}.trial-shot-img{display:block;width:auto;max-width:100%;max-height:100%;height:auto;object-fit:contain;background:#fff;border-radius:6px;-webkit-user-select:none;user-select:none;image-rendering:auto}.trial-shot-missing{margin:0;padding:28px 10px;text-align:center;font-size:.85rem}.trial-shot figcaption{margin:0;font-size:.75rem;line-height:1.35;color:var(--muted);text-align:center}.trial-report{display:grid;gap:8px;justify-items:start}.trial-report-form{width:100%;display:grid;gap:8px}.trial-report-form p{margin:0;font-size:.8rem;color:var(--muted);line-height:1.4}.trial-report-form textarea{width:100%;min-height:72px;resize:vertical;font:inherit;padding:8px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink)}.trial-report-file{display:grid;gap:4px;font-size:.78rem;color:var(--ink-soft)}.trial-report-file input{font:inherit;font-size:.78rem}.trial-report-sent{color:var(--ok)!important;font-weight:650}@media(max-width:900px){.trial-card-main{grid-template-columns:1fr}}.trial-phase{margin:8px 0 0;font-size:.88rem;color:var(--accent-2)}.trial-flow-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.trial-flow-group{list-style:none;margin:8px 0 0;padding:0}.trial-flow-group-title{margin:0;padding:4px 2px;font-size:.82rem;font-weight:650;letter-spacing:.02em;color:var(--muted, #667)}.trial-flow-row.is-subtask{margin-left:10px;border-left:2px solid color-mix(in srgb,var(--accent, #2a6) 35%,transparent);padding-left:8px}.trial-checklist{margin:12px 0 4px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--border, #ccc) 80%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface-2, #f6f7f8) 88%,transparent)}.trial-checklist h4{margin:0 0 4px;font-size:1rem}.trial-checklist-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.trial-checklist-list label{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;cursor:pointer;font-size:.92rem;line-height:1.35}.trial-checklist-list li.is-verify{padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#c97820 12%,transparent);border:1px solid color-mix(in srgb,#c97820 28%,transparent)}.trial-check-kind{display:block;font-style:normal;font-size:.72rem;font-weight:650;letter-spacing:.03em;color:var(--muted, #667);margin-bottom:2px}.trial-checklist-list li.is-verify .trial-check-kind{color:#8a4b00}.trial-flow-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}.trial-flow-actions{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0}.trial-flow-report,.trial-flow-start{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;white-space:nowrap;padding-inline:14px}.trial-flow-report{font-size:.86rem}.trial-flow-start{box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 28%,transparent)}.trial-btn-ico{flex:0 0 auto;display:block}.trial-flow-row.is-locked .trial-flow-start{opacity:.45;box-shadow:none}button.trial-flow{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:linear-gradient(180deg,#fff,#f7fbfc);color:var(--ink);border:1px solid color-mix(in srgb,var(--accent) 12%,var(--line));border-radius:16px;box-shadow:0 8px 20px #0f28320d;padding:16px 18px;font-weight:500}button.trial-flow:hover:not(:disabled){filter:none;transform:none;border-color:color-mix(in srgb,var(--accent-bright) 55%,var(--line));box-shadow:var(--shadow-sm)}button.trial-flow.is-locked,button.trial-flow.is-locked:disabled{opacity:1;cursor:not-allowed;background:#f3f5f7;color:#8b95a5;box-shadow:none}button.trial-flow.is-locked strong,button.trial-flow.is-locked .trial-letter{color:#8b95a5}button.trial-flow.is-locked .trial-flow-copy p,button.trial-flow.is-locked .trial-dep,button.trial-flow.is-locked .trial-flow-copy p.trial-dep{color:#9aa3ad}button.trial-flow.is-focus{border-color:color-mix(in srgb,var(--accent-bright) 55%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--accent-soft) 70%,#fff),var(--panel))}.trial-letter{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:.85rem;font-weight:700;color:var(--accent);background:var(--bg-subtle);border:1px solid var(--line)}button.trial-flow.status-done .trial-letter{color:#15803d;background:#ecfdf5;border-color:#bbf7d0}.trial-flow-copy{min-width:0;display:grid;gap:2px}.trial-flow-copy strong{font-size:1rem;color:var(--accent)}.trial-flow-copy p{margin:0;font-size:.88rem;line-height:1.4;color:var(--muted);font-weight:450}.trial-dep,.trial-flow-copy p.trial-dep{margin:4px 0 0;font-size:.8rem;color:var(--warn);font-weight:650}.trial-flow-time{color:var(--accent)!important;font-variant-numeric:tabular-nums}.trial-deck-back{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:16px;background:#0f172a7a}.trial-deck{width:min(1280px,calc(100vw - 32px));max-height:min(96vh,1200px);overflow:auto;background:#fff;color:var(--ink);border-radius:16px;padding:18px 18px 16px;box-shadow:var(--shadow-md);animation:trial-deck-in .28s ease}@keyframes trial-deck-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.trial-deck-head{display:flex;align-items:center;gap:10px}.trial-deck-head h3{margin:0;flex:1;min-width:0;font-size:1.15rem;color:var(--accent)}.trial-deck-summary{margin:10px 0 0;color:var(--muted);line-height:1.45}.trial-slide{margin-top:14px;animation:trial-slide-in .28s ease}@keyframes trial-slide-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}.trial-slide-progress{margin:6px 0 12px}.trial-slide h4{margin:0 0 6px;font-size:1.05rem;color:var(--accent)}.trial-slide>p{margin:0 0 12px;line-height:1.5;color:var(--ink)}.trial-deck-footer{display:flex;justify-content:center;align-items:center;gap:12px;flex:0 0 auto;margin:0;padding:10px 0 14px;background:#fff;border-top:1px solid color-mix(in srgb,var(--line) 80%,transparent);z-index:2}.trial-footer-navs{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--surface-2, #eef2f5) 88%,#fff);border:1px solid var(--line)}.trial-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:112px;height:40px;padding:0 14px;border:none;border-radius:999px;background:#fff;color:var(--ink);font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 1px 3px #0f28321a}.trial-nav-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-2)}.trial-nav-btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.trial-nav-ico{font-size:1.35rem;font-weight:500;line-height:1;translate:0 -1px}.trial-deck-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:start;flex:0 0 auto;margin:0 0 8px;padding-bottom:10px;background:#fff;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);z-index:2}.trial-deck-scroll{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:4px 2px 12px;display:grid;gap:10px;align-content:start}.trial-deck-top-copy{min-width:0}.trial-deck-top-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;justify-self:end;max-width:min(100%,420px)}.trial-deck-cta-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:8px;max-width:100%}.trial-deck-cta-row .trial-flow-report,.trial-deck-cta-row .trial-footer-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 1 auto;min-width:0;text-align:center;white-space:nowrap}.trial-dev-peek{width:100%;margin:0;text-align:right;color:#8a4b00}.trial-deck-quiet{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 10px;margin:0;padding:0;border:none}.trial-deck-quiet .linkish{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:none;background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;font-size:.82rem;font-weight:600;text-decoration:none;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 28%,transparent)}.trial-deck-quiet .linkish:hover{filter:brightness(1.05);color:#fff}.trial-deck-quiet .linkish:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.trial-deck-topbar{grid-template-columns:1fr}.trial-deck-top-actions{align-items:stretch;width:100%}.trial-deck-cta-row{flex-wrap:wrap;justify-content:flex-start}.trial-deck-quiet{justify-content:flex-start}.trial-footer-navs{width:100%}.trial-nav-btn{flex:1}}@media(max-width:640px){.trial-hub-head{align-items:stretch}.trial-progress{min-width:0;width:100%}.trial-step{grid-template-columns:28px 1fr;gap:10px}.trial-step-index{width:28px;height:28px;font-size:.75rem}.trial-flow-row{grid-template-columns:1fr}.trial-flow-actions{width:100%;flex-direction:row}.trial-flow-start,.trial-flow-report{flex:1;width:auto}button.trial-flow{grid-template-columns:40px minmax(0,1fr)}button.trial-flow .trial-badge{grid-column:2;justify-self:start}.trial-deck{padding:14px}.trial-deck-head{align-items:flex-start}}.trial-deck-modal{display:flex;flex-direction:column;gap:0;min-height:0}.trial-deck-modal .trial-deck-footer{margin-top:0}.trial-deck-modal .trial-slide h4{margin:8px 0 4px}.trial-deck-modal .trial-slide>p{margin:0 0 8px}.trial-confirm-complete p{margin:0;line-height:1.5}.trial-confirm-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.trial-confirm-actions .secondary,.trial-confirm-actions .primary{display:inline-flex;align-items:center;gap:6px}.trial-log-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto}.trial-log-filter{display:inline-flex;align-items:center;gap:8px;font-size:.88rem}.trial-log-filter select{min-width:160px}.trial-log-table{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fff}.trial-log-table table{margin:0}.trial-log-table thead th{background:color-mix(in srgb,var(--accent) 8%,#f4f7f9);font-size:.82rem;font-weight:650;white-space:nowrap}.trial-log-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.trial-log-when{white-space:nowrap;font-size:.84rem}.trial-log-user{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef2f5;font-size:.82rem}.trial-log-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;max-width:320px}.trial-tag{display:inline-flex;align-items:center;max-width:100%;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:650;line-height:1.25;border:1px solid transparent}.trial-tag-group.is-base{background:#e8f1ff;color:#1d4f91;border-color:#c5d8f5}.trial-tag-group.is-worker{background:#e7f7ef;color:#176b45;border-color:#b9e6cf}.trial-tag-group.is-office{background:#f3eaff;color:#5b2d8e;border-color:#dcc7f3}.trial-tag-group.is-pay{background:#fff3e0;color:#8a4b00;border-color:#f0d2a3}.trial-tag-group.is-other{background:#eef2f5;color:#445}.trial-tag-wave{background:color-mix(in srgb,var(--accent) 14%,#fff);color:var(--accent-2);border-color:color-mix(in srgb,var(--accent) 28%,transparent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.trial-tag-task{background:#f6f8fa;color:var(--ink);border-color:var(--line);font-weight:600}.trial-tag-action{background:#eef2f5;color:#334}.trial-tag-action.is-complete{background:#e7f7ef;color:#176b45}.trial-tag-action.is-accept{background:color-mix(in srgb,var(--accent) 16%,#fff);color:var(--accent-2)}.trial-tag-action.is-stop{background:#fdecea;color:#9b2c2c}.trial-tag-action.is-report{background:#fff3e0;color:#8a4b00}.trial-tag-action.is-open{background:#e8f1ff;color:#1d4f91}.trial-log-table td.trial-log-detail{min-width:180px}.trial-log-detail .muted{font-size:.8rem;margin-top:2px}.assist-fab{position:fixed;left:auto;top:auto;z-index:80;width:52px;height:52px;border-radius:999px;border:none;cursor:grab;display:grid;place-items:center;font-size:1.35rem;font-weight:700;color:#fff;background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent);touch-action:none;-webkit-user-select:none;user-select:none}.assist-fab:active{cursor:grabbing}.assist-fab span{line-height:1;pointer-events:none}.trial-filter-tags{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}.trial-filter-tag{appearance:none;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);background:#fff;color:var(--ink);border-radius:999px;min-height:36px;padding:0 16px;font-size:.88rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #0f28320f}.trial-filter-tag:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.trial-filter-tag.is-active{background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#fff;border-color:transparent;box-shadow:0 6px 14px color-mix(in srgb,var(--accent) 30%,transparent)}.feedback-rec-err{display:grid;gap:8px;justify-items:start}.feedback-rec-err .error{margin:0}
