:root{--green:#173f33;--green2:#245c4a;--green3:#e9f2ed;--gold:#c8a94f;--gold2:#f5efdc;--ink:#17211d;--muted:#66746e;--line:#dfe7e2;--bg:#f4f7f5;--white:#fff;--danger:#b83b39;--danger-bg:#fbe9e8;--warn:#9b6b00;--warn-bg:#fff4d6;--blue:#2f6da1;--blue-bg:#e9f2fb;--shadow:0 10px 35px rgba(18,55,42,.08);--radius:18px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.hidden{display:none!important}.public-header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:12px}.brand-logo-box{width:56px;height:46px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.brand-logo{max-width:56px;max-height:46px;object-fit:contain;display:block}.sidebar .brand-logo-box{width:52px}.sidebar .brand-logo{max-width:52px;max-height:44px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}.brand-mark{width:46px;height:46px;border-radius:13px;background:linear-gradient(145deg,var(--green),var(--green2));color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-1px;box-shadow:0 8px 18px rgba(23,63,51,.18)}.brand strong{display:block;color:var(--green);font-size:14px}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.brand.compact{margin-bottom:20px}.public-app{min-height:calc(100vh - 76px)}.public-view{display:none}.public-view.active{display:block}.hero-grid{max-width:1200px;margin:auto;padding:64px 28px 80px;display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}.hero-copy{padding:48px 0}.eyebrow{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--green2);font-weight:800}.hero-copy h1{font-size:48px;line-height:1.08;letter-spacing:-.035em;color:var(--green);margin:14px 0 18px}.hero-copy>p{font-size:17px;line-height:1.7;color:var(--muted);max-width:610px}.hero-points{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:30px 0}.hero-points div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.hero-points b{font-size:24px;color:var(--green);display:block}.hero-points span{font-size:12px;color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.form-card{padding:28px}.step-label{font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--gold);margin-bottom:8px}.form-card h2{margin:0 0 16px;color:var(--green)}.segmented{background:#eef3f0;padding:5px;border-radius:12px;display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:24px}.seg{border:0;border-radius:9px;padding:12px;background:transparent;font-weight:700;color:var(--muted)}.seg.active{background:#fff;color:var(--green);box-shadow:0 3px 12px rgba(0,0,0,.06)}form label{display:block;font-size:12px;font-weight:700;color:#3b4a44;margin-bottom:14px}input,textarea,select{width:100%;border:1px solid #cfdad4;background:#fff;border-radius:10px;padding:11px 12px;margin-top:6px;color:var(--ink);outline:none;transition:.2s}input:focus,textarea:focus,select:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(36,92,74,.11)}input:disabled{background:#f1f4f2;color:#7d8984}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1fr 1fr}.dynamic-fields{padding-top:4px}.optional{font-weight:500;color:var(--muted)}.field-note{font-size:11px;line-height:1.5;color:var(--muted);background:#f5f7f6;border-radius:9px;padding:10px 12px;margin:-3px 0 14px}.notice{background:var(--gold2);border:1px solid #e9d89c;color:#6f5a1d;border-radius:14px;padding:14px 16px;line-height:1.5;font-size:13px}.notice.warning{background:var(--warn-bg);color:#735100;margin:14px 0}.urgency-box{display:flex;gap:12px;align-items:start;background:#fff3d9;border:1px solid #efd78d;border-radius:12px;padding:12px 14px;margin-bottom:14px}.urgency-box strong{color:#8c5f00;font-size:12px}.urgency-box span{font-size:12px;color:#725f35;line-height:1.4}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:800;transition:.18s}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:#0e3328}.btn-secondary{background:#edf2ef;color:var(--green);border:1px solid var(--line)}.btn-ghost{background:transparent;color:var(--green);border:1px solid #ccd8d2}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:#b88109;color:#fff}.btn-block{width:100%}.text-btn{border:0;background:none;color:var(--green2);font-weight:800}.centered-view{min-height:calc(100vh - 76px);place-items:center;padding:30px}.centered-view.active{display:grid}.success-card{max-width:560px;padding:44px;text-align:center}.success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--green3);color:var(--green);font-size:30px;font-weight:900;margin:0 auto 18px}.success-card h2{font-size:30px;color:var(--green);margin:8px}.status-pill{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.05em}.status-pill.waiting{background:var(--warn-bg);color:var(--warn)}.status-pill.approved{background:var(--green3);color:var(--green2)}.status-pill.inside{background:var(--blue-bg);color:var(--blue)}.status-pill.completed{background:#edf0ef;color:#52615b}.status-pill.rejected,.status-pill.cancelled,.status-pill.expired{background:var(--danger-bg);color:var(--danger)}.status-pill.revision{background:#fff0d6;color:#9a6500}.success-card p{color:var(--muted);line-height:1.65}.narrow-wrap{max-width:760px;margin:auto;padding:50px 24px}.narrow-wrap .card{padding:28px}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:rgba(11,26,21,.56);backdrop-filter:blur(4px)}.modal-card{position:relative;z-index:1;width:min(520px,95vw);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:28px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.visit-modal-card{width:min(920px,96vw)}.icon-btn{border:0;background:#f1f4f2;width:36px;height:36px;border-radius:10px;font-size:22px}.icon-btn.close{position:absolute;right:16px;top:16px}.demo-box{margin-top:15px;background:#f5f7f6;color:var(--muted);padding:12px;border-radius:10px;font-size:12px;line-height:1.5}
.internal-app{height:100vh;display:grid;grid-template-columns:260px 1fr;background:#f2f5f3}.sidebar{background:#112f27;color:#dfeae5;display:flex;flex-direction:column;padding:18px 14px;min-height:100vh}.sidebar-brand{padding:4px 6px 22px;border-bottom:1px solid rgba(255,255,255,.09)}.sidebar .brand-mark{background:var(--gold);color:var(--green)}.sidebar .brand strong{color:#fff}.sidebar .brand span{color:#9fb6ac}.sidebar nav{padding-top:18px;display:flex;flex-direction:column;gap:4px}.nav-label{font-size:9px;letter-spacing:.16em;color:#759388;font-weight:800;padding:18px 11px 7px}.nav-item{display:flex;gap:11px;align-items:center;border:0;background:transparent;color:#b9ccc4;padding:11px 12px;border-radius:10px;text-align:left;font-weight:700}.nav-item span{width:20px;text-align:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.09);color:#fff}.sidebar-footer{margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.09)}.user-mini{font-size:12px;margin-bottom:10px;color:#c8dbd2}.user-mini b{color:#fff;display:block;margin-bottom:2px}.sidebar .btn-ghost{color:#d7e5df;border-color:rgba(255,255,255,.15)}.workspace{min-width:0;overflow:auto}.workspace-header{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 30px;position:sticky;top:0;z-index:20}.workspace-header h1{font-size:24px;margin:3px 0 0;color:var(--green)}.header-actions{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.live-dot{width:8px;height:8px;border-radius:50%;background:#2c9e67;box-shadow:0 0 0 5px rgba(44,158,103,.12)}.app-page{display:none;padding:26px 30px 50px}.app-page.active{display:block}.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 5px 20px rgba(18,55,42,.04);position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:5px;inset:0 auto 0 0;background:#d7e3dd}.metric.urgent:after{background:var(--gold)}.metric.inside:after{background:#4b86b5}.metric span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.metric strong{display:block;font-size:30px;color:var(--green);margin:7px 0 2px}.metric small{color:#8a9691}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.dashboard-grid .card{padding:20px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.card-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:14px}.card-head h3{margin:4px 0 0;color:var(--green);font-size:17px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:10px 9px;border-bottom:1px solid var(--line);color:#74817b;font-size:10px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.data-table td{padding:11px 9px;border-bottom:1px solid #edf1ef;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcfb}.urgent-tag{background:#fff1ce;color:#946300;border-radius:999px;padding:4px 7px;font-weight:900;font-size:9px;white-space:nowrap}.type-tag{font-size:9px;background:#edf2ef;color:#53635c;border-radius:999px;padding:4px 7px;font-weight:800;white-space:nowrap}.plate{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:900;letter-spacing:.04em;font-size:13px}.empty-table{padding:28px;text-align:center;color:var(--muted);font-size:12px}.inside-list{display:flex;flex-direction:column;gap:10px}.inside-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfb}.inside-item b{display:block;color:var(--green);font-size:13px}.inside-item span{font-size:11px;color:var(--muted)}.page-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.page-toolbar h3{font-size:22px;color:var(--green);margin:0 0 5px}.page-toolbar p{margin:0;color:var(--muted);font-size:13px}.filter-chip{background:var(--gold2);border:1px solid #eadba8;color:#755e1a;padding:9px 12px;border-radius:999px;font-size:11px;font-weight:700}.table-card{padding:10px 14px}.search-row{display:flex;gap:8px}.search-row input{width:280px;margin:0}.search-row select{width:170px;margin:0}.scan-layout{display:grid;grid-template-columns:minmax(360px,480px) 1fr;gap:20px;align-items:start}.scan-card,.scan-result{padding:22px}.scan-card h2{margin:7px 0 17px;color:var(--green)}.camera-wrap{position:relative;height:330px;background:#10261f;border-radius:16px;overflow:hidden}.camera-wrap video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:58px;border:2px solid rgba(255,255,255,.88);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.18)}.camera-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#aec1b8;gap:8px}.camera-placeholder div{font-size:42px}.scan-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.divider{display:flex;align-items:center;gap:10px;color:#9aa5a0;font-size:11px;margin:16px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.empty-state{min-height:310px;display:grid;place-content:center;text-align:center;color:var(--muted)}.empty-state>div{font-size:40px;color:#9eb3a9}.empty-state h3{color:var(--green);margin:10px 0 4px}.empty-state p{max-width:350px;margin:0;line-height:1.5}.pass-status{border-radius:15px;padding:16px;margin-bottom:14px}.pass-status.valid{background:var(--green3);border:1px solid #b9d8c8}.pass-status.invalid{background:var(--danger-bg);border:1px solid #efc4c2}.pass-status h3{margin:0}.pass-data{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.pass-data div{background:#f7f9f8;border-radius:10px;padding:11px}.pass-data span{display:block;font-size:9px;text-transform:uppercase;color:#829089;font-weight:800;letter-spacing:.08em}.pass-data b{display:block;margin-top:4px;color:var(--green)}.plate-prominent{grid-column:1/-1;border:2px solid var(--gold)!important;background:#fffaf0!important;text-align:center}.plate-prominent b{font-size:28px;letter-spacing:.08em}.action-stack{display:grid;gap:8px}.mismatch-panel{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.mismatch-panel select{margin:7px 0 10px}.modal-title h2{margin:5px 0;color:var(--green)}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.info-box{background:#f6f8f7;border:1px solid var(--line);padding:12px;border-radius:11px}.info-box span{font-size:9px;font-weight:800;letter-spacing:.08em;color:#829089;text-transform:uppercase}.info-box b{display:block;margin-top:5px;color:var(--green)}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.action-reason{margin-top:12px;padding:14px;background:#f7f9f8;border-radius:12px}.qr-preview{width:180px;height:180px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#fff}.pass-preview{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:start;margin:16px 0}.activity-timeline{border-left:2px solid #dbe5e0;padding-left:18px;margin-left:5px}.activity-entry{position:relative;padding:0 0 18px}.activity-entry:before{content:"";position:absolute;width:10px;height:10px;background:var(--green2);border:3px solid #fff;border-radius:50%;left:-24px;top:2px;box-shadow:0 0 0 1px #cfdcd6}.activity-entry b{font-size:12px;color:var(--green)}.activity-entry span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.toast{position:fixed;right:20px;bottom:20px;background:#173f33;color:#fff;border-radius:12px;padding:12px 15px;box-shadow:0 14px 40px rgba(0,0,0,.25);z-index:200;transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s;max-width:380px;font-size:12px}.toast.show{transform:none;opacity:1}.toast.error{background:#9d302e}
@media(max-width:1000px){.hero-grid{grid-template-columns:1fr;gap:20px;padding-top:24px}.hero-copy{padding:12px 0}.hero-copy h1{font-size:38px}.internal-app{grid-template-columns:80px 1fr}.sidebar-brand .brand div:last-child,.sidebar .nav-item:not(.active){font-size:0}.sidebar .brand-mark{width:42px}.sidebar .nav-item{justify-content:center}.sidebar .nav-item span{font-size:18px}.nav-label,.sidebar-footer .user-mini{display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.scan-layout{grid-template-columns:1fr}.page-toolbar{align-items:start;flex-direction:column}.search-row{width:100%;flex-wrap:wrap}.search-row input{flex:1;min-width:220px}.pass-preview{grid-template-columns:1fr}.qr-preview{margin:auto}}
@media(max-width:650px){.public-header{padding:0 16px}.public-header .brand div:last-child span{display:none}.hero-grid{padding:28px 16px 50px}.hero-copy h1{font-size:32px}.hero-points{grid-template-columns:1fr}.grid.two{grid-template-columns:1fr}.form-card{padding:20px}.internal-app{display:block}.sidebar{position:fixed;bottom:0;left:0;right:0;top:auto;height:68px;min-height:0;z-index:50;display:block;padding:7px;background:#112f27}.sidebar-brand,.nav-label,.sidebar-footer{display:none}.sidebar nav{padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.nav-item{display:grid;place-items:center;gap:1px;padding:6px 2px;font-size:9px!important}.nav-item span{font-size:17px}.nav-item[data-page="activity"]{display:none}.workspace{padding-bottom:68px}.workspace-header{height:72px;padding:0 16px}.workspace-header h1{font-size:20px}.header-actions #todayLabel,.header-actions .live-dot{display:none}.app-page{padding:18px 14px 30px}.metric-grid{grid-template-columns:1fr 1fr}.metric:last-child{grid-column:1/-1}.dashboard-grid{gap:12px}.card-head{align-items:center}.table-card{overflow:auto}.scan-card,.scan-result{padding:16px}.camera-wrap{height:300px}.modal{padding:8px}.modal-card{border-radius:16px;padding:20px}.modal-grid,.pass-data{grid-template-columns:1fr}.plate-prominent{grid-column:auto}.workspace-header .btn{padding:8px 10px}.page-toolbar .search-row{display:grid;grid-template-columns:1fr}.search-row input,.search-row select{width:100%}}

/* V1.2 - external visitor journey */
.visitor-journey{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.visitor-journey>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;min-height:98px}.visitor-journey span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-weight:900;margin-bottom:8px}.visitor-journey b{display:block;color:var(--green);font-size:12px}.visitor-journey small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:3px}.input-help{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:5px}.consent-line{display:flex!important;align-items:flex-start;gap:9px;background:#f7f9f8;border:1px solid var(--line);padding:11px 12px;border-radius:10px;margin:12px 0;font-size:11px!important;font-weight:600!important;color:#4c5b54!important}.consent-line input{width:16px!important;height:16px!important;margin:1px 0 0!important;flex:0 0 auto}.email-flow-note{margin-top:14px;background:#f7f9f8;border:1px solid var(--line);padding:12px;border-radius:11px;font-size:12px;color:#52615a}.email-flow-note b{color:var(--green)}
@media(max-width:650px){.visitor-journey{grid-template-columns:1fr 1fr}}

/* V1.5 - logistics multi-activity, notes, edit-by-email, change history */
.activity-selector{margin:14px 0 16px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8faf9}.activity-selector .field-title{display:block;color:var(--green);font-weight:800;font-size:12px}.activity-selector small{display:block;color:var(--muted);font-size:10px;margin:4px 0 10px}.activity-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-card{display:flex!important;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11px!important;font-weight:700!important;color:#405149!important;cursor:pointer}.check-card input{width:16px!important;height:16px!important;margin:0!important;flex:0 0 auto}.check-card:has(input:checked){border-color:#8bb6a2;background:#eff8f3}.activity-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.activity-tag{display:inline-block;background:#eef6f2;color:#2f634f;border:1px solid #d2e5dc;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800}.note-cell{max-width:220px;white-space:normal!important;line-height:1.35;color:#58665f}.notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.note-panel{border:1px solid var(--line);background:#fbfcfb;border-radius:12px;padding:13px}.note-panel.internal{background:#fffaf0;border-color:#eadba8}.note-panel span{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;color:#7c8b84}.note-panel p{margin:7px 0 0;font-size:12px;line-height:1.5;color:#33473e;white-space:pre-wrap}.simple-list{margin:5px 0 0;padding-left:18px}.simple-list li{margin:3px 0}.change-list{display:grid;gap:9px;margin-top:10px}.change-item{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}.change-item b{display:block;color:var(--green);font-size:11px;margin-bottom:5px}.change-item div{font-size:12px}.change-item small{display:block;color:var(--muted);font-size:10px;line-height:1.45;margin-top:5px}.old-value{text-decoration:line-through;color:#8a9691}.new-value{font-weight:800;color:#2f634f}.edit-panel{border:1px solid #bfd8cb;background:#f8fbf9}.edit-panel h3{color:var(--green);margin-top:5px}.edit-panel textarea{resize:vertical}
@media(max-width:650px){.activity-options,.notes-grid{grid-template-columns:1fr}.note-cell{max-width:150px}}

/* V1.5 — Activity Log & 24-hour time refinements */
.field-hint{font-size:11px;color:var(--muted);font-weight:600}.audit-filter-card{margin-bottom:16px}.audit-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.audit-filter-actions{display:flex;gap:10px;margin-top:14px}.audit-table .audit-detail{min-width:260px;white-space:normal;line-height:1.45}.audit-table td{vertical-align:top}@media(max-width:980px){.audit-filter-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.audit-filter-grid{grid-template-columns:1fr}.audit-filter-actions{flex-direction:column}}
/* OFFICIAL HEW LOGO OVERRIDE */
.public-header .brand-logo-box{width:96px;height:54px}.public-header .brand-logo{max-width:96px;max-height:54px}
.login-card .brand-logo-box{width:88px;height:54px}.login-card .brand-logo{max-width:88px;max-height:54px}
.sidebar .brand-logo-box{width:78px;height:50px}.sidebar .brand-logo{max-width:78px;max-height:50px}

/* V1.6.1 branding contrast fix */
.sidebar .brand-logo-box{width:96px;height:62px;background:#fff;border-radius:12px;padding:8px 10px;box-shadow:0 4px 14px rgba(0,0,0,.16)}
.sidebar .brand-logo{max-width:84px;max-height:50px;filter:none}
@media(max-width:1000px){.sidebar .brand-logo-box{width:54px;height:48px;padding:6px;border-radius:10px}.sidebar .brand-logo{max-width:44px;max-height:36px}}

/* ============================================================
   V1.7.0 — HEW UI/UX READABILITY STANDARD
   Global standard for public form, internal dashboard, tables,
   scanner, modals, filters, and mobile views.
   ============================================================ */
:root{
  --font-base:16px;
  --text-sm:14px;
  --text-xs:13px;
  --title-1:30px;
  --title-2:22px;
  --title-3:19px;
  --control-h:48px;
  --button-h:46px;
  --sidebar-w:250px;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-7:28px;
  --space-8:32px;
  --radius-control:9px;
  --radius-card:12px;
  --focus-ring:0 0 0 3px rgba(36,92,74,.16);
  --shadow-soft:0 6px 22px rgba(18,55,42,.055);
}
html{font-size:16px;scroll-behavior:smooth}
body{font-size:var(--font-base);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,textarea,select{font-size:16px;line-height:1.4}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(36,92,74,.22);outline-offset:2px}
.card{border-radius:var(--radius-card);box-shadow:var(--shadow-soft)}
.eyebrow{font-size:12px;line-height:1.3;letter-spacing:.11em}

/* Public header & branding */
.public-header{height:82px;padding:0 clamp(18px,4vw,56px)}
.public-header .brand{gap:14px}
.public-header .brand strong{font-size:15px;line-height:1.25}
.public-header .brand span{font-size:13px;line-height:1.3;margin-top:3px}
.public-header .btn{min-height:44px}

/* Public registration */
.hero-grid{max-width:1280px;padding:56px 32px 72px;gap:56px}
.hero-copy{padding:38px 0}
.hero-copy h1{font-size:clamp(38px,3.5vw,50px);line-height:1.1;margin:14px 0 18px}
.hero-copy>p{font-size:17px;line-height:1.65}
.hero-points{gap:12px;margin:28px 0}
.hero-points div{border-radius:12px;padding:18px}
.hero-points b{font-size:28px;line-height:1.15}
.hero-points span{font-size:14px;line-height:1.4;margin-top:4px;display:block}
.form-card{padding:30px}
.form-card h2,.narrow-wrap h2{font-size:26px;line-height:1.25;margin:2px 0 18px}
.step-label{font-size:12px;margin-bottom:8px}
.segmented{padding:6px;border-radius:12px;gap:6px;margin-bottom:26px}
.seg{min-height:50px;font-size:16px;border-radius:9px;padding:12px 16px}
form label,.scan-card>label,.audit-filter-grid label{font-size:15px;line-height:1.35;font-weight:650;color:#30433b;margin-bottom:18px}
input,textarea,select{min-height:var(--control-h);border-radius:var(--radius-control);padding:12px 14px;margin-top:8px;border-color:#c8d5ce}
textarea{min-height:104px;line-height:1.55;resize:vertical}
input::placeholder,textarea::placeholder{color:#7a8781;opacity:1}
input:focus,textarea:focus,select:focus{border-color:var(--green2);box-shadow:var(--focus-ring)}
.input-help,.field-note{display:block;font-size:13px;line-height:1.45;color:#64736c;background:transparent;border-radius:0;padding:0;margin:7px 0 0}
.field-hint{font-size:13px;font-weight:600}
.optional{font-size:13px}
.grid{gap:18px}.grid.two{column-gap:18px;row-gap:4px}
.dynamic-fields{padding-top:8px}
.notice{font-size:14px;line-height:1.55;border-radius:12px;padding:15px 17px}
.urgency-box{border-radius:10px;padding:14px 16px;margin-bottom:18px}
.urgency-box strong,.urgency-box span{font-size:14px;line-height:1.45}
.btn{min-height:var(--button-h);display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:11px 18px;font-size:15.5px;font-weight:700;line-height:1.2}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:disabled{cursor:not-allowed;opacity:.58;transform:none}
.text-btn{min-height:40px;font-size:14px;padding:6px 8px;border-radius:8px}
.consent-line{font-size:14px!important;line-height:1.5!important;padding:13px 14px!important;border-radius:10px!important;gap:11px!important;margin:16px 0!important}
.consent-line input{width:19px!important;height:19px!important;margin:1px 0 0!important}
.visitor-journey{gap:12px;margin:22px 0}
.visitor-journey>div{padding:14px;min-height:112px;border-radius:12px}
.visitor-journey span{width:32px;height:32px;font-size:14px}
.visitor-journey b{font-size:14px;line-height:1.35}
.visitor-journey small{font-size:12.5px;line-height:1.45;margin-top:5px}
.activity-selector{padding:17px;border-radius:12px;margin:16px 0 20px}
.activity-selector .field-title{font-size:15px}
.activity-selector small{font-size:13px;line-height:1.45;margin:5px 0 12px}
.activity-options{gap:10px}
.check-card{min-height:48px;font-size:14px!important;line-height:1.4!important;padding:12px 13px;border-radius:9px!important;align-items:center!important}
.check-card input{width:18px!important;height:18px!important}
.success-card{max-width:600px;padding:42px}
.success-card h2{font-size:30px}
.success-card p,.email-flow-note{font-size:15px;line-height:1.6}

/* Internal layout & navigation */
.internal-app{grid-template-columns:var(--sidebar-w) 1fr}
.sidebar{padding:18px 14px}
.sidebar-brand{padding:5px 7px 22px}
.sidebar .brand strong{font-size:15px}
.sidebar .brand span{font-size:13px}
.sidebar nav{padding-top:18px;gap:5px}
.nav-label{font-size:12px;letter-spacing:.11em;padding:20px 12px 8px;color:#90aaa0}
.nav-item{min-height:46px;padding:11px 13px;border-radius:9px;font-size:15px;font-weight:600;line-height:1.25}
.nav-item span{width:22px;font-size:18px}
.nav-item.active{background:rgba(255,255,255,.12);box-shadow:inset 3px 0 0 var(--gold)}
.user-mini{font-size:13px;line-height:1.4;margin-bottom:12px}

/* Workspace & page hierarchy */
.workspace-header{height:92px;padding:0 32px}
.workspace-header h1{font-size:var(--title-1);line-height:1.2;margin:3px 0 0;letter-spacing:-.02em}
.header-actions{font-size:14px;gap:12px}
.app-page{padding:30px 32px 56px;max-width:1640px;margin:0 auto;width:100%}
.page-toolbar{margin-bottom:22px}
.page-toolbar h3{font-size:var(--title-2);line-height:1.25;margin:0 0 7px;color:var(--green)}
.page-toolbar p{font-size:15px;line-height:1.55;color:var(--muted);max-width:900px;margin:0}
.filter-chip{font-size:13px;line-height:1.3;padding:9px 12px;border-radius:999px}

/* Dashboard */
.metric-grid{gap:16px;margin-bottom:22px}
.metric{min-height:126px;border-radius:12px;padding:20px 20px 18px;box-shadow:var(--shadow-soft)}
.metric span{font-size:13px;line-height:1.35;letter-spacing:.035em}
.metric strong{font-size:34px;line-height:1.05;margin:10px 0 6px}
.metric small{font-size:13px;line-height:1.4}
.dashboard-grid{gap:20px}
.dashboard-grid .card{padding:22px}
.card-head{margin-bottom:18px}
.card-head h3{font-size:var(--title-3);line-height:1.3;margin:4px 0 0}

/* Tables — readable operational density */
.table-card{border-radius:12px}
.table-wrap,.table-card{overflow:auto;scrollbar-width:thin;scrollbar-color:#b7c7bf transparent}
.data-table{font-size:15px;line-height:1.45}
.data-table th{position:sticky;top:0;z-index:2;background:#f7faf8;padding:14px 14px;color:#52645c;font-size:13px;line-height:1.35;letter-spacing:.035em;font-weight:700;text-transform:none;white-space:nowrap;border-bottom:1px solid #d7e2dc}
.data-table td{padding:15px 14px;min-height:54px;border-bottom:1px solid #e8efeb;vertical-align:middle}
.data-table tbody tr:nth-child(even){background:#fcfdfc}
.data-table tbody tr:hover{background:#f4f8f6}
.data-table td b{font-weight:650}
.status-pill{min-height:30px;align-items:center;padding:6px 11px;font-size:13px;line-height:1.2;font-weight:700;letter-spacing:.025em}
.urgent-tag,.type-tag,.activity-tag{font-size:12.5px;line-height:1.3;padding:5px 8px;font-weight:700}
.note-cell{font-size:14px;line-height:1.5;max-width:300px}
.simple-list{font-size:14px;line-height:1.45}

/* Search, filters & audit */
.search-row{gap:10px}
.search-row input,.search-row select{min-height:46px;margin-top:0;font-size:15px}
.audit-filter-card{padding:20px;margin-bottom:20px}
.audit-filter-grid{gap:16px}
.audit-filter-actions{gap:12px;margin-top:6px}
.audit-table .audit-detail{min-width:300px;line-height:1.55}
.activity-tag{margin:1px}

/* Scanner — operator centric */
.scan-layout{gap:20px}
.scan-card,.scan-result{padding:24px}
.scan-card h2{font-size:26px;line-height:1.25;margin:5px 0 18px;color:var(--green)}
.camera-wrap{border-radius:14px}
.camera-placeholder span{font-size:15px}
.scan-actions{gap:10px;margin:14px 0}
.scan-actions .btn{flex:1}
.pass-status{border-radius:12px;padding:18px;margin-bottom:18px}
.pass-status h3{font-size:20px;line-height:1.3}
.pass-status p{font-size:14px;line-height:1.5;margin:6px 0 0}
.pass-data{gap:14px;margin:18px 0}
.pass-data div{border-radius:10px;padding:14px}
.pass-data span{font-size:12px;line-height:1.3;letter-spacing:.055em}
.pass-data b{font-size:15px;line-height:1.45;margin-top:6px}
.plate-prominent b{font-size:30px}
.empty-state{min-height:300px;padding:30px 20px}
.empty-state h3{font-size:19px;line-height:1.3}
.empty-state p{font-size:14px;line-height:1.55}

/* Modal / visit detail */
.modal-card{border-radius:14px;padding:28px}
.visit-modal-card{width:min(980px,96vw)}
.icon-btn{width:44px;height:44px;border-radius:9px;display:grid;place-items:center}
.modal-title h2{font-size:26px;line-height:1.25}
.modal-grid{gap:14px;margin:18px 0}
.info-box{padding:14px;border-radius:10px}
.info-box span{font-size:12px;line-height:1.3;letter-spacing:.055em}
.info-box b{font-size:15px;line-height:1.45;margin-top:6px}
.modal-actions{gap:10px;padding-top:18px;margin-top:18px}
.action-reason{padding:16px;border-radius:10px}
.notes-grid{gap:14px;margin:16px 0}
.note-panel{padding:15px;border-radius:10px}
.note-panel span{font-size:12px;line-height:1.3}
.note-panel p{font-size:14px;line-height:1.55}
.change-list{gap:10px}
.change-item{padding:13px;border-radius:9px}
.change-item b{font-size:14px}
.change-item div{font-size:14px;line-height:1.5}
.change-item small{font-size:13px;line-height:1.45}
.activity-timeline{padding-left:20px}
.activity-entry{padding-bottom:20px}
.activity-entry b{font-size:14px;line-height:1.4}
.activity-entry span{font-size:13px;line-height:1.45;margin-top:4px}
.qr-preview{width:190px;height:190px}

/* Feedback */
.toast{right:24px;bottom:24px;border-radius:10px;padding:14px 17px;max-width:430px;font-size:14px;line-height:1.45}

/* Tablet */
@media(max-width:1100px){
  .internal-app{grid-template-columns:84px 1fr}
  .sidebar .brand-logo-box{width:56px;height:50px}
  .sidebar .brand-logo{max-width:46px;max-height:38px}
  .sidebar-brand>div:last-child{display:none}
  .nav-label{display:none}
  .nav-item{justify-content:center;padding:11px 6px;font-size:0}
  .nav-item span{font-size:20px}
  .sidebar-footer .user-mini{display:none}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric:last-child{grid-column:span 2}
  .workspace-header{padding:0 24px}
  .app-page{padding:26px 24px 48px}
}

/* Mobile */
@media(max-width:650px){
  .public-header{height:72px;padding:0 14px}
  .public-header .brand-logo-box{width:76px;height:46px}
  .public-header .brand-logo{max-width:72px;max-height:42px}
  .public-header .brand strong{font-size:13px}
  .public-header .btn{font-size:13px;min-height:42px;padding:9px 11px}
  .hero-grid{padding:26px 14px 44px;gap:20px}
  .hero-copy{padding:8px 0}
  .hero-copy h1{font-size:32px}
  .hero-copy>p{font-size:16px}
  .visitor-journey{grid-template-columns:1fr 1fr;gap:8px}
  .visitor-journey>div{min-height:116px}
  .hero-points{grid-template-columns:1fr 1fr 1fr;gap:7px}
  .hero-points div{padding:12px 9px}
  .hero-points b{font-size:23px}
  .hero-points span{font-size:12px}
  .form-card{padding:20px 16px}
  .form-card h2{font-size:24px}
  .seg{font-size:15px;padding:10px 8px}
  .grid.two{grid-template-columns:1fr;gap:0}
  form label,.scan-card>label,.audit-filter-grid label{font-size:15px;margin-bottom:17px}
  input,textarea,select{font-size:16px;min-height:48px}
  .activity-options,.notes-grid{grid-template-columns:1fr}
  .check-card{font-size:14px!important}
  .internal-app{display:block}
  .sidebar{height:74px;padding:7px 5px}
  .sidebar nav{grid-template-columns:repeat(5,1fr);gap:3px}
  .nav-item{min-height:58px;display:grid;place-items:center;gap:2px;padding:5px 2px;font-size:11px!important;line-height:1.1}
  .nav-item span{font-size:19px}
  .workspace{padding-bottom:74px}
  .workspace-header{height:78px;padding:0 15px}
  .workspace-header h1{font-size:24px}
  .workspace-header .eyebrow{font-size:10.5px}
  .header-actions{gap:6px}
  .header-actions .btn{font-size:13px;min-height:40px;padding:8px 10px}
  .app-page{padding:20px 13px 34px}
  .metric-grid{grid-template-columns:1fr 1fr;gap:10px}
  .metric{min-height:116px;padding:16px}
  .metric strong{font-size:30px}
  .metric span,.metric small{font-size:12px}
  .dashboard-grid{gap:12px}
  .dashboard-grid .card{padding:16px}
  .card-head h3{font-size:18px}
  .page-toolbar h3{font-size:21px}
  .page-toolbar p{font-size:14px}
  .data-table{font-size:14px}
  .data-table th{font-size:12px;padding:12px 11px}
  .data-table td{font-size:14px;padding:13px 11px}
  .status-pill{font-size:12px}
  .scan-card,.scan-result{padding:16px}
  .camera-wrap{height:300px}
  .scan-card h2{font-size:23px}
  .modal{padding:7px}
  .modal-card{padding:20px 16px;border-radius:12px}
  .modal-grid,.pass-data{grid-template-columns:1fr}
  .modal-actions{display:grid;grid-template-columns:1fr}
  .modal-actions .btn{width:100%}
  .success-card{padding:30px 18px}
  .success-card h2{font-size:26px}
  .toast{left:12px;right:12px;bottom:86px;max-width:none;font-size:14px}
}
@media(max-width:650px){
  .sidebar nav{grid-template-columns:repeat(auto-fit,minmax(54px,1fr))}
  .nav-item[data-page="activity"]:not(.hidden){display:grid}
}

/* V1.9 Appointment + Invitation */
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.detail-grid>div{background:#f7f9f8;border:1px solid #e5ece8;border-radius:11px;padding:12px;min-width:0}
.detail-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#7d8c85;font-weight:800;margin-bottom:5px}
.detail-grid b{color:var(--green);line-height:1.4;overflow-wrap:anywhere}
.appointment-summary{margin:15px 0 20px}
.copy-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:10px 0}
.copy-row input{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.compact-segment{margin:18px 0 14px}
#invitationResult{margin-top:18px}
#pageKpi .metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
#appointmentModal .activity-options{max-height:280px;overflow:auto}
@media(max-width:900px){.detail-grid{grid-template-columns:1fr}.copy-row{grid-template-columns:1fr}.copy-row .btn{width:100%}#pageKpi .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V1.9.2+ — vendor invitation completion / error states */
.invite-result{margin-top:20px;border-radius:16px;padding:24px;border:1px solid var(--line);text-align:center;background:#f8faf9}
.invite-result.success{background:#eef7f2;border-color:#cfe2d7}
.invite-result.error{background:#fff1f1;border-color:#efc7c7}
.invite-result-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;font-size:27px;font-weight:900;background:#fff;color:var(--green);border:1px solid #d9e6df}
.invite-result.error .invite-result-icon{color:var(--danger);border-color:#efc7c7}
.invite-result h3{margin:7px 0 8px;font-size:24px;color:var(--green)}
.invite-result.error h3{color:var(--danger)}
.invite-result>p{max-width:590px;margin:0 auto 18px;color:var(--muted);font-size:14px;line-height:1.65}
.invite-result-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;margin:18px 0 12px}
.invite-result-meta>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 13px}
.invite-result-meta span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.invite-result-meta b{font-size:13px;color:var(--ink)}
.invite-email-note{margin-top:13px;padding:11px 13px;border-radius:10px;background:#fff;border:1px solid #d9e6df;font-size:12px;color:#496158}
.invite-next-step{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#51635b}
.invite-next-step b{color:var(--green)}
@media(max-width:640px){.invite-result-meta{grid-template-columns:1fr}.invite-result{padding:20px 16px}}

/* V1.10 — Master Tim HEW / personal tasks */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d7b85a;color:#173c30;font-size:11px;display:inline-flex;align-items:center;justify-content:center}.task-summary{display:flex;gap:8px;flex-wrap:wrap}.mini-stat{display:inline-flex;gap:6px;align-items:center;padding:8px 11px;border:1px solid var(--line,#dfe6e1);border-radius:10px;background:#fff;font-size:12px}.mini-stat.exception{border-color:#e6b7ae}.role-chip{display:inline-block;padding:4px 7px;margin:2px;border-radius:999px;background:#eef4f0;color:#245b47;font-size:11px;font-weight:700}.team-guide{display:flex;gap:10px;align-items:center;margin-bottom:14px}.team-guide span{color:#65736c}.switch-label{display:flex!important;align-items:center;gap:8px;min-height:44px}.switch-label input{width:auto!important}.checks-grid.compact{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));margin-bottom:16px}.data-table small{color:#6e7b74;line-height:1.45}

/* V1.10.1 — Master Tim HEW form cleanup */
.user-form-section{margin:18px 0}.section-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.section-heading b{font-size:14px}.section-heading span,.field-help,.host-switch small,.form-note{font-size:12px;color:var(--muted,#6b7280);line-height:1.5}.required-mark,.required-hint{color:#b42318!important}.host-switch{align-items:flex-start!important;padding:13px 14px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:#fafafa}.host-switch>span{display:flex;flex-direction:column;gap:2px}.optional-details{margin:18px 0;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:#fff}.optional-details summary{cursor:pointer;padding:13px 14px;font-weight:600}.optional-details summary span{font-weight:400;color:var(--muted,#6b7280);font-size:12px}.optional-fields{padding:0 14px 14px}.form-note{margin:8px 0 16px;padding:10px 12px;border-radius:10px;background:#f7f8f7}.field-help{display:block;margin-top:5px;font-weight:400}.switch-label input{margin-top:2px}

/* V1.10.3 — Public Entry UX: Meeting + Logistics are equally visible */
.public-route-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.public-route-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 15px}.public-route-summary span{display:block;font-size:10px;letter-spacing:.1em;font-weight:850;color:var(--gold);margin-bottom:5px}.public-route-summary b{display:block;color:var(--green);font-size:13px;line-height:1.35}.public-route-summary small{display:block;color:var(--muted);font-size:12px;line-height:1.45;margin-top:4px}
.public-entry-card{min-height:600px}.public-path-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:8px 0 26px}.public-path{border:1px solid #d7e2dc;background:#f8faf9;border-radius:12px;min-height:76px;padding:12px 13px;display:flex;align-items:center;gap:11px;text-align:left;color:var(--ink);transition:.18s}.public-path:hover{border-color:#aac2b6;background:#f3f8f5}.public-path.active{background:#eef6f1;border-color:#7ea894;box-shadow:0 0 0 2px rgba(36,92,74,.08)}.public-path-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;border:1px solid #dce6e1;color:var(--green);font-size:11px;font-weight:850;flex:0 0 auto}.public-path.active .public-path-icon{background:var(--green);border-color:var(--green);color:#fff}.public-path b{display:block;color:var(--green);font-size:14px;line-height:1.25}.public-path small{display:block;color:var(--muted);font-size:11.5px;line-height:1.35;margin-top:3px}.entry-panel-label{margin-top:2px}.entry-lead{font-size:14px;line-height:1.62;color:var(--muted);margin:-3px 0 18px}.logistics-activity-groups{display:grid;grid-template-columns:1fr;gap:8px;margin:16px 0 20px}.logistics-activity-groups>div{border:1px solid var(--line);background:#f8faf9;border-radius:10px;padding:11px 13px}.logistics-activity-groups b{display:block;color:var(--green);font-size:11px;letter-spacing:.06em}.logistics-activity-groups span{display:block;color:var(--muted);font-size:12.5px;line-height:1.45;margin-top:3px}.logistics-entry-option{border:1px solid var(--line);border-radius:13px;padding:16px;margin:12px 0;background:#fff}.vendor-option{border-color:#cbded4;background:#fbfdfc}.hew-option{background:#f7f9f8}.entry-option-head{display:flex;align-items:center;gap:10px}.entry-option-number{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:850;font-size:12px;flex:0 0 auto}.entry-option-head b{display:block;color:var(--green);font-size:14px}.entry-option-head small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}.logistics-entry-option>p{color:var(--muted);font-size:12.5px;line-height:1.55;margin:11px 0}.logistics-entry-option label{margin-bottom:10px}.logistics-note{margin-top:15px}
@media(max-width:650px){.public-route-summary,.public-path-switch{grid-template-columns:1fr}.public-path{min-height:68px}.public-entry-card{min-height:0}.logistics-entry-option{padding:14px}.hero-copy .public-route-summary{margin-top:16px}}


/* V1.10.5 — Team master + Quality Control logistics activity */
.appointment-form-section{border:1px solid var(--line);border-radius:14px;padding:16px;margin:15px 0;background:#fff}.hew-owned-section{background:#f8fbf9;border-color:#cadfd4}.vendor-data-section{background:#fbfbfa}.mode-help{padding:11px 13px;margin:-3px 0 14px;border-radius:10px;background:#f5f8f6;color:#56675f;font-size:12px;line-height:1.5}.mode-help b{color:var(--green)}.compact-notice{font-size:12px;line-height:1.5;margin:14px 0}.invite-ownership{background:#f6faf8!important;border-color:#c9ded3!important;color:#405c4f}.schedule-request-box{margin:16px 0;border:1px solid #d7e2dc;border-radius:12px;background:#fbfcfb}.schedule-request-box summary{cursor:pointer;padding:13px 14px;color:var(--green);font-size:12.5px}.schedule-request-box>p,.schedule-request-box>.grid,.schedule-request-box>label,.schedule-request-box>button,.schedule-request-box>.schedule-request-status{margin-left:14px;margin-right:14px}.schedule-request-box>p{font-size:12px;color:var(--muted);line-height:1.5}.schedule-request-box>button{width:calc(100% - 28px);margin-bottom:14px}.schedule-request-status{padding:10px 11px;margin-bottom:14px;border-radius:9px;background:#eef6f1;color:#3e5c4f;font-size:12px}.schedule-request-status b,.schedule-request-status span{display:block}.schedule-request-status span{margin-top:3px;color:var(--muted)}.schedule-decision{display:block!important}.schedule-decision>span,.schedule-decision>small{display:block;margin-top:6px;line-height:1.45}.schedule-decision .modal-actions{margin-top:12px}

/* V1.10.8 — Multi-Device Access Operator */
.public-app{background:linear-gradient(180deg,#f7f9f7 0%,#f2f6f3 100%)}
.public-header{height:84px;background:rgba(255,255,255,.97);border-bottom:1px solid #dde6e1;padding:0 clamp(22px,4.5vw,72px);box-shadow:0 1px 0 rgba(17,47,39,.02)}
.public-header .brand strong{font-size:15px;letter-spacing:.005em}.public-header .brand span{font-size:12px;color:#74817b}.public-header .btn-ghost{background:#fff;border-color:#cbd8d2;padding:11px 18px;border-radius:9px}.public-header .btn-ghost:hover{background:#f4f8f5;border-color:#9eb8ab}
.corporate-public-grid{max-width:1320px;padding:74px 36px 64px;grid-template-columns:.9fr 1.1fr;gap:76px;align-items:start}
.corporate-hero{padding:50px 0 24px}.corporate-hero .eyebrow{color:#a7842a;font-size:10.5px;letter-spacing:.18em}.corporate-hero h1{font-size:clamp(52px,5vw,70px);line-height:.98;letter-spacing:-.045em;margin:18px 0 24px;color:#143d30}.corporate-hero .hero-lead{font-size:18px;line-height:1.72;color:#5f7068;max-width:580px;margin:0}
.corporate-assurance{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0 28px}.corporate-assurance span{display:inline-flex;align-items:center;min-height:34px;padding:8px 12px;border:1px solid #d7e2dc;border-radius:999px;background:rgba(255,255,255,.7);color:#355648;font-size:11.5px;font-weight:750;letter-spacing:.015em}
.corporate-service-note{max-width:570px;padding:19px 20px;border-left:3px solid #c8a94f;background:rgba(255,255,255,.66);border-radius:0 10px 10px 0}.corporate-service-note b{display:block;color:#173f33;font-size:13px}.corporate-service-note span{display:block;color:#687870;font-size:12px;line-height:1.55;margin-top:5px}
.corporate-entry-card{border-radius:14px;border-color:#d7e1dc;box-shadow:0 18px 48px rgba(20,61,48,.08);padding:32px 34px;min-height:0}.corporate-entry-card .step-label{color:#a7842a;letter-spacing:.16em}.corporate-entry-card h2{font-size:29px;letter-spacing:-.02em;margin:3px 0 8px}.premium-lead{margin:0 0 22px!important;color:#64756d!important;font-size:13.5px!important;line-height:1.62!important;max-width:620px}
.corporate-entry-card .public-path-switch{margin:11px 0 30px;gap:10px}.corporate-entry-card .public-path{border-radius:10px;min-height:74px;background:#fafcfb;border-color:#d9e3de;padding:13px 14px}.corporate-entry-card .public-path:hover{background:#f4f8f6;border-color:#a8c0b4}.corporate-entry-card .public-path.active{background:#f1f7f3;border-color:#6f9d87;box-shadow:0 0 0 1px rgba(23,63,51,.05)}.corporate-entry-card .public-path-icon{width:32px;height:32px;border-radius:8px;font-size:11px;background:#fff}.corporate-entry-card .public-path b{font-size:13.5px}.corporate-entry-card .public-path small{font-size:11.5px}
.corporate-entry-card form label{font-size:11.5px;color:#35463f}.corporate-entry-card input,.corporate-entry-card textarea,.corporate-entry-card select{border-radius:9px;background:#fff;border-color:#ccd8d2;padding:11px 12px}.corporate-primary{min-height:46px;border-radius:9px;letter-spacing:.005em}
.premium-invite-card{border:1px solid #cbdcd3;background:#fbfdfc;border-radius:12px;padding:18px 18px 17px;margin:18px 0 24px}.premium-action-head{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}.premium-action-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#173f33;color:#fff;font-weight:800;flex:0 0 auto}.premium-action-head b{display:block;color:#173f33;font-size:13.5px}.premium-action-head small{display:block;color:#6b7b73;font-size:11.5px;line-height:1.45;margin-top:3px}.premium-invite-card label{margin-bottom:11px}
.supported-activity-block{margin:22px 0}.supported-title{display:block;font-size:9.5px;font-weight:850;letter-spacing:.14em;color:#9a7b28;margin-bottom:10px}.supported-activity-block .logistics-activity-groups{margin:0;gap:7px}.supported-activity-block .logistics-activity-groups>div{border-radius:9px;padding:10px 12px;background:#f8faf9}.supported-activity-block .logistics-activity-groups b{font-size:10.5px}.supported-activity-block .logistics-activity-groups span{font-size:12px}
.corporate-note{margin:18px 0;background:#f8f4e8;border-color:#e4d5a4;color:#695826;border-radius:10px;font-size:12px}.premium-team-login{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-top:18px;padding-top:18px;border-top:1px solid #e2e8e4}.premium-team-login b{display:block;color:#173f33;font-size:12.5px}.premium-team-login span{display:block;color:#718078;font-size:11.5px;line-height:1.45;margin-top:3px}.premium-team-login .btn{flex:0 0 auto;white-space:nowrap;border-radius:9px}
.public-footer{max-width:1320px;margin:0 auto;padding:0 36px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#7a8781;font-size:10.5px;border-top:1px solid transparent}.public-footer span:last-child{text-align:right}
#inviteView .narrow-wrap>.card,#revisionView .narrow-wrap>.card{border-radius:14px;box-shadow:0 18px 48px rgba(20,61,48,.08)}
@media(max-width:1000px){.corporate-public-grid{grid-template-columns:1fr;gap:24px;padding-top:42px}.corporate-hero{padding:15px 0 6px}.corporate-hero h1{font-size:48px}.corporate-hero .hero-lead{max-width:720px}.corporate-entry-card{padding:28px}.public-footer{padding:0 28px 28px}}
@media(max-width:650px){.public-header{height:72px;padding:0 14px}.public-header .btn-ghost{padding:9px 11px}.corporate-public-grid{padding:30px 14px 40px;gap:22px}.corporate-hero{padding:4px 2px}.corporate-hero h1{font-size:39px;margin:13px 0 16px}.corporate-hero .hero-lead{font-size:15.5px;line-height:1.62}.corporate-assurance{margin:20px 0 18px;gap:6px}.corporate-assurance span{font-size:10.5px;padding:7px 9px}.corporate-service-note{padding:15px 16px}.corporate-entry-card{padding:22px 16px}.corporate-entry-card h2{font-size:25px}.corporate-entry-card .public-path-switch{grid-template-columns:1fr 1fr;gap:7px}.corporate-entry-card .public-path{min-height:70px;padding:10px;gap:8px}.corporate-entry-card .public-path-icon{width:29px;height:29px}.corporate-entry-card .public-path b{font-size:12.5px}.corporate-entry-card .public-path small{font-size:10.5px}.premium-team-login{align-items:flex-start;flex-direction:column;gap:10px}.premium-team-login .btn{width:100%}.public-footer{padding:0 16px 24px;flex-direction:column;align-items:flex-start;gap:5px}.public-footer span:last-child{text-align:left}}

/* V1.10.8 — Multi-device Access Operator */
.gate-mode-bar{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:22px;align-items:center;padding:18px 20px;margin-bottom:18px;border-left:4px solid var(--gold)}
.gate-mode-bar h3{margin:4px 0 3px;color:var(--green);font-size:20px}.gate-device-label{font-size:11px;color:var(--muted);font-weight:700}.gate-stats{display:flex;gap:10px}.gate-stats>div{min-width:100px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8faf9;text-align:center}.gate-stats b{display:block;font-size:22px;color:var(--green)}.gate-stats span{display:block;margin-top:2px;font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:800}.gate-device-control{display:flex;align-items:end;gap:8px}.gate-device-control label{margin:0;font-size:10px;color:var(--muted);font-weight:800}.gate-device-control select{margin-top:5px;min-width:170px}.access-operator-switch{background:#f7faf8;border:1px solid var(--line);padding:12px 14px;border-radius:12px}.access-operator-switch small{display:block;color:var(--muted);margin-top:3px;font-weight:500}.date-id-input{font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media(max-width:1000px){.gate-mode-bar{grid-template-columns:1fr}.gate-stats{order:3}.gate-device-control{justify-content:space-between}}
@media(max-width:650px){.gate-mode-bar{padding:14px;margin-bottom:12px}.gate-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:6px}.gate-stats>div{min-width:0;padding:8px 5px}.gate-stats b{font-size:20px}.gate-device-control{display:grid;grid-template-columns:1fr auto;align-items:end}.gate-device-control select{width:100%;min-width:0}.scan-layout{gap:12px}}


/* V1.10.11 — Premium Interaction & Dynamic Tab Experience */
:root{--ease-premium:cubic-bezier(.2,.75,.25,1);--shadow-hover:0 18px 44px rgba(18,55,42,.12);--gold-soft:#f8f1dd}
.btn,.public-path,.metric,.card,.nav-item,.text-btn{transition:transform .22s var(--ease-premium),box-shadow .22s var(--ease-premium),background-color .18s ease,border-color .18s ease,color .18s ease}
.btn:active{transform:translateY(1px) scale(.99)}
.corporate-primary{position:relative;overflow:hidden;box-shadow:0 8px 18px rgba(23,63,51,.12)}
.corporate-primary:after{content:"";position:absolute;inset:0;transform:translateX(-120%);background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.18) 48%,transparent 66%);pointer-events:none}
.public-path.active{box-shadow:0 8px 22px rgba(23,63,51,.08)}
.metric:hover,.dashboard-grid>.card:hover{box-shadow:var(--shadow-hover)}
.nav-count{animation:taskBadgeIn .38s var(--ease-premium)}
.success-icon{box-shadow:0 0 0 8px rgba(36,92,74,.055)}
.toast.show{animation:toastPremiumIn .34s var(--ease-premium)}
.camera-wrap{position:relative;overflow:hidden}.scan-beam{position:absolute;z-index:4;left:12%;right:12%;top:16%;height:2px;opacity:0;background:linear-gradient(90deg,transparent,#d6b85c 16%,#fff2b7 50%,#d6b85c 84%,transparent);box-shadow:0 0 14px rgba(200,169,79,.7);pointer-events:none}.camera-wrap.is-scanning .scan-beam{opacity:1;animation:scanBeam 1.65s ease-in-out infinite}.camera-wrap.is-scanning .scan-frame{border-color:rgba(214,184,92,.9);box-shadow:0 0 0 1px rgba(255,255,255,.26),0 0 30px rgba(200,169,79,.18)}
.scan-result.scan-valid{animation:scanValidPop .42s var(--ease-premium);box-shadow:0 16px 42px rgba(37,132,95,.11)}.scan-result.scan-invalid{animation:scanInvalidPop .38s var(--ease-premium);box-shadow:0 16px 42px rgba(184,59,57,.10)}
.live-dot{animation:livePulse 2.2s ease-in-out infinite}
@media (prefers-reduced-motion:no-preference){
  .public-path:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(23,63,51,.09)}
  .metric:hover,.dashboard-grid>.card:hover{transform:translateY(-2px)}
  .corporate-primary:hover:after{animation:buttonSheen .72s ease}
  .success-icon{animation:successPop .52s var(--ease-premium)}
}
@keyframes buttonSheen{to{transform:translateX(120%)}}
@keyframes successPop{0%{transform:scale(.72);opacity:.35}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes toastPremiumIn{from{transform:translateY(12px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes taskBadgeIn{0%{transform:scale(.55);opacity:.2}75%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
@keyframes scanBeam{0%,100%{top:16%;opacity:.35}50%{top:82%;opacity:1}}
@keyframes scanValidPop{0%{transform:scale(.985);border-color:#dfe7e2}55%{transform:scale(1.008);border-color:#7bb59b}100%{transform:scale(1);border-color:#dfe7e2}}
@keyframes scanInvalidPop{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}50%{transform:translateX(3px)}75%{transform:translateX(-1px)}}
@keyframes livePulse{0%,100%{box-shadow:0 0 0 5px rgba(44,158,103,.10)}50%{box-shadow:0 0 0 8px rgba(44,158,103,.035)}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.live-dot,.scan-beam,.success-icon,.nav-count{animation:none!important}}


/* V1.11.1 — Schedule Board + Multi-Device Concurrency Validation */
.schedule-toolbar{align-items:flex-end;gap:18px}
.schedule-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.schedule-date{width:132px;min-width:132px;text-align:center;background:#fff}
.schedule-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.schedule-summary-item{background:#fff;border:1px solid var(--line,#d9e3de);border-radius:16px;padding:15px 17px;box-shadow:0 8px 24px rgba(25,63,51,.045)}.schedule-summary-item span{display:block;color:#6b7a73;font-size:12px;margin-bottom:7px}.schedule-summary-item b{font-size:24px;color:#173f33}
.schedule-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:6px 0 14px;color:#53665d;font-size:12px}.schedule-legend span{display:flex;align-items:center;gap:7px}.schedule-legend small{margin-left:auto}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-dot.available{background:#62a783}.legend-dot.busy{background:#c8a94f}.legend-dot.full{background:#b83b39}
.schedule-grid{display:block}.schedule-board{overflow:hidden;border:1px solid #d7e2dc;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(25,63,51,.045)}.schedule-board-header,.schedule-board-row{display:grid;grid-template-columns:132px 122px minmax(0,1fr);align-items:stretch}.schedule-board-header{background:#f6f9f7;border-bottom:1px solid #dce6e1;color:#5a6c63;font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.schedule-board-header span{padding:11px 14px}.schedule-board-row{min-height:62px;border-bottom:1px solid #e4ebe7;transition:background .16s ease}.schedule-board-row:last-child{border-bottom:0}.schedule-board-row:hover{filter:saturate(1.03)}.schedule-board-time,.schedule-board-capacity{display:flex;flex-direction:column;justify-content:center;padding:10px 14px;border-right:1px solid #e5ece8}.schedule-board-time b{font-size:13px;color:#173f33;white-space:nowrap}.schedule-board-capacity b{font-size:14px;color:#173f33}.schedule-board-capacity span{font-size:10.5px;color:#6d7c75;margin-top:2px;font-weight:700}.schedule-board-track{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 9px;background:#edf8f2}.schedule-board-row.slot-busy .schedule-board-track{background:#fff8e7}.schedule-board-row.slot-full .schedule-board-track{background:#fff0ef}.schedule-board-row.slot-full .schedule-board-capacity{background:#fff8f7}.schedule-board-row.slot-busy .schedule-board-capacity{background:#fffdf6}.schedule-board-empty{display:flex;align-items:center;gap:12px;width:100%;height:100%;min-height:42px;padding:0 10px;color:#2e7458}.schedule-board-empty span{font-size:12px;font-weight:800}.schedule-board-empty b{font-size:12px}.schedule-board-appointment{appearance:none;min-width:215px;max-width:310px;flex:1 1 230px;display:flex;align-items:center;gap:9px;border:1px solid #ead895;background:#fff4d7;border-radius:10px;padding:8px 10px;text-align:left;cursor:pointer;color:#173f33;box-shadow:0 2px 6px rgba(71,64,20,.035);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.schedule-board-appointment:hover{transform:translateY(-1px);border-color:#d0b253;box-shadow:0 6px 14px rgba(71,64,20,.08)}.slot-full .schedule-board-appointment{border-color:#efb9b7;background:#ffe4e2}.slot-full .schedule-board-appointment:hover{border-color:#d96c68}.appointment-dot{width:8px;height:8px;border-radius:2px;background:#d5a72e;flex:0 0 auto}.slot-full .appointment-dot{background:#d34a45}.appointment-copy{display:block;min-width:0}.appointment-copy b,.appointment-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-copy b{font-size:11.5px;color:#183f33}.appointment-copy small{font-size:10px;color:#63736b;margin-top:2px}.schedule-board-appointment.reserved{cursor:default;background:#f0f2f1;border-color:#dfe5e2;box-shadow:none}.schedule-board-appointment.reserved .appointment-dot{background:#8a9992}.schedule-board-appointment.reserved:hover{transform:none}.schedule-slot,.schedule-slot-head,.schedule-slot-body,.schedule-empty,.schedule-appointment,.slot-status{display:none!important}
.slot-hint{margin:10px 0 4px;padding:10px 12px;border:1px solid #dce5e0;background:#f7faf8;border-radius:11px;font-size:12px;color:#65776e}.slot-hint.available{border-color:#b8d8c8;background:#f0f8f4;color:#28664d}.slot-hint.busy{border-color:#e7d799;background:#fcf8ea;color:#75611d}.slot-hint.full{border-color:#e5b9b7;background:#fff4f3;color:#963b38;font-weight:700}
@media(max-width:900px){.schedule-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-legend small{width:100%;margin-left:0}.schedule-grid{overflow-x:auto;padding-bottom:4px}.schedule-board{min-width:760px}}
@media(max-width:560px){.schedule-summary{grid-template-columns:1fr 1fr}.schedule-nav{width:100%}.schedule-date{flex:1}.schedule-toolbar{align-items:flex-start;flex-direction:column}}

/* V1.12.0 — rolling 7-day resource schedule matrix */
.schedule-range-label{display:block;margin-top:6px;color:#6b7a73;font-size:12px;font-weight:700}.gate-lane-legend .legend-dot.inbound{background:#4c9a73}.gate-lane-legend .legend-dot.outbound{background:#c7a044}.gate-lane-legend .legend-dot.flexible{background:#718a99}.schedule-matrix-wrap{overflow:auto;border:1px solid #d7e2dc;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(25,63,51,.045);max-height:68vh}.schedule-matrix{display:grid;grid-template-columns:150px 152px repeat(var(--time-cols),minmax(165px,1fr));min-width:max-content}.schedule-matrix-row{display:contents}.schedule-matrix-head>div{position:sticky;top:0;z-index:7;background:#f4f8f6;border-bottom:1px solid #d6e2dc;padding:12px 13px;color:#52675d;font-size:11px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}.schedule-sticky-date{position:sticky;left:0;z-index:5;background:#fff;border-right:1px solid #dce6e1;border-bottom:1px solid #e2e9e5;padding:12px 14px}.schedule-matrix-head .schedule-sticky-date{z-index:10;background:#f4f8f6}.schedule-sticky-lane{position:sticky;left:150px;z-index:4;background:#fbfcfb;border-right:1px solid #dce6e1;border-bottom:1px solid #e2e9e5;padding:11px 13px;display:flex;flex-direction:column;justify-content:center}.schedule-matrix-head .schedule-sticky-lane{z-index:9;background:#f4f8f6}.schedule-sticky-lane b{font-size:12px;color:#173f33}.schedule-sticky-lane small{font-size:9.5px;color:#7a8982;margin-top:3px}.schedule-date-group{display:flex;flex-direction:column;justify-content:center;background:#f8fbf9;border-top:2px solid #c9dbd1}.schedule-date-group b{font-size:12px;color:#173f33;text-transform:capitalize}.schedule-date-group span{font-size:11px;color:#687a71;margin-top:3px}.schedule-time-head{text-align:center;min-width:165px}.schedule-matrix-cell{position:relative;min-height:82px;border-right:1px solid #e2e9e5;border-bottom:1px solid #e2e9e5;padding:25px 7px 7px;transition:background .15s ease}.lane-bg-inbound{background:#eff9f4}.lane-bg-outbound{background:#fff9e9}.lane-bg-flexible{background:#f2f6f8}.schedule-matrix-cell.gate-full{box-shadow:inset 0 0 0 1px rgba(184,59,57,.15)}.schedule-cell-capacity{position:absolute;top:6px;left:8px;font-size:9.5px;font-weight:900;color:#3b725b}.lane-bg-outbound .schedule-cell-capacity{color:#8a6a1b}.lane-bg-flexible .schedule-cell-capacity{color:#667c88}.schedule-cell-capacity.full{color:#a63230}.schedule-matrix-empty{height:100%;min-height:42px;display:flex;align-items:center;justify-content:center;color:#6f8178;font-size:11px;font-weight:700}.schedule-matrix-items{display:flex;flex-direction:column;gap:5px}.schedule-mini-appointment{appearance:none;border:1px solid transparent;border-radius:9px;padding:7px 8px;text-align:left;cursor:pointer;box-shadow:0 2px 7px rgba(24,63,51,.04);transition:transform .14s ease,box-shadow .14s ease}.schedule-mini-appointment:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(24,63,51,.09)}.schedule-mini-appointment b,.schedule-mini-appointment small{display:block;max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-mini-appointment b{font-size:10.5px;color:#173f33}.schedule-mini-appointment small{font-size:9px;color:#607269;margin-top:2px}.schedule-mini-appointment.lane-inbound{background:#dff2e8;border-color:#b8ddca}.schedule-mini-appointment.lane-outbound{background:#fff0c9;border-color:#ead18d}.schedule-mini-appointment.lane-flexible{background:#e6edf1;border-color:#ccd9df}.schedule-mini-appointment.reserved{background:#ecefed;border-color:#dbe1de;cursor:default}.schedule-day-row.lane-row-inbound .schedule-sticky-lane{border-top:2px solid #c9dbd1}@media(max-width:760px){.schedule-matrix-wrap{max-height:72vh}.schedule-matrix{grid-template-columns:118px 126px repeat(var(--time-cols),150px)}.schedule-sticky-lane{left:118px}.schedule-mini-appointment b,.schedule-mini-appointment small{max-width:128px}.schedule-nav .btn{padding-left:10px;padding-right:10px}}


/* ============================================================
   V1.12.0 — OPERATIONAL UX SYSTEM
   Action-first dashboard, task command center, interactive schedule,
   decision drawer, notification center, focused gate mode and mobile actions.
   ============================================================ */
.action-dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 250px 180px;gap:14px;align-items:stretch;margin-bottom:18px;background:linear-gradient(135deg,#153e32,#1d5745);border-radius:18px;padding:24px;color:#fff;box-shadow:0 14px 34px rgba(17,47,39,.14);overflow:hidden;position:relative}.action-dashboard-hero:after{content:"";position:absolute;right:-70px;top:-80px;width:240px;height:240px;border:1px solid rgba(200,169,79,.25);border-radius:50%;box-shadow:0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.02)}.action-dashboard-hero>div{position:relative;z-index:1}.action-dashboard-hero .eyebrow{color:#d6c57d}.action-dashboard-hero h2{margin:7px 0 5px;font-size:28px}.action-dashboard-hero p{margin:0;color:#c9d8d2}.action-hero-primary,.action-hero-exception{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.075);border-radius:14px;padding:16px;display:flex;flex-direction:column;justify-content:center}.action-hero-primary span,.action-hero-exception span{font-size:12px;color:#c9d8d2}.action-hero-primary strong,.action-hero-exception strong{font-size:34px;margin:4px 0 8px}.action-hero-primary .btn{align-self:flex-start;background:#fff;color:#173f33}.action-hero-exception strong{color:#f0cf6b}.action-hero-exception small{color:#c9d8d2}.metric-button{appearance:none;text-align:left;cursor:pointer;color:inherit}.metric-button:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(18,55,42,.09)}.metric.hold:after{background:var(--danger)}
.action-card-list{display:flex;flex-direction:column;gap:9px}.action-task-card{appearance:none;width:100%;display:grid;grid-template-columns:4px 1fr 24px;gap:12px;align-items:center;border:1px solid #e3ebe7;background:#fff;border-radius:12px;padding:12px 13px;text-align:left;transition:.16s}.action-task-card:hover{transform:translateY(-1px);border-color:#bad1c6;box-shadow:0 8px 18px rgba(18,55,42,.065)}.task-rail{height:100%;min-height:48px;border-radius:999px;background:#c8a94f}.action-task-card.exception .task-rail{background:#b83b39}.action-task-card.waiting .task-rail{background:#8a9992}.task-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.task-copy strong,.task-copy small{display:block}.task-copy strong{font-size:14px;color:#173f33;margin-top:3px}.task-copy small{font-size:12px;color:#708078;margin-top:3px}.task-chevron{font-size:20px;color:#719084}.premium-empty{padding:34px;text-align:center;color:#6a7a72}.premium-empty>div{width:42px;height:42px;display:grid;place-items:center;margin:0 auto 10px;border-radius:50%;background:#e9f4ee;color:#1f6d50;font-weight:900}.premium-empty h3{margin:0 0 5px;color:#173f33}.premium-empty p{margin:0}.premium-empty.compact{padding:22px}
.task-filter-bar,.schedule-filter-group{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.task-filter,.schedule-filter{appearance:none;border:1px solid #d7e2dc;background:#fff;border-radius:999px;padding:8px 13px;color:#5c6d65;font-weight:750;font-size:13px}.task-filter.active,.schedule-filter.active{background:#173f33;color:#fff;border-color:#173f33}.task-board{display:flex;flex-direction:column;gap:16px}.task-section{background:#fff;border:1px solid #dfe7e2;border-radius:14px;overflow:hidden}.task-section-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f6f9f7;color:#52645c;font-size:12px;font-weight:850;letter-spacing:.06em}.task-section-head b{background:#e8efeb;border-radius:999px;padding:4px 8px;color:#173f33}.task-command-list{display:flex;flex-direction:column}.task-command-card{appearance:none;display:grid;grid-template-columns:10px minmax(0,1fr) auto 28px;align-items:center;gap:12px;border:0;border-bottom:1px solid #edf1ef;background:#fff;padding:14px 16px;text-align:left}.task-command-card:last-child{border-bottom:0}.task-command-card:hover{background:#fafcfb}.task-priority-dot{width:9px;height:9px;border-radius:50%;background:#c8a94f}.priority-exception .task-priority-dot{background:#b83b39;box-shadow:0 0 0 5px rgba(184,59,57,.08)}.priority-waiting .task-priority-dot{background:#8a9992}.task-command-card b,.task-command-card strong,.task-command-card small{display:block}.task-command-card b{font-size:13px;color:#244d3e}.task-command-card strong{font-size:15px;color:#17211d;margin-top:3px}.task-command-card small{font-size:12px;color:#708078;margin-top:3px}.task-command-card>i{font-style:normal;font-size:19px;color:#7b958a}
.notification-btn{position:relative;width:42px;height:42px;border-radius:11px;border:1px solid #d9e4de;background:#fff;color:#173f33;display:grid;place-items:center;font-size:21px}.notification-btn:hover{background:#f3f7f5}.notification-badge{position:absolute;right:-4px;top:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#b83b39;color:#fff;font-size:10px;display:grid;place-items:center;border:2px solid #fff}.notification-panel{position:fixed;right:18px;top:78px;width:min(390px,calc(100vw - 28px));max-height:calc(100vh - 100px);z-index:90;background:#fff;border:1px solid #dbe5df;border-radius:16px;box-shadow:0 24px 70px rgba(14,48,37,.22);overflow:hidden}.notification-panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid #e4ebe7}.notification-panel-head h3{margin:4px 0 0;color:#173f33}.notification-list{max-height:520px;overflow:auto}.notification-item{appearance:none;width:100%;display:grid;grid-template-columns:10px 1fr;gap:10px;border:0;border-bottom:1px solid #edf1ef;background:#fff;padding:13px 16px;text-align:left}.notification-item:hover{background:#f8fbf9}.notification-item.unread{background:#fffcf3}.notification-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:#c6d2cc}.notification-item.unread .notification-dot{background:#c8a94f;box-shadow:0 0 0 4px rgba(200,169,79,.12)}.notification-item b,.notification-item small,.notification-item em{display:block}.notification-item b{font-size:13px;color:#173f33}.notification-item small{font-size:12px;color:#5f7068;margin-top:3px}.notification-item em{font-size:11px;color:#89958f;margin-top:3px;font-style:normal}.notification-panel-foot{display:flex;justify-content:space-between;gap:10px;padding:10px 13px;border-top:1px solid #e5ece8;background:#fafcfb}
.schedule-control-bar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:0 0 12px}.schedule-filter-group{margin:0}.schedule-search{display:flex;align-items:center;gap:7px;min-width:260px;border:1px solid #d7e2dc;background:#fff;border-radius:10px;padding:0 10px}.schedule-search input{border:0;margin:0;padding:9px 3px;min-height:40px;box-shadow:none}.schedule-search input:focus{box-shadow:none}.schedule-matrix-cell{overflow:hidden}.schedule-matrix-cell:hover{outline:2px solid rgba(36,92,74,.10);outline-offset:-2px}.schedule-quick-create{position:absolute;right:6px;top:5px;width:24px;height:24px;border:1px solid rgba(23,63,51,.12);border-radius:7px;background:rgba(255,255,255,.85);color:#173f33;font-size:16px;line-height:1}.schedule-quick-create:hover{background:#173f33;color:#fff}.schedule-matrix-cell.search-muted{opacity:.38}.appointment-slot-context{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 13px;border-radius:10px;background:#edf6f1;border:1px solid #c7ddcf;margin-bottom:14px}.appointment-slot-context span{font-size:12px;color:#65766e}.appointment-slot-context b{font-size:13px;color:#173f33}.form-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:2px 0 20px}.form-progress span{display:flex;align-items:center;gap:7px;padding:9px;border-radius:9px;background:#f3f6f4;color:#819087;font-size:11px;font-weight:750}.form-progress i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dfe7e2;color:#66766e;font-style:normal}.form-progress span.active{background:#fff8e4;color:#755d16}.form-progress span.active i{background:#c8a94f;color:#fff}.form-progress span.complete{background:#eaf5ef;color:#2b6d53}.form-progress span.complete i{background:#2b805f;color:#fff}.activity-selector:focus-within{border-color:#b9d1c5}
.visit-drawer-shell{place-items:stretch end;padding:0}.visit-drawer-shell .modal-backdrop{background:rgba(12,29,23,.42)}.visit-drawer{width:min(680px,96vw);height:100vh;max-height:100vh;border-radius:20px 0 0 20px;padding:26px 26px 0;overflow:auto;animation:drawerIn .2s ease}.drawer-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:2px 48px 18px 0;border-bottom:1px solid #e3ebe7}.drawer-hero h2{margin:5px 0 2px;color:#173f33;font-size:25px}.drawer-hero p{margin:0;color:#697a72}.decision-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.decision-summary section{border:1px solid #dfe7e2;border-radius:12px;padding:14px;background:#fbfcfb}.decision-label{display:block;font-size:10px;letter-spacing:.09em;font-weight:900;color:#7a8982;margin-bottom:10px}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.decision-grid .wide{grid-column:1/-1}.decision-grid span{display:block;font-size:10px;color:#7b8983}.decision-grid b{display:block;margin-top:2px;font-size:12.5px;color:#173f33}.arrival-strip{display:flex;justify-content:space-between;gap:12px;background:#edf5f1;border-radius:10px;padding:11px 13px;margin-bottom:12px;font-size:12px}.drawer-actions-sticky{position:sticky;bottom:0;z-index:5;background:linear-gradient(to top,#fff 82%,rgba(255,255,255,0));padding:18px 0 15px;margin-top:8px}.drawer-actions-sticky .modal-actions{margin:0;display:flex;gap:8px;flex-wrap:wrap}.drawer-actions-sticky .modal-actions .btn{flex:1 1 150px}.drawer-timeline{padding-bottom:32px}.activity-timeline{max-height:none}
body.gate-focus .sidebar,body.gate-focus .workspace-header{display:none}body.gate-focus .internal-app{grid-template-columns:1fr}body.gate-focus .app-page{max-width:none;padding:18px;min-height:100vh}body.gate-focus #pageScan{display:block;background:radial-gradient(circle at top,#f8fbf9,#edf3ef)}body.gate-focus .gate-mode-bar{position:sticky;top:0;z-index:10}body.gate-focus .scan-layout{max-width:1180px;margin:16px auto;grid-template-columns:1.05fr .95fr}body.gate-focus .camera-wrap{min-height:420px}.gate-focus .scan-card,.gate-focus .scan-result{box-shadow:0 16px 44px rgba(18,55,42,.09)}
@keyframes drawerIn{from{transform:translateX(28px);opacity:.7}to{transform:translateX(0);opacity:1}}
@media(max-width:980px){.action-dashboard-hero{grid-template-columns:1fr 1fr}.action-dashboard-hero>div:first-child{grid-column:1/-1}.decision-summary{grid-template-columns:1fr}.schedule-control-bar{align-items:stretch;flex-direction:column}.schedule-search{min-width:0;width:100%}}
@media(max-width:700px){.action-dashboard-hero{grid-template-columns:1fr;padding:18px}.action-dashboard-hero>div:first-child{grid-column:auto}.operational-metrics{grid-template-columns:1fr 1fr}.notification-panel{right:10px;top:70px}.task-command-card{grid-template-columns:9px 1fr 24px}.task-command-card>.status-pill{display:none}.form-progress{grid-template-columns:1fr 1fr}.visit-drawer{width:100vw;border-radius:0;padding:20px 18px 0}.decision-grid{grid-template-columns:1fr}.drawer-actions-sticky .modal-actions{position:sticky;bottom:0}.gate-device-control{flex-wrap:wrap}.schedule-search{display:none}}

@media(max-width:700px){body.gate-page .action-stack{position:sticky;bottom:0;background:linear-gradient(to top,#fff 86%,rgba(255,255,255,0));padding-top:18px;padding-bottom:max(12px,env(safe-area-inset-bottom));z-index:7}body.gate-page .scan-actions{position:sticky;bottom:0;z-index:6;background:#fff;padding:10px 0}}


/* V1.12.1 — Motion, Live State & Mobile Experience */
:root{--motion-fast:140ms;--motion-base:220ms;--motion-slow:360ms;--skeleton:#e9efec;--skeleton-hi:#f8faf9}
.live-state{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #dbe5df;border-radius:999px;background:#fbfdfc;color:#64756d;font-size:11px;font-weight:750;white-space:nowrap}.live-state.syncing .live-dot{background:#c8a94f}.live-state.offline,.live-state.error{color:#9a4b48;background:#fff8f7;border-color:#efd6d4}.live-state.offline .live-dot,.live-state.error .live-dot{background:#b83b39;animation:none}.live-state.syncing .live-dot{animation:syncPulse .8s ease-in-out infinite}
.app-page.page-enter{animation:pageEnter .26s var(--ease-premium)}
.value-bump{animation:valueBump .42s var(--ease-premium)}
.skeleton-stack{display:grid;gap:10px;padding:6px}.skeleton-row{display:grid;grid-template-columns:42px 1fr 80px;gap:12px;align-items:center;min-height:52px}.skeleton-row i,.skeleton-row span,.skeleton-row em,.skeleton-card>*{display:block;border-radius:8px;background:linear-gradient(90deg,var(--skeleton) 18%,var(--skeleton-hi) 38%,var(--skeleton) 62%);background-size:260% 100%;animation:skeletonShimmer 1.25s ease-in-out infinite}.skeleton-row i{width:34px;height:34px;border-radius:50%}.skeleton-row span{height:13px;width:var(--sk,70%)}.skeleton-row em{height:11px}.skeleton-cards{display:grid;gap:10px}.skeleton-card{border:1px solid #e5ece8;border-radius:12px;padding:14px;display:grid;grid-template-columns:8px 1fr;gap:10px}.skeleton-card i{grid-row:span 2;width:8px;height:54px}.skeleton-card span{height:14px;width:68%}.skeleton-card em{height:11px;width:86%}
.notification-pulse{animation:notificationPulse .52s ease 3}
.status-pill{transition:transform var(--motion-base) var(--ease-premium),background-color var(--motion-base),color var(--motion-base),box-shadow var(--motion-base)}
.schedule-time-head{position:relative}.schedule-time-head.is-current-time{background:#fff9e9;color:#6d5515;box-shadow:inset 0 -2px #c8a94f}.schedule-time-head.is-current-time small{display:block;font-size:8px;letter-spacing:.04em;margin-top:2px;color:#987520}.schedule-date-group.is-today{background:#f1f8f4!important;box-shadow:inset 3px 0 #2b805f}.schedule-date-group em{display:inline-flex;margin-top:6px;padding:3px 6px;border-radius:999px;background:#dff0e7;color:#2b6d53;font-size:8px;font-style:normal;font-weight:900;letter-spacing:.06em}.schedule-matrix-cell.is-today{box-shadow:inset 0 0 0 1px rgba(43,128,95,.05)}.schedule-matrix-cell.is-current-slot{background-image:linear-gradient(rgba(255,248,226,.38),rgba(255,248,226,.38))}.schedule-now-line{position:absolute;top:0;bottom:0;width:2px;background:#c79e2d;z-index:7;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.45)}.schedule-now-line i{position:absolute;top:31px;left:4px;background:#b48a19;color:#fff;border-radius:5px;padding:2px 4px;font-size:7px;font-style:normal;font-weight:900;letter-spacing:.05em}.schedule-now-legend{display:inline-flex!important;align-items:center;gap:7px}.schedule-now-legend i{width:2px;height:14px;background:#c79e2d;display:inline-block}.schedule-hover-card{position:fixed;z-index:160;width:270px;padding:11px 12px;border-radius:11px;background:#15362c;color:#fff;box-shadow:0 16px 36px rgba(11,39,30,.22);pointer-events:none;animation:tooltipIn .14s ease}.schedule-hover-card b,.schedule-hover-card span,.schedule-hover-card small{display:block}.schedule-hover-card b{font-size:13px}.schedule-hover-card span{font-size:10px;color:#d2e1da;margin-top:3px}.schedule-hover-card small{font-size:11px;color:#afc6bb;margin-top:5px;line-height:1.35}
.activity-direction{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0 8px}.activity-direction button{appearance:none;border:1px solid #d9e4de;background:#fff;border-radius:10px;padding:10px;text-align:left;color:#53655c}.activity-direction button:hover{border-color:#9bb9aa;background:#f8fbf9}.activity-direction button.active{border-color:#2f6f56;background:#edf7f1;box-shadow:0 0 0 1px rgba(47,111,86,.08)}.activity-direction b,.activity-direction small{display:block}.activity-direction b{font-size:12px;color:#173f33}.activity-direction small{font-size:10px;color:#73827b;margin-top:2px}.activity-direction-hint{padding:9px 11px;border-radius:9px;background:#f5f7f6;color:#7a8882;font-size:11px;margin-bottom:10px}.activity-direction-hint.selected{background:#eef6f1;color:#416755}.adaptive-options .check-card{animation:adaptiveReveal .18s ease}
body.gate-feedback-success:after,body.gate-feedback-error:after,body.gate-feedback-hold:after{content:"";position:fixed;inset:0;z-index:250;pointer-events:none;animation:gateFlash .58s ease forwards}body.gate-feedback-success:after{box-shadow:inset 0 0 0 7px rgba(37,132,95,.58);background:rgba(37,132,95,.035)}body.gate-feedback-error:after{box-shadow:inset 0 0 0 7px rgba(184,59,57,.58);background:rgba(184,59,57,.035)}body.gate-feedback-hold:after{box-shadow:inset 0 0 0 7px rgba(190,137,23,.58);background:rgba(190,137,23,.04)}
.mobile-bottom-nav,.mobile-more-panel{display:none}
@keyframes pageEnter{from{opacity:.35;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes valueBump{0%{transform:scale(.9);opacity:.55}65%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}@keyframes skeletonShimmer{0%{background-position:110% 0}100%{background-position:-110% 0}}@keyframes notificationPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08);box-shadow:0 0 0 7px rgba(200,169,79,.10)}}@keyframes syncPulse{0%,100%{opacity:.55}50%{opacity:1}}@keyframes tooltipIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes adaptiveReveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes gateFlash{0%{opacity:0}20%{opacity:1}100%{opacity:0}}
@media(max-width:700px){
  .sidebar{display:none!important}.workspace{padding-bottom:82px!important}.internal-app{display:block!important}.workspace-header{height:66px;padding:0 12px}.workspace-header .header-actions{gap:6px}.workspace-header #refreshBtn{display:none}.live-state{padding:6px 8px}.live-state #liveStateLabel{max-width:72px;overflow:hidden;text-overflow:ellipsis}.mobile-bottom-nav{position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));height:64px;z-index:80;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;background:rgba(17,47,39,.96);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:18px;box-shadow:0 18px 44px rgba(11,35,27,.28);padding:5px}.mobile-bottom-nav button{position:relative;appearance:none;border:0;background:transparent;color:#a9c0b6;border-radius:13px;min-height:52px;display:grid;place-items:center;align-content:center;gap:1px}.mobile-bottom-nav button span{font-size:18px;line-height:1}.mobile-bottom-nav button small{font-size:9px;font-weight:800}.mobile-bottom-nav button.active{background:rgba(255,255,255,.10);color:#fff}.mobile-nav-badge{position:absolute;right:11px;top:3px;min-width:17px;height:17px;border-radius:999px;padding:0 4px;background:#c8a94f;color:#173f33;display:grid;place-items:center;font-size:9px;border:2px solid #173f33}.mobile-more-panel{display:block;position:fixed;z-index:95;left:10px;right:10px;bottom:80px;background:#fff;border:1px solid #dce6e1;border-radius:18px;box-shadow:0 24px 60px rgba(9,35,26,.28);padding:14px;animation:mobileSheetIn .2s var(--ease-premium)}.mobile-more-head{display:flex;justify-content:space-between;align-items:center;padding:2px 2px 12px;color:#173f33}.mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-more-grid button{appearance:none;border:1px solid #e0e8e4;background:#f8faf9;border-radius:11px;padding:12px;text-align:left;color:#284c3d;font-weight:750;font-size:12px}.mobile-more-grid button:active{background:#edf5f1}.activity-direction{grid-template-columns:1fr 1fr}.schedule-hover-card{display:none!important}.toast{bottom:88px}.drawer-actions-sticky{bottom:76px}.notification-panel{bottom:80px;top:auto;max-height:70vh}.form-progress{position:sticky;top:-1px;z-index:3;background:#fff;padding:5px 0 8px}.gate-focus .mobile-bottom-nav{display:none!important}.gate-focus .workspace{padding-bottom:0!important}
}
@keyframes mobileSheetIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.app-page.page-enter,.value-bump,.skeleton-row i,.skeleton-row span,.skeleton-row em,.skeleton-card>*,.notification-pulse,.adaptive-options .check-card{animation:none!important}}

/* =====================================================================
   V1.13.0 Visual dashboard
   Lane identity colors (validated for color-vision deficiency, adjacent ΔE ≥ 11):
   Inbound #1f8f5a · Outbound #d59a1a · Lainnya/QC #4a86c0 · Meeting #c9507f
   ===================================================================== */
.legend-dot.inbound{background:#1f8f5a}.legend-dot.outbound{background:#d59a1a}.legend-dot.flexible{background:#4a86c0}
.dash-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(120deg,var(--green) 0%,var(--green2) 100%);color:#fff;border-radius:var(--radius);padding:24px 28px;margin-bottom:18px;box-shadow:var(--shadow)}
.dash-hero .eyebrow{color:var(--gold)}
.dash-hero h2{margin:6px 0 4px;font-size:28px;color:#fff}
.dash-hero p{margin:0;color:rgba(255,255,255,.86);font-size:15px}
.dash-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.dash-hero-actions .btn-primary{background:#fff;color:var(--green);border-color:#fff}
.dash-hero-actions .btn-primary:hover{background:var(--gold2)}
.dash-hero-actions .btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.dash-hero-actions .btn-secondary:hover{background:rgba(255,255,255,.1)}
.dash-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}
.dash-kpi{position:relative;text-align:left;display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px 14px;cursor:pointer;font:inherit;color:var(--ink);box-shadow:0 5px 20px rgba(18,55,42,.04);transition:transform var(--motion-fast,140ms) ease,box-shadow var(--motion-fast,140ms) ease,border-color var(--motion-fast,140ms) ease}
.dash-kpi:hover,.dash-kpi:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-hover,0 18px 44px rgba(18,55,42,.12));border-color:#b9d3c6;outline:none}
.dash-kpi:focus-visible{box-shadow:0 0 0 3px rgba(31,143,90,.35)}
.dash-kpi-label{font-size:13px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
.dash-kpi-label i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#d03b3b;color:#fff;font-style:normal;font-size:12px;font-weight:900}
.dash-kpi strong{font-size:32px;line-height:1.1;font-weight:800;color:var(--ink)}
.dash-kpi small{font-size:12.5px;color:var(--muted)}
.dash-kpi em{position:absolute;right:14px;top:14px;font-style:normal;color:#a7b6af;font-weight:700;transition:transform var(--motion-fast,140ms) ease,color var(--motion-fast,140ms) ease}
.dash-kpi:hover em{transform:translateX(3px);color:var(--green2)}
.dash-kpi.tone-action{border-left:4px solid var(--gold)}
.dash-kpi.tone-inside{border-left:4px solid #4a86c0}
.dash-kpi.tone-critical{border-left:4px solid #d03b3b;background:#fff8f7}
.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.dash-grid>.hidden{display:none}
.dash-card .card-head{margin-bottom:10px}
.dash-card h3{margin:4px 0 0}
.dash-sub{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
.dash-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);margin:0 0 6px}
.dash-legend span{display:inline-flex;align-items:center;gap:6px}
.dash-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.dash-chart{position:relative;min-height:230px}
.dash-chart svg{display:block;overflow:visible}
.dash-chart .grid{stroke:#e7eeea;stroke-width:1}
.dash-chart .base{stroke:#c9d6cf;stroke-width:1}
.dash-chart .tick{font-size:11px;fill:#8a9993;font-variant-numeric:tabular-nums}
.dash-chart .cap{font-size:12px;font-weight:800;fill:var(--ink)}
.dash-chart .xl{font-size:12px;font-weight:600;fill:var(--muted)}
.dash-chart .xs{font-size:11px;fill:#8a9993}
.dash-chart .strong{fill:var(--green);font-weight:800}
.dash-chart .col{cursor:pointer;outline:none;transition:opacity var(--motion-fast,140ms) ease}
.dash-chart .col .hit{fill:transparent}
.dash-chart .col:hover .hit,.dash-chart .col:focus-visible .hit{fill:rgba(23,63,51,.05)}
.dash-chart .col:focus-visible .hit{stroke:var(--green2);stroke-width:1.5}
.dash-chart .col.is-highlight .hit{fill:rgba(200,169,79,.10)}
.dash-chart .col.dimmed{opacity:.45}
.chart-empty{position:absolute;inset:40px 0 50px 34px;display:grid;place-items:center;color:var(--muted);font-size:13px;pointer-events:none}
.chart-tooltip{position:fixed;z-index:80;min-width:180px;max-width:280px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px rgba(18,55,42,.18);padding:10px 12px;font-size:12.5px;pointer-events:none}
.chart-tooltip>b{display:block;margin-bottom:6px;color:var(--ink);font-size:13px}
.chart-tooltip .tip-row{display:grid;grid-template-columns:14px auto 1fr;align-items:center;gap:8px;padding:2px 0}
.chart-tooltip .tip-row i{width:12px;height:3px;border-radius:2px;display:block}
.chart-tooltip .tip-row strong{font-variant-numeric:tabular-nums;color:var(--ink)}
.chart-tooltip .tip-row span{color:var(--muted)}
.chart-tooltip small{display:block;margin-top:6px;color:var(--muted)}
.dash-table{margin-top:8px;font-size:13px}
.dash-table summary{cursor:pointer;color:var(--green2);font-weight:700;font-size:12.5px;width:max-content}
.dash-table .compact-table{margin-top:8px}
.dash-table .compact-table td,.dash-table .compact-table th{padding:6px 8px;font-variant-numeric:tabular-nums}
.dash-bars{display:flex;flex-direction:column;gap:4px}
.hbar{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 34px;align-items:center;gap:10px;width:100%;padding:8px 8px;border:0;border-radius:10px;background:transparent;font:inherit;color:var(--ink);text-align:left;cursor:pointer;transition:background var(--motion-fast,140ms) ease}
.hbar:hover,.hbar:focus-visible{background:#f1f6f3;outline:none}
.hbar:focus-visible{box-shadow:0 0 0 2px rgba(31,143,90,.4)}
.hbar-label{font-size:13px;color:var(--ink);overflow-wrap:anywhere}
.hbar-track{height:12px;background:#eef3f0;border-radius:0 4px 4px 0;overflow:hidden}
.hbar-track i{display:block;height:100%;background:var(--green2);border-radius:0 4px 4px 0;transition:width var(--motion-base,220ms) var(--ease-premium,ease)}
.hbar-value{font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.arrival-hero{display:flex;align-items:baseline;gap:10px;margin:4px 0 12px}
.arrival-hero strong{font-size:40px;line-height:1;font-weight:800;color:var(--ink)}
.arrival-hero span{color:var(--muted);font-size:13px}
.arrival-bar{display:flex;gap:2px;height:14px;border-radius:4px;overflow:hidden;background:#eef3f0;margin-bottom:12px}
.arrival-bar i{display:block;height:100%}
.arrival-list{display:flex;flex-direction:column;gap:2px}
.arrival-row{display:grid;grid-template-columns:22px 1fr auto 52px;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:10px;background:transparent;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.arrival-row:hover,.arrival-row:focus-visible{background:#f1f6f3;outline:none}
.arrival-key{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;color:#fff;font-size:11px;font-weight:900}
.arrival-row b{font-variant-numeric:tabular-nums}
.arrival-row small{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.filter-chips{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.filter-chips.hidden{display:none}
.chip-label{font-size:12.5px;color:var(--muted)}
.filter-chip{display:inline-flex;align-items:center;gap:8px;background:var(--green3);color:var(--green);border:1px solid #c6ddd0;border-radius:999px;padding:5px 6px 5px 12px;font-size:13px}
.filter-chip small{color:var(--green2)}
.filter-chip button{border:0;background:#fff;color:var(--green);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:15px;line-height:1}
.filter-chip button:hover{background:#d9ebe1}
@media(max-width:1100px){.dash-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid .span-3{grid-column:span 2}}
@media(max-width:760px){.dash-hero{flex-direction:column;align-items:flex-start;padding:20px}.dash-hero h2{font-size:23px}.dash-hero-actions{justify-content:flex-start;width:100%}.dash-hero-actions .btn{flex:1}.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dash-kpi strong{font-size:26px}.dash-grid{grid-template-columns:1fr;gap:12px}.dash-grid .span-2,.dash-grid .span-3{grid-column:auto}}
@media (prefers-reduced-motion:reduce){.dash-kpi,.dash-kpi em,.hbar-track i,.dash-chart .col{transition:none}}
.dash-grid .card{padding:22px}
.dash-card .card-head .text-btn,.dash-grid .card-head .text-btn{white-space:nowrap;flex-shrink:0}
@media(max-width:760px){.dash-grid .card{padding:16px}}
.nav-ico{display:inline-grid;place-items:center;width:20px;height:20px;line-height:0}
.nav-ico svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn-icon{display:inline-grid;place-items:center;width:42px;height:42px;padding:0}
.notification-btn .nav-ico svg{width:20px;height:20px}
.mobile-bottom-nav .nav-ico svg{width:21px;height:21px}
.dash-grid>*,.dash-kpis>*{min-width:0}
.dash-grid .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:1100px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.hbar{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 30px;gap:8px}}

/* =====================================================================
   V1.14.0 Calendar schedule (Bulan / Minggu / Hari)
   ===================================================================== */
.cal-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.cal-nav,.cal-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-nav .btn-icon{width:40px;height:40px;font-size:22px;line-height:1}
.cal-title{margin:0 0 0 8px;font-size:22px;color:var(--ink);text-transform:capitalize}
.cal-right .schedule-date{width:130px}
.view-seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.view-seg button{border:0;background:transparent;padding:9px 16px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer}
.view-seg button+button{border-left:1px solid var(--line)}
.view-seg button.active{background:var(--green);color:#fff}
.view-seg button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
#pageSchedule[data-view="month"] .schedule-now-legend{display:none}
#pageSchedule:not([data-view="month"]) .cal-full-legend{display:none}
.cal-full{display:inline-block;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:1px 6px;border-radius:999px;background:#fbe9e8;color:#a32d2d}
.cal-month{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.cal-row.cal-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f6f9f7;border-bottom:1px solid var(--line)}
.cal-dow{padding:10px 12px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#52645c}
.cal-dow.weekend{color:#8a9993}
.cal-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-day{position:relative;min-height:112px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.cal-cells>.cal-day:nth-child(7n){border-right:0}
.cal-blank{background:#fafcfb}
.cal-open{width:100%;height:100%;min-height:112px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:9px 10px 10px;border:0;background:transparent;font:inherit;color:var(--ink);text-align:left;cursor:pointer;transition:background var(--motion-fast,140ms) ease}
.cal-open:hover{background:#f3f8f5}
.cal-open:focus-visible{outline:2px solid var(--green2);outline-offset:-2px}
.cal-dn{display:flex;justify-content:space-between;align-items:center;width:100%;gap:6px}
.cal-dn b{font-size:13px;font-weight:700;color:#52645c;min-width:26px;height:26px;display:inline-grid;place-items:center;border-radius:999px}
.cal-day.is-today .cal-dn b{background:var(--green);color:#fff}
.cal-day.is-selected .cal-open{box-shadow:inset 0 0 0 2px var(--gold)}
.cal-day.is-past .cal-open{background:#fbfcfb}
.cal-day.is-past .cal-dn b{color:#9aa7a1}
.cal-day.is-dim .cal-open{opacity:.38}
.cal-count{display:flex;align-items:baseline;gap:5px}
.cal-count strong{font-size:20px;line-height:1;font-weight:800}
.cal-count small{font-size:11.5px;color:var(--muted)}
.cal-none{color:#b6c2bc;font-size:14px}
.cal-bars{display:flex;gap:2px;height:7px;min-width:18px;max-width:100%}
.cal-bars i{display:block;height:100%;border-radius:2px;min-width:4px}
.cb-in{background:#1f8f5a}.cb-out{background:#d59a1a}.cb-flex{background:#4a86c0}
.cal-match{font-size:11px;font-weight:800;color:var(--green);background:var(--green3);padding:1px 7px;border-radius:999px}
.cal-add{position:absolute;right:8px;bottom:8px;width:28px;height:28px;border-radius:50%;border:1px solid #c6ddd0;background:#fff;color:var(--green);font-size:18px;line-height:1;cursor:pointer;opacity:0;transition:opacity var(--motion-fast,140ms) ease}
.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}
.cal-add:hover{background:var(--green3)}
.schedule-mini-appointment.is-done{opacity:.6}
.day-agenda{display:flex;flex-direction:column;gap:10px}
.day-agenda-add{display:flex;justify-content:flex-end}
.agenda-slot{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.agenda-time{display:flex;flex-direction:column;gap:2px}
.agenda-time b{font-size:16px}
.agenda-time small{color:var(--muted);font-size:11.5px}
.agenda-items{display:flex;flex-direction:column;gap:8px;min-width:0}
.agenda-item{display:grid;gap:3px;text-align:left;font:inherit;color:var(--ink);background:#f8fbf9;border:1px solid var(--line);border-left:4px solid;border-radius:0 10px 10px 0;padding:9px 10px;cursor:pointer;min-width:0}
.agenda-item b{overflow-wrap:anywhere}
.agenda-item small{color:var(--muted);font-size:12px}
.agenda-item .status-pill{justify-self:start}
.agenda-lane{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#52645c}
.agenda-item.is-done{opacity:.65}
.agenda-item.is-reserved{cursor:default;background:#f4f6f5}
.cb-in-edge{border-left-color:#1f8f5a}.cb-out-edge{border-left-color:#d59a1a}.cb-flex-edge{border-left-color:#4a86c0}
@media(max-width:760px){
  .cal-bar{gap:8px}.cal-title{font-size:18px;margin-left:4px;width:100%;order:9}
  .cal-right{width:100%;justify-content:space-between}.cal-right .schedule-date{width:120px}
  .view-seg button{padding:8px 12px}
  .cal-dow{padding:8px 0;text-align:center;font-size:11px}
  .cal-day,.cal-open{min-height:62px}
  .cal-open{padding:5px 3px;align-items:center;gap:3px}
  .cal-dn{justify-content:center}.cal-dn b{font-size:12px;min-width:24px;height:24px}
  .cal-dn .cal-full{display:none}
  .cal-day:has(.cal-full) .cal-dn b{box-shadow:0 0 0 2px #d03b3b}
  .cal-count small{display:none}.cal-count strong{font-size:14px}
  .cal-bars{width:auto!important;gap:3px;height:6px;justify-content:center}
  .cal-bars i{flex:none!important;width:6px;height:6px;border-radius:50%;min-width:0}
  .cal-match{font-size:10px;padding:0 5px}
  .cal-add{display:none}
}
.cal-busy{display:inline-block;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:1px 6px;border-radius:999px;background:#fff4d6;color:#7a5200}
@media(max-width:760px){.cal-dn .cal-busy{display:none}.cal-day:has(.cal-busy) .cal-dn b{box-shadow:0 0 0 2px #d59a1a}}
.day-grid{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.dg-row{display:grid;grid-template-columns:86px repeat(var(--dg-lanes,3),minmax(0,1fr));border-bottom:1px solid #e2e9e5}
.dg-row:last-child{border-bottom:0}
.dg-head{background:#f6f9f7;position:sticky;top:0;z-index:2}
.dg-lane-h{padding:11px 12px;border-left:1px solid #e2e9e5;display:flex;flex-direction:column;gap:2px}
.dg-lane-h span{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--ink)}
.dg-lane-h i{width:10px;height:10px;border-radius:3px;display:inline-block}
.dg-lane-h small{color:var(--muted);font-size:11.5px}
.dg-time{padding:10px 12px;display:flex;flex-direction:column;gap:1px}
.dg-time b{font-size:15px}
.dg-time small{color:var(--muted);font-size:11.5px}
.dg-time em{font-style:normal;font-size:10.5px;font-weight:800;color:#8a6a1b;background:var(--gold2);border-radius:999px;padding:1px 6px;width:max-content;margin-top:3px}
.dg-row.is-now{box-shadow:inset 4px 0 0 var(--gold)}
.dg-cell{position:relative;min-height:74px;border-left:1px solid #e2e9e5;padding:25px 8px 8px;min-width:0}
.dg-cell .schedule-quick-create{position:absolute;top:4px;right:6px}
@media(max-width:760px){
  #pageSchedule.active{display:flex;flex-direction:column}
  #pageSchedule .schedule-toolbar{order:0;margin-bottom:6px}
  #pageSchedule .schedule-toolbar p{display:none}
  #pageSchedule .cal-bar{order:1}
  #pageSchedule .schedule-control-bar{order:2}
  #pageSchedule #scheduleGrid{order:3;margin-bottom:14px}
  #pageSchedule #scheduleSummary{order:4}
  #pageSchedule .schedule-legend{order:5}
}

/* V1.15.0 schedule summary boxes */
#scheduleSummary.sched-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:12px}
.sched-stat{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font:inherit;color:var(--ink);box-shadow:0 5px 20px rgba(18,55,42,.04);cursor:pointer;transition:transform var(--motion-fast,140ms) ease,box-shadow var(--motion-fast,140ms) ease,border-color var(--motion-fast,140ms) ease}
.sched-stat:hover,.sched-stat:focus-visible{transform:translateY(-1px);border-color:#b9d3c6;box-shadow:var(--shadow-hover,0 18px 44px rgba(18,55,42,.12));outline:none}
.sched-stat:focus-visible{box-shadow:0 0 0 3px rgba(31,143,90,.35)}
.sched-stat.is-static{cursor:default}
.sched-stat.is-static:hover{transform:none;box-shadow:0 5px 20px rgba(18,55,42,.04);border-color:var(--line)}
.sched-stat .ss-label{font-size:12.5px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:6px}
.sched-stat .ss-label i{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#d03b3b;color:#fff;font-style:normal;font-size:11px;font-weight:900}
.sched-stat b{font-size:28px;line-height:1.1;font-weight:800}
.sched-stat small{font-size:12px;color:var(--muted)}
.sched-stat.tone-critical{border-left:4px solid #d03b3b;background:#fff8f7}
.sched-stat.tone-warn{border-left:4px solid #d59a1a}
.sched-stat.tone-info{border-left:4px solid #4a86c0}
.sched-stat.tone-inside{border-left:4px solid #4a86c0}
.sched-stat.tone-ok{border-left:4px solid #1f8f5a}
.sched-stat.is-active{background:var(--green);border-color:var(--green);color:#fff}
.sched-stat.is-active .ss-label,.sched-stat.is-active small,.sched-stat.is-active b{color:#fff}
.sched-stat-note{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--gold2);border:1px solid #ead18d;color:#5f4500;border-radius:12px;padding:9px 14px;margin:0 0 12px;font-size:13.5px}
.sched-stat-note.hidden{display:none}
#scheduleCapNote{color:var(--muted)}
@media(max-width:760px){#scheduleSummary.sched-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sched-stat{padding:12px}.sched-stat b{font-size:22px}#pageSchedule #scheduleStatNote{order:3}#pageSchedule #scheduleSummary{order:2}#pageSchedule .schedule-control-bar{order:2}}
@media(max-width:760px){
  #pageSchedule .schedule-toolbar{order:0}#pageSchedule .cal-bar{order:1}#pageSchedule .schedule-control-bar{order:2}
  #pageSchedule #scheduleSummary{order:6}#pageSchedule #scheduleStatNote{order:4}#pageSchedule #scheduleGrid{order:5}#pageSchedule .schedule-legend{order:7}
  #pageSchedule[data-view="day"] #scheduleSummary{order:3}
}

/* V1.15.1 detail drawer status + contact */
.drawer-status{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:11px 14px;border-radius:12px;font-weight:700;font-size:14px;border:1px solid var(--line);background:#f6f9f7;color:var(--ink)}
.drawer-status i{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#d03b3b;color:#fff;font-style:normal;font-size:12px;font-weight:900;flex:none}
.drawer-status.tone-critical{background:#fff4f3;border-color:#f3c9c6;color:#8e2422}
.drawer-status.tone-warn{background:var(--warn-bg);border-color:#ead18d;color:#6b4a00}
.drawer-status.tone-ok{background:var(--green3);border-color:#c6ddd0;color:var(--green)}
.drawer-status.tone-info{background:var(--blue-bg);border-color:#c8dcef;color:#1e4f7a}
.drawer-status.tone-inside{background:var(--blue-bg);border-color:#c8dcef;color:#1e4f7a}
.drawer-status.tone-muted{background:#f3f5f4;color:#52645c}
.drawer-contact{border:1px solid #dfe7e2;border-radius:12px;padding:14px;background:#fbfcfb;margin:14px 0 0}
.contact-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #e8eeeb}
.contact-row:last-of-type{border-bottom:0}
.contact-row span{display:block;font-size:12px;color:var(--muted)}
.contact-row b{font-size:15px;overflow-wrap:anywhere}
.contact-actions{display:flex;gap:8px;flex-wrap:wrap}
.contact-actions .btn{padding:8px 14px;text-decoration:none}
.contact-facts{margin-top:10px}

/* V1.16.0 QC lane (departemen QC internal HEW) — ungu #6a3d9a, palet tervalidasi CVD bersama In/Out/Lainnya/Meeting */
.legend-dot.qc,.gate-lane-legend .legend-dot.qc{background:#6a3d9a}
.gate-lane-legend .legend-dot.flexible{background:#4a86c0}
.cb-qc{background:#6a3d9a}
.cb-qc-edge{border-left-color:#6a3d9a}
.lane-bg-qc{background:#f6f3fa}
.lane-bg-qc .schedule-cell-capacity{color:#6a3d9a}
.schedule-mini-appointment.lane-qc{background:#ece5f5;border-color:#d6c9e8}
.activity-direction{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:700px){.activity-direction{grid-template-columns:1fr 1fr}}
/* V1.16.0 fix: kartu sub aktivitas jalur lain benar-benar tersembunyi (sebelumnya .check-card display:flex!important mengalahkan .hidden) */
.check-card.hidden{display:none!important}

/* V1.17.0 Meeting lane di Jadwal — pink #c9507f (sudah bagian palet tervalidasi) */
.legend-dot.meeting,.gate-lane-legend .legend-dot.meeting{background:#c9507f}
.cb-meet{background:#c9507f}
.cb-meet-edge{border-left-color:#c9507f}
.lane-bg-meeting{background:#fcf4f7}
.lane-bg-meeting .schedule-cell-capacity{color:#a8406a}
.schedule-mini-appointment.lane-meeting{background:#f8e6ee;border-color:#ecc9d8}

/* V1.17.0 drawer: nama perusahaan sebagai judul utama, Visit ID sebagai referensi */
.drawer-hero h2{margin:5px 0 4px;font-size:26px;font-weight:800;line-height:1.2;color:#173f33;overflow-wrap:anywhere}
.drawer-hero p.drawer-visit-id{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;color:#6b7b73}

/* V1.18 Meeting: tahap scan (Gerbang -> Office PIC -> Gerbang) */
.scan-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.scan-step{display:flex;gap:9px;align-items:flex-start;padding:10px 11px;border:1px solid #e0e8e4;border-radius:11px;background:#f8faf9;color:#6b7b73}
.scan-step i{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;background:#dfe7e2;color:#66766e}
.scan-step b{display:block;font-size:12px;color:#33473e}.scan-step span{display:block;font-size:10px;margin-top:2px}
.scan-step.done{background:#eaf5ef;border-color:#bfe0cf}.scan-step.done i{background:#2b805f;color:#fff}
.scan-step.current{background:#fff8e4;border-color:#ead99a}.scan-step.current i{background:#c8a94f;color:#fff}
@media(max-width:700px){.scan-steps{grid-template-columns:1fr}}

.revision-card{width:min(560px,95vw)}.rev-sub{margin:4px 0 16px;color:var(--muted);font-size:13px}.rev-group{border:0;padding:0;margin:0 0 12px}.rev-group legend{font-size:12px;font-weight:800;color:#3b4a44;margin-bottom:8px;padding:0}.rev-check{display:flex!important;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px!important;cursor:pointer}.rev-check input,.rev-chips input{width:auto;margin:3px 0 0;flex:0 0 auto}.rev-check span{display:block;font-weight:500}.rev-check b{display:block;color:var(--ink);font-size:13px}.rev-check small{display:block;color:var(--muted);font-size:11px;margin-top:2px;font-weight:500}.rev-box{background:#f7f9f8;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}.rev-box>b{display:block;font-size:12px;margin-bottom:8px;color:#3b4a44}.rev-chips{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.rev-chips label{display:flex;gap:8px;align-items:center;font-weight:600;margin:0;font-size:12px}.revision-card .modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
.revision-banner{margin:12px 0}.revision-banner>b{display:block;font-size:11px;letter-spacing:.08em;margin-bottom:8px}.rev-line{display:grid;gap:2px;margin-bottom:8px}.rev-line>span{font-size:11px;color:#8a6a1d;font-weight:700}.rev-line>b{font-size:13px;color:var(--ink)}.rev-line>small{color:#735100}.rev-chips-view{display:flex;flex-wrap:wrap;gap:6px}.rev-chips-view i{font-style:normal;font-weight:700;font-size:11px;background:#fff;border:1px solid #e9d89c;border-radius:999px;padding:3px 9px;color:#6f5a1d}label.needs-fix{background:#fff6e0;border-radius:10px;box-shadow:0 0 0 2px #e0b13a;padding:4px 6px}label.needs-fix::after{content:"Diminta Gudang untuk diperbaiki";display:block;font-size:10px;color:#9a6500;font-weight:700;margin-top:4px}

.att-box{margin:2px 0 14px}.att-box.hidden{display:none}.att-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.att-head b{font-size:12px;color:#3b4a44}.att-badge{font-size:10px;font-weight:900;letter-spacing:.06em;border-radius:999px;padding:3px 9px;background:#eef3f0;color:#52615b}.att-badge.req{background:#fff0d6;color:#9a6500}.att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.att-item{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f1f4f2}.att-item button.att-open{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}.att-item img{width:100%;height:100%;object-fit:cover;display:block;margin:0;border-radius:0;border:0;padding:0}.att-item .att-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(17,47,39,.85);color:#fff;font-size:14px;line-height:1;display:grid;place-items:center}.att-item .att-wait{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;color:var(--muted)}.att-add{display:grid;place-items:center;aspect-ratio:1;border:2px dashed #cfdad4;border-radius:10px;color:var(--green2);font-weight:800;font-size:12px;text-align:center;cursor:pointer;margin:0!important;background:#fafcfb;padding:6px}.att-add input{display:none}.att-hint{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5}.att-hint.err{color:var(--danger);font-weight:700}.att-busy{opacity:.6;pointer-events:none}.att-empty-warn{font-size:12px;color:#9a6500;background:#fff6e0;border:1px solid #efd78d;border-radius:10px;padding:8px 10px}.att-section .att-grid{margin-top:8px}.att-viewer{z-index:140}.att-viewer-card{position:relative;z-index:1;max-width:96vw;max-height:94vh;display:flex;flex-direction:column;align-items:center;gap:8px}.att-viewer-card img{max-width:92vw;max-height:84vh;border-radius:10px;background:#fff;object-fit:contain}.att-viewer-caption{color:#fff;font-size:12px}.att-nav{position:absolute;top:45%;border:0;background:rgba(255,255,255,.9);width:40px;height:40px;border-radius:50%;font-size:26px;line-height:1}.att-nav.prev{left:-6px}.att-nav.next{right:-6px}.att-nav[hidden]{display:none}
.att-box.needs-fix,.att-section.needs-fix-box{background:#fff6e0;border-radius:12px;box-shadow:0 0 0 2px #e0b13a;padding:8px}

/* ===== V1.18.1 Wizard Buat Jadwal Kedatangan: satu langkah per layar, lebih ringkas ===== */
#appointmentModal .appt-card{width:min(720px,96vw);padding:24px 28px 0;display:flex;flex-direction:column}
#appointmentModal .appt-card h2{font-size:22px;margin:4px 0 14px}
.wiz-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 16px}
.wiz-steps button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;background:#f3f6f4;color:#6f8078;font-size:12px;font-weight:800;border:1px solid transparent;transition:.15s}
.wiz-steps button:hover{background:#e9f0ec}.wiz-steps button:focus-visible{outline:2px solid var(--green2);outline-offset:2px}
.wiz-steps i{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#dfe7e2;color:#5d6e66;font-style:normal;font-size:11px}
.wiz-steps button.active{background:#fff8e4;color:#6b5412;border-color:#e5cf8a}.wiz-steps button.active i{background:#c8a94f;color:#fff}
.wiz-steps button.complete{background:#eaf5ef;color:#2b6d53}.wiz-steps button.complete i{background:#2b6d53;color:#fff;font-size:0}.wiz-steps button.complete i::before{content:"✓";font-size:12px}
.wiz-steps button.warn{background:#fff3e6;color:#9a5a00}.wiz-steps button.warn i{background:#e08a1e;color:#fff;font-size:0}.wiz-steps button.warn i::before{content:"!";font-size:12px;font-weight:900}
.appt-wizard{display:flex;flex-direction:column;flex:1}
.appt-wizard .wiz-pane{animation:wizIn .18s ease}@keyframes wizIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.wiz-title{margin:0 0 12px}.wiz-title b{display:block;font-size:17px;color:var(--ink)}.wiz-title span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.appt-wizard label{font-size:12px;margin-bottom:10px}.appt-wizard input,.appt-wizard textarea,.appt-wizard select{padding:9px 11px;font-size:14px;margin-top:5px}
.appt-wizard .activity-selector{margin:0;padding:12px;background:#fafcfb}.appt-wizard .activity-selector .field-title{font-size:13px}
.appt-wizard .activity-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.appt-wizard .check-card{min-height:44px;padding:9px 11px}
.appt-wizard .grid.two{gap:0 14px}
.wiz-footer{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:10px;margin:18px -28px 0;padding:12px 28px;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-top:1px solid var(--line)}
.wiz-footer .wiz-count{flex:1;text-align:center;font-size:12px;color:var(--muted);font-weight:700}
.wiz-footer .btn{min-width:120px}.wiz-footer .btn.invisible{visibility:hidden}.wiz-footer #appointmentSubmitBtn{min-width:220px}
.rv-card{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:10px;background:#fcfdfc}
.rv-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.rv-head b{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#52615b}
.rv-edit{all:unset;cursor:pointer;font-size:12px;font-weight:800;color:var(--green2);padding:3px 8px;border-radius:8px}.rv-edit:hover{background:#eaf5ef}
.rv-row{display:grid;grid-template-columns:150px 1fr;gap:8px;padding:5px 0;border-top:1px dashed #e3ebe6;font-size:13px}.rv-row:first-of-type{border-top:0}
.rv-row span{color:var(--muted)}.rv-row b{color:var(--ink);word-break:break-word}.rv-row em{color:#a3b0a9;font-style:normal}
.rv-issues{background:#fff6e0;border:1px solid #efd78d;border-radius:12px;padding:10px 12px;margin-bottom:12px}.rv-issues>b{display:block;font-size:12px;color:#8a5a00;margin-bottom:6px}
.rv-issues button{all:unset;cursor:pointer;display:flex;justify-content:space-between;gap:10px;width:100%;box-sizing:border-box;padding:6px 4px;font-size:13px;color:#5e4300;border-top:1px dashed #ecd9a0}.rv-issues button:first-of-type{border-top:0}.rv-issues button span{color:#9a6500;font-weight:800;white-space:nowrap}
.rv-ok{background:#eaf5ef;border:1px solid #bfe0cf;color:#24624a;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:13px;font-weight:700}
.rv-revision{background:#fff6e0;border:1px solid #efd78d;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:13px;color:#5e4300}.rv-revision>b{display:block;font-size:11px;letter-spacing:.08em;margin-bottom:6px;color:#8a5a00}
@media(max-width:700px){#appointmentModal .appt-card{padding:16px 16px 0;width:100vw;max-height:100vh;border-radius:0}.wiz-steps button span{display:none}.wiz-steps button.active span{display:inline}.wiz-steps{grid-template-columns:1fr 1fr 1fr 1fr}.wiz-steps button{justify-content:center}.appt-wizard .activity-options{grid-template-columns:1fr}.appt-wizard .grid.two{grid-template-columns:1fr}.wiz-footer{margin:14px -16px 0;padding:10px 16px}.wiz-footer .btn{min-width:0;flex:1}.wiz-footer .wiz-count{display:none}.wiz-footer #appointmentSubmitBtn{min-width:0;flex:2}.rv-row{grid-template-columns:110px 1fr}}
.appt-wizard .adaptive-options .check-card,.appt-wizard .check-card{min-height:42px!important;padding:8px 11px!important;font-size:13px!important}
.appt-wizard textarea{min-height:58px;resize:vertical}
.appt-wizard .activity-direction button{padding:9px 10px}
@media(max-width:700px){.appt-wizard .activity-direction{grid-template-columns:1fr 1fr}.appt-wizard .adaptive-options .check-card{min-height:40px!important}}
.appt-wizard .check-card{margin-bottom:0!important}.appt-wizard .adaptive-options{gap:8px}

/* V1.18.2: revisi Meeting + strip "Menunggu pihak lain" */
#revisionView .needs-fix::after{content:"Diminta PIC untuk diperbaiki"}
.waiting-strip{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);display:grid;gap:8px}
.waiting-strip-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.waiting-strip-head span{background:#fff6e0;color:#9a6500;border-radius:999px;padding:2px 9px;font-weight:800}
.waiting-item{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;padding:10px 12px;border:1px solid #efd78d;border-radius:12px;background:#fffaf0;cursor:pointer;font:inherit;color:inherit}
.waiting-item i{font-style:normal;line-height:1.3}
.waiting-item b{display:block;font-size:13px}.waiting-item small{display:block;color:var(--muted);font-size:12px;margin-top:2px}

/* V1.18.2: feed informasi pada bel notifikasi */
.notification-section{padding:9px 16px 7px;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);background:#f6f8f7;border-bottom:1px solid #edf1ef;position:sticky;top:0;z-index:1}
.notification-item .notif-detail{display:block;font-style:normal;color:#44524c;font-size:12px;margin-top:2px}
.info-item.tone-success .notification-dot{background:#1f8a5b}
.info-item.tone-warning .notification-dot{background:#c8851f}
.info-item.tone-danger .notification-dot{background:#b3392f}
.info-item.tone-info .notification-dot{background:#5b7a8c}

/* V1.18.4 Beranda visual: gradien tipis + ilustrasi 3D di banner + chip kaca (hanya di banner) + keadaan kosong berilustrasi */
.dash-hero{position:relative;overflow:hidden;align-items:stretch;padding:26px 28px;background:radial-gradient(circle at 84% 46%,rgba(215,184,90,.26) 0,rgba(215,184,90,0) 34%),linear-gradient(118deg,#123d31 0%,#1b4f3e 52%,#2f5d3a 100%)}
.dash-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 40%);pointer-events:none}
.dash-hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.dash-hero .dash-hero-actions{justify-content:flex-start;margin-top:16px}
.dash-hero-art{position:relative;z-index:1;flex:0 0 300px;display:flex;align-items:flex-end;justify-content:center;margin:-10px -6px -26px 0}
.illus-hero{width:300px;height:auto;filter:drop-shadow(0 14px 22px rgba(6,26,19,.28))}
.illus-float{animation:illusFloat 4.8s ease-in-out infinite;transform-origin:center}
@keyframes illusFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.hero-chip{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:12px;font:inherit;text-align:left;cursor:pointer;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);transition:background var(--motion-fast,140ms) ease,transform var(--motion-fast,140ms) ease}
.hero-chip:hover,.hero-chip:focus-visible{background:rgba(255,255,255,.2);transform:translateY(-1px);outline:none}
.hero-chip:focus-visible{box-shadow:0 0 0 3px rgba(245,239,220,.55)}
.hero-chip small{display:block;font-size:11.5px;color:rgba(255,255,255,.78);font-weight:600}
.hero-chip b{display:block;font-size:14px;font-weight:700;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-chip-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.22);flex:0 0 auto}
.hero-chip-icon{font-size:16px;line-height:1;color:#f5e3a8}
.dash-kpi.tone-calm{background:linear-gradient(180deg,#fff,#f6fbf8)}
.dash-kpi .kpi-calm{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;color:#1b6d48;min-height:35px}
.dash-kpi .kpi-calm span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e2f3ea;color:#1b6d48;font-size:14px}
.dash-kpi.tone-pending strong{color:#b4c1bb}
.chart-empty-rich{pointer-events:auto;inset:6px 0 40px 34px}
.empty-illus{display:flex;align-items:center;gap:16px;text-align:left;padding:8px 12px;max-width:440px}
.empty-illus b{display:block;color:var(--ink);font-size:15px}
.empty-illus p{margin:2px 0 10px;color:var(--muted);font-size:13px;line-height:1.45}
.empty-illus-art{flex:0 0 auto;width:104px;opacity:.95}
.empty-illus-art .illus-empty{width:100%;height:auto;display:block}
.premium-empty.empty-has-illus>.empty-illus-art{width:110px;height:auto;margin:0 auto 8px;border-radius:0;background:none;display:block}
.btn-sm{min-height:34px;padding:7px 12px;font-size:13.5px}
@media(max-width:1100px){.dash-hero-art{flex-basis:230px}.illus-hero{width:230px}}
@media(max-width:760px){.dash-kpi .kpi-calm{font-size:16px;gap:6px;min-height:28px}.dash-kpi .kpi-calm span{width:20px;height:20px;font-size:12px}.dash-hero{flex-direction:column}.dash-hero-art{position:absolute;right:-8px;top:8px;width:150px;margin:0;opacity:.55}.illus-hero{width:150px}.hero-chip b{max-width:220px}.empty-illus-art{width:80px}}
@media(max-width:420px){.dash-hero-art{display:none}}
@media(prefers-reduced-motion:reduce){.illus-float{animation:none!important}}

/* V1.18.4 banner ringkas: chip + tombol satu baris, ilustrasi lebih kecil (target tinggi +/-180px di laptop) */
.dash-hero{padding:20px 24px;gap:12px}
.dash-hero h2{font-size:24px;margin:4px 0 2px}
.dash-hero p{font-size:14px}
.hero-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.hero-row .hero-chips{margin-top:0}
.dash-hero .hero-row .dash-hero-actions{margin-top:0;margin-left:auto}
.hero-chip{padding:7px 12px}
.hero-chip b{font-size:13.5px}
.dash-hero .dash-hero-actions .btn{min-height:40px;padding:8px 16px;font-size:14.5px}
.dash-hero-art{flex:0 0 210px;margin:-8px -4px -22px 0}
.illus-hero{width:210px}
@media(max-width:1100px){.dash-hero-art{flex-basis:170px}.illus-hero{width:170px}.dash-hero .hero-row .dash-hero-actions{margin-left:0}}
@media(max-width:760px){.dash-hero{padding:18px}.dash-hero-art{width:120px;top:6px}.illus-hero{width:120px}.dash-hero .hero-row .dash-hero-actions{width:100%}}

/* V1.18.4 animasi banner: posisi akhir selalu sama (juga tanpa animasi); gerak hanya bila diizinkan */
.illus-hero .ill-barrier{transform-box:view-box;transform-origin:58px 94px;transform:rotate(-38deg);transition:transform .7s cubic-bezier(.3,.7,.2,1)}
.state-hold .illus-hero .ill-barrier{transform:rotate(0deg)}
.illus-hero .ill-lamp{opacity:0;transition:opacity .3s}
.state-hold .illus-hero .ill-lamp{opacity:1}
.illus-hero .ill-scan,.illus-hero .ill-check{opacity:0}
.illus-hero .ill-wheel,.illus-hero .ill-check,.illus-hero .ill-glow{transform-box:fill-box;transform-origin:center}
.illus-hero .ill-leaf{transform-box:fill-box;transform-origin:0% 50%}
.illus-hero .ill-truck{transition:opacity .45s ease}
.illus-hero .pl{transform:translate(calc(var(--px,0) * var(--d,0) * 1px),calc(var(--py,0) * var(--d,0) * .6px));transition:transform .35s ease-out}
.paused .illus-hero *{animation-play-state:paused!important}
@media (prefers-reduced-motion:no-preference){
.scene-intro .ill-truck{animation:illTruckIn 1.5s cubic-bezier(.16,.8,.24,1) both}
.scene-intro .ill-wheel{animation:illWheel 1.5s cubic-bezier(.16,.8,.24,1) both}
.scene-intro .ill-scan{animation:illScan .8s ease-in-out 1.45s both}
.scene-intro .ill-check{animation:illCheck 2.2s ease 2.1s both}
.scene-intro .ill-barrier{animation:illBarrierUp .8s cubic-bezier(.3,.7,.2,1) 2.3s both}
.state-hold.scene-intro .ill-barrier{animation:none}
.scene-checkin .ill-scan{animation:illScan .8s ease-in-out .1s both}
.scene-checkin .ill-check{animation:illCheck 2s ease .7s both}
.scene-checkin .ill-barrier{animation:illBarrierUp .8s cubic-bezier(.3,.7,.2,1) .9s both}
.scene-hold .ill-lamp{animation:illLamp .5s steps(1) 0s 6}
.illus-hero .ill-glow{animation:illBreathe 5.5s ease-in-out infinite}
.illus-hero .ill-leaf{animation:illSway 6s ease-in-out infinite}
.illus-hero .ill-truck-body{animation:illIdle 4.5s ease-in-out infinite}
.illus-hero .ill-headlight{animation:illHead 4.5s ease-in-out infinite}
}
@keyframes illTruckIn{from{transform:translateX(170px)}to{transform:none}}
@keyframes illWheel{from{transform:rotate(760deg)}to{transform:none}}
@keyframes illScan{0%{opacity:0;transform:translateY(0)}15%,85%{opacity:1}100%{opacity:0;transform:translateY(40px)}}
@keyframes illCheck{0%{opacity:0;transform:scale(.3)}15%{opacity:1;transform:scale(1.15)}25%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(1)}}
@keyframes illBarrierUp{from{transform:rotate(0deg)}to{transform:rotate(-38deg)}}
@keyframes illLamp{0%{opacity:1}50%{opacity:.15}}
@keyframes illBreathe{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}
@keyframes illSway{0%,100%{transform:rotate(0deg)}50%{transform:rotate(7deg)}}
@keyframes illIdle{0%,84%,100%{transform:translateY(0)}88%{transform:translateY(-1.2px)}92%{transform:translateY(.6px)}96%{transform:translateY(-.4px)}}
@keyframes illHead{0%,80%,100%{opacity:.85}88%{opacity:.35}}

/* V1.18.4 HP: tabel daftar menjadi kartu; Tugas, kartu angka, dan panduan hak akses dirapikan */
.dash-kpi-label{padding-right:20px}
@media(max-width:700px){
.table-card:has(table.cardify){padding:4px 0;background:transparent;border:0;box-shadow:none;overflow:visible}
table.cardify{display:block;font-size:14px}
table.cardify thead{display:none}
table.cardify tbody{display:grid;gap:10px}
table.cardify tbody tr,table.cardify tbody tr:nth-child(even),table.cardify tbody tr:hover{display:grid;grid-template-columns:minmax(0,1fr);background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:0 4px 14px rgba(18,55,42,.05)}
table.cardify td{display:block;position:relative;padding:5px 0 5px 118px!important;border:0!important;min-height:0;font-size:14px!important;overflow-wrap:anywhere}
table.cardify td::before{content:attr(data-label);position:absolute;left:0;top:5px;width:108px;color:#6e7b74;font-size:12.5px;font-weight:600;line-height:1.5}
table.cardify td[data-label=""]{padding-left:0!important}
table.cardify td[data-label=""]::before{display:none}
table.cardify td:first-child{padding:0 0 9px!important;font-size:15px!important;margin-bottom:4px;border-bottom:1px solid #edf1ef!important}
table.cardify td:first-child::before{position:static;display:block;width:auto;font-size:11.5px;font-weight:700;letter-spacing:.03em}
table.cardify td:first-child small{display:block;margin-top:2px}
table.cardify td:last-child:has(button,a){padding:9px 0 0!important;margin-top:4px;text-align:right;border-top:1px solid #edf1ef!important}
table.cardify td:last-child:has(button,a)::before{display:none}
table.cardify td:last-child .text-btn{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:#f7faf8}
.task-command-card{grid-template-columns:10px minmax(0,1fr) 20px;row-gap:8px}
.task-command-card>span:not(.task-priority-dot){grid-column:2;grid-row:2;justify-self:start}
.task-command-card>i{grid-column:3;grid-row:1/span 2}
.team-guide{flex-direction:column;align-items:flex-start;gap:4px}
}
