:root{--primary:#3d823e;--primary-dark:#316832;--primary-soft:#e3f2e3;--bg:#f4f7f7;--surface:#fff;--text:#15302d;--muted:#5c7270;--border:#dce7e5;--danger:#a83229;--danger-soft:#fee2e2;--warning:#b7791f;--success:#15803d;--success-soft:#dcfce7;--info:#1d4fc4;--radius:18px;--shadow:0 12px 36px #183f3a14;--nav-height:76px;--space-2:10px;--space-3:14px;--space-4:18px;--space-5:24px;--space-6:34px;--fs-2xs:clamp(.6875rem, .66rem + .08vw, .75rem);--fs-xs:clamp(.75rem, .715rem + .1vw, .8125rem);--fs-sm:clamp(.8125rem, .78rem + .1vw, .875rem);--fs-base:clamp(.9375rem, .9rem + .15vw, 1rem);--fs-md:clamp(1rem, .95rem + .2vw, 1.125rem);--fs-lg:clamp(1.125rem, 1.06rem + .25vw, 1.25rem);--fs-xl:clamp(1.3125rem, 1.22rem + .35vw, 1.5rem);--fs-2xl:clamp(1.5625rem, 1.42rem + .55vw, 1.875rem);--fs-3xl:clamp(1.75rem, 1.55rem + .8vw, 2.125rem);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);touch-action:manipulation;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}body{width:100%;max-width:100vw;color:var(--text);background:var(--bg);font-size:var(--fs-base);-webkit-tap-highlight-color:transparent;margin:0;line-height:1.5;overflow-x:hidden}button,input,textarea,select{font:inherit}h1,h2,h3{line-height:1.25}img,svg{max-width:100%}.filter-chips{touch-action:pan-x}.icon{vertical-align:-.15em;stroke:currentColor;fill:none;flex:none;width:1em;height:1em;display:inline-block}.icon-button{border-radius:var(--radius);width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;font-size:19px;transition:color .2s,background-color .2s;display:inline-flex}.icon-button:hover{color:var(--primary);background:#eef4f3}.icon-button-danger{color:var(--danger)}.icon-button-danger:hover{color:var(--danger);background:#fdeeec}.icon-button .icon-hide,.icon-button.is-visible .icon-show{display:none}.icon-button.is-visible .icon-hide{display:inline-block}@media (prefers-reduced-motion:no-preference){body.is-leaving .page-shell,body.is-leaving .auth-shell{opacity:0;transition:opacity .1s,transform .1s;transform:translateY(-6px)}}.button,.chip,.list-card,.timeline-card,.vehicle-card,.setting-row,.action-banner,.icon-button,.back-button,.stat-card{transition:transform .15s,box-shadow .15s,background-color .2s,opacity .2s}@media (hover:none){.button:active,.chip:active,.list-card:active,.timeline-card:active,.vehicle-card:active,.setting-row:active,.action-banner:active,.stat-card:active{transform:scale(.97)}}.app-body{padding-bottom:calc(var(--nav-height) + var(--space-6))}.page-shell{gap:var(--space-5);flex-direction:column;width:min(100%,680px);margin:0 auto;padding:26px 20px 40px;display:flex}.topbar{z-index:20;background:var(--bg);border-bottom:1px solid #dce7e5b3;justify-content:space-between;align-items:center;width:min(100%,680px);margin:0 auto;padding:16px 18px;display:flex;position:sticky;top:0}.topbar-title{align-items:center;gap:6px;min-width:0;display:flex}.topbar h1{font-size:var(--fs-xl);margin:0;line-height:1.2}.back-button{border-radius:var(--radius);width:36px;height:36px;color:var(--text);flex:none;place-items:center;margin-left:-6px;font-size:20px;text-decoration:none;display:grid}.back-button:hover{background:#eef4f3}.back-button:active{transform:scale(.9)}.eyebrow{color:var(--primary);font-size:var(--fs-xs);letter-spacing:.13em;font-weight:800;display:block}.avatar,.profile-avatar{background:var(--primary);color:#fff;place-items:center;font-weight:800;text-decoration:none;display:grid}.avatar{border-radius:var(--radius);width:42px;height:42px;font-size:var(--fs-md);object-fit:cover}.topbar-actions{flex:none;align-items:center;gap:10px;display:flex}.notif-bell{border-radius:var(--radius);width:42px;height:42px;color:var(--text);font-size:20px;position:relative}.notif-dot{border-radius:var(--radius);background:var(--danger);color:#fff;text-align:center;border:2px solid var(--bg);min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;line-height:17px;position:absolute;top:2px;right:2px}.hero-card{color:#fff;border-radius:var(--radius);box-shadow:var(--shadow);background-image:linear-gradient(100deg,#0c1e0eed 0%,#102812cc 40%,#10281273 100%),url(/assets/img/hero-prakasa.webp);background-position:100%;background-size:cover;padding:28px 26px;overflow:hidden}.hero-card .eyebrow{color:#99f69a}.hero-card h2{font-size:var(--fs-2xl);margin:10px 0}.hero-card p{color:#d5f5d5;max-width:430px;font-size:var(--fs-base);margin:0 0 22px}.button{border-radius:var(--radius);min-height:48px;font-weight:750;line-height:1.25;font-size:var(--fs-base);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:12px 18px;text-decoration:none;display:inline-flex}.button:active{transform:scale(.97)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button.is-loading{opacity:.85;cursor:wait}.button.is-loading:before{content:"";border-radius:var(--radius);border:2px solid;border-right-color:#0000;width:15px;height:15px;animation:.6s linear infinite btn-spin}@media (prefers-reduced-motion:reduce){.button.is-loading:before{animation:none}}@keyframes btn-spin{to{transform:rotate(360deg)}}.submit-status{z-index:60;left:50%;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 14px);border-radius:var(--radius);width:min(100% - 32px,460px);color:var(--text);font-size:var(--fs-sm);background:#fff;border:1px solid #b9d9d1;align-items:center;gap:12px;padding:13px 16px;font-weight:750;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 36px #183f3a2e}.submit-status small{color:var(--muted);font-size:var(--fs-xs);margin-top:1px;font-weight:500;display:block}.submit-status-spinner{border:2.5px solid var(--primary-soft);border-right-color:var(--primary);border-radius:var(--radius);flex:none;width:20px;height:20px;animation:.6s linear infinite btn-spin}@media (prefers-reduced-motion:reduce){.submit-status-spinner{animation-duration:1.2s}}.auth-body .submit-status{bottom:24px}.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background:var(--primary-dark)}.button-light{color:var(--primary);background:#fff}.button-secondary{background:var(--primary-soft);color:var(--primary-dark)}.button-ghost{color:var(--text);background:#eef4f3}.button-danger{color:var(--danger);background:#fee2e2}.button-block{width:100%}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:20px;text-decoration:none;display:block;box-shadow:0 6px 20px #183f3a0a}.stat-card strong{font-size:var(--fs-2xl);line-height:1.15;display:block}.stat-card small{color:var(--muted);font-size:var(--fs-sm)}.stat-icon{float:right;color:var(--primary);font-size:32px}.section-heading{margin:var(--space-3) 2px 0;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-shell>.section-heading:first-child{margin-top:0}.section-heading h2{font-size:var(--fs-lg);margin:4px 0 0}.section-heading>a{color:var(--primary);font-weight:700;font-size:var(--fs-sm);text-decoration:none}.section-heading .button{min-height:38px;font-size:var(--fs-sm);flex:none;gap:6px;padding:0 14px}.count-pill{border-radius:var(--radius);background:var(--primary-soft);color:var(--primary-dark);font-size:var(--fs-xs);padding:5px 10px;font-weight:800}.card-list,.timeline-list{gap:var(--space-4);display:grid}.list-card,.timeline-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;color:inherit;align-items:center;gap:14px;padding:16px;text-decoration:none;display:flex;box-shadow:0 5px 18px #183f3a09}.list-card>b,.timeline-card>b{color:#9db3af;flex:none;font-size:18px}.vehicle-thumb{border-radius:var(--radius);background:var(--primary-soft);width:48px;height:48px;color:var(--primary-dark);flex:none;place-items:center;font-size:20px;font-weight:900;display:grid}.list-card-main{flex:1;min-width:0}.list-card-main strong,.list-card-main span,.list-card-main small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.list-card-main strong{font-size:var(--fs-base)}.list-card-main span{color:var(--muted);font-size:var(--fs-sm)}.list-card-main small{font-size:var(--fs-xs);color:var(--muted)}.notif-card.is-unread{background:#f2fbf9;border-color:#bfe8e0}.notif-unread-dot{border-radius:var(--radius);background:var(--primary);flex:none;width:10px;height:10px}.badge{border-radius:var(--radius);width:max-content;max-width:130px;font-size:var(--fs-2xs);text-align:center;align-items:center;padding:5px 9px;font-weight:800;line-height:1.2;display:inline-flex}.badge-success{color:var(--success);background:#dcfce7}.badge-warning{color:#92400e;background:#fef3c7}.badge-danger{color:var(--danger);background:#fee2e2}.badge-info{color:var(--info);background:#dbeafe}.badge-neutral{color:#526764;background:#edf2f1}.action-banner{border-radius:var(--radius);color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;align-items:center;gap:14px;padding:17px;text-decoration:none;display:flex}.action-banner>span{border-radius:var(--radius);background:#ffedd5;flex:none;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.action-banner>b{flex:none;font-size:18px}.action-banner div{flex:1}.action-banner strong{font-size:var(--fs-base);display:block}.action-banner small{font-size:var(--fs-sm);display:block}.bottom-nav{z-index:30;width:min(100%,680px);height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:10px 10px env(safe-area-inset-bottom);border-top:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:#fff;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -10px 30px #183f3a14}.bottom-nav a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:21px;text-decoration:none;transition:color .2s;display:flex;position:relative}.bottom-nav a:active{transform:scale(.92)}.bottom-nav small{font-size:var(--fs-2xs);font-weight:700}.bottom-nav a.active{color:var(--primary)}.nav-icon{border-radius:var(--radius);place-items:center;width:46px;height:30px;transition:background-color .2s;display:grid}.bottom-nav a.active .nav-icon{background:var(--primary-soft)}.bottom-nav .nav-main-icon{border:5px solid var(--bg);border-radius:var(--radius);place-items:center;width:52px;height:52px;margin-top:-28px;display:grid;overflow:hidden;box-shadow:0 8px 18px #3d823e47}.bottom-nav .nav-main-icon img{object-fit:cover;width:100%;height:100%}.filter-chips-wrap{position:relative}.filter-chips{padding-bottom:var(--space-4);gap:10px;display:flex;overflow:auto}.filter-chips-wrap:before,.filter-chips-wrap:after{content:"";pointer-events:none;opacity:0;width:28px;transition:opacity .15s;position:absolute;top:0;bottom:10px}.filter-chips-wrap:before{background:linear-gradient(to right, var(--bg), transparent);left:0}.filter-chips-wrap:after{background:linear-gradient(to left, var(--bg), transparent);right:0}.filter-chips-wrap.has-scroll-left:before,.filter-chips-wrap.has-scroll-right:after{opacity:1}.chip{white-space:nowrap;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--radius);font-weight:700;font-size:var(--fs-sm);padding:10px 15px}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.vehicle-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.vehicle-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.vehicle-visual{height:92px;color:var(--primary);background-image:linear-gradient(150deg,#e3f2e3d1,#edf8f6e6),url(/assets/img/pattern-route.svg);background-position:50%;background-size:cover;justify-content:center;align-items:center;display:flex;position:relative}.vehicle-visual span{opacity:.25;font-size:34px;font-weight:900}.vehicle-visual img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.vehicle-visual b{border-radius:var(--radius);color:var(--text);letter-spacing:.04em;background:#fff;padding:4px 7px;font-size:10px;position:absolute;bottom:8px;right:8px}.vehicle-card-body{padding:12px}.vehicle-card-title{justify-content:space-between;gap:6px;display:flex}.vehicle-card h3{font-size:var(--fs-sm);margin:0;line-height:1.25}.vehicle-card p{color:var(--muted);font-size:var(--fs-2xs);margin:1px 0}.vehicle-badges{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.vehicle-badges .badge{max-width:90px;padding:4px 7px;font-size:9px}.vehicle-card.is-inactive{opacity:.6}.vehicle-meta{grid-template-columns:1fr;gap:6px;margin:10px 0;display:grid}.vehicle-meta span{border-radius:var(--radius);color:var(--muted);background:#f6f9f8;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;font-size:10px;display:flex}.vehicle-meta strong{color:var(--text);font-size:var(--fs-xs)}.vehicle-admin-actions{margin:var(--space-3) 0 10px;gap:6px;display:flex}.vehicle-admin-actions form{margin:0}.vehicle-admin-actions .icon-button{border:1px solid var(--border);border-radius:var(--radius);width:34px;height:34px;font-size:14px}.list-card-actions{flex:none;gap:8px;display:flex}.list-card-actions form{margin:0}.list-card-actions .icon-button{border:1px solid var(--border);border-radius:var(--radius);width:38px;height:38px;font-size:15px}.vehicle-card .button-block{min-height:38px;font-size:var(--fs-xs);padding:0 8px}@media (width>=480px){.vehicle-grid{gap:18px}.vehicle-card{border-radius:var(--radius)}.vehicle-visual{height:132px}.vehicle-visual span{font-size:64px}.vehicle-visual b{border-radius:var(--radius);font-size:var(--fs-xs);letter-spacing:.06em;padding:6px 10px;bottom:14px;right:16px}.vehicle-card-body{padding:20px}.vehicle-card-title{gap:10px}.vehicle-card h3{font-size:var(--fs-md)}.vehicle-card p{font-size:var(--fs-sm);margin:2px 0}.vehicle-badges{gap:6px}.vehicle-badges .badge{max-width:130px;font-size:var(--fs-2xs);padding:5px 9px}.vehicle-meta{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.vehicle-meta span{border-radius:var(--radius);font-size:var(--fs-xs);padding:11px;display:block}.vehicle-meta strong{font-size:var(--fs-sm);display:block}.vehicle-admin-actions{margin:var(--space-4) 0 16px;gap:10px}.vehicle-admin-actions .icon-button{border-radius:var(--radius);width:44px;height:44px;font-size:18px}.vehicle-card .button-block{min-height:48px;font-size:var(--fs-base);padding:0 18px}}.person-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:20px;box-shadow:0 5px 18px #183f3a09}.person-card.is-inactive{opacity:.6}.person-card-main{align-items:center;gap:14px;margin-bottom:16px;display:flex}.profile-avatar-sm{border-radius:var(--radius);background:var(--primary);color:#fff;width:44px;height:44px;font-weight:800;font-size:var(--fs-md);object-fit:cover;flex:none;place-items:center;display:grid}.person-card-info{flex:1;min-width:0}.person-card-info strong{font-size:var(--fs-base);display:block}.person-card-info span{color:var(--muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.person-card-info small{color:var(--muted);font-size:var(--fs-xs);display:block}.person-card-badges{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.form-hint{color:var(--muted);font-size:var(--fs-xs);margin:-6px 0 0}.photo-upload-preview{border-radius:var(--radius);width:100%;height:140px;color:var(--muted);background:#eef4f3;border:2px dashed #c5d7d3;place-items:center;display:grid;position:relative;overflow:hidden}.photo-upload-preview.is-round{border-radius:var(--radius);width:112px;height:112px;margin:0 auto}.photo-upload-preview img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.photo-upload-preview input[type=file]{z-index:1;opacity:0;cursor:pointer;position:absolute;inset:0}.photo-upload-placeholder{flex-direction:column;align-items:center;gap:6px;display:flex}.photo-upload-placeholder .icon{width:26px;height:26px}.photo-upload-placeholder small{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.photo-upload-preview.is-round .photo-upload-placeholder{text-align:center;gap:3px;padding:0 8px}.photo-upload-preview.is-round .photo-upload-placeholder small{font-size:10px;line-height:1.2}.form-card,.detail-card,.approval-card,.action-panel,.photo-section,.settings-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.form-card,.approval-card{gap:var(--space-5);display:grid}.detail-card,.photo-section{gap:var(--space-4);display:grid}.form-card>.section-heading,.detail-card>.section-heading,.approval-card>.section-heading,.action-panel>.section-heading,.photo-section>.section-heading{margin:0 2px}.form-stack,.form-step{gap:18px;display:grid}.form-step{display:none}.form-step.active{display:grid}.form-step h2{font-size:var(--fs-lg);margin:5px 0 0}.muted{color:var(--muted)}label{font-size:var(--fs-sm);color:#3f5754;gap:8px;font-weight:400;display:grid}input,textarea,select{width:100%;color:var(--text);font-size:var(--fs-base);border-radius:var(--radius);background:#fff;border:1px solid #cfdedb;outline:none;padding:14px 16px;transition:all .2s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3d823e1c}textarea{resize:vertical}.step-indicator{justify-content:center;align-items:center;margin-bottom:12px;display:flex}.step-indicator span{border-radius:var(--radius);width:30px;height:30px;color:var(--muted);font-size:var(--fs-xs);background:#e7efed;place-items:center;font-weight:900;transition:background-color .2s,color .2s;display:grid}.step-indicator span.active{background:var(--primary);color:#fff}.step-indicator i{background:#d7e4e1;width:42px;height:2px}.step-actions,.approval-actions{gap:12px;display:flex}.step-actions .button,.approval-actions .button{flex:1}.toggle-field,.issue-toggle{border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.toggle-field input,.issue-toggle input{opacity:0;width:1px;position:absolute}.toggle-field i,.issue-toggle i{border-radius:var(--radius);background:#cedbd8;flex:none;width:46px;height:26px;transition:background-color .2s;position:relative}.toggle-field i:after,.issue-toggle i:after{content:"";border-radius:var(--radius);background:#fff;width:20px;height:20px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #0002}.toggle-field input:checked+i,.issue-toggle input:checked~i{background:var(--primary)}.toggle-field input:checked+i:after,.issue-toggle input:checked~i:after{transform:translate(20px)}.summary-box,.note-block{border-radius:var(--radius);font-size:var(--fs-base);background:#f3f8f7;padding:18px}.summary-box p,.note-block p{color:var(--muted);font-size:var(--fs-sm);margin:5px 0 0}.note-block.warning{background:#fff7ed}.review-summary{border-radius:var(--radius);background:#f3f8f7;flex-direction:column;gap:10px;margin-bottom:10px;padding:16px;display:flex}.review-row{font-size:var(--fs-sm);justify-content:space-between;gap:12px;display:flex}.review-row span{color:var(--muted);flex:none}.review-row strong{text-align:right;font-weight:500}.review-edit-btn{margin-bottom:16px}.signature-field{flex-direction:column;gap:8px;display:flex}.signature-field>label{font-size:var(--fs-sm);color:var(--muted);font-weight:500}.signature-pad{border:1.5px dashed var(--border);border-radius:var(--radius);touch-action:none;cursor:crosshair;background:#fbfdfc;width:100%;height:180px}.signature-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.signature-hint{font-size:var(--fs-sm);color:var(--muted)}.signature-hint-error{color:var(--danger)}.button-small{font-size:var(--fs-sm);flex:none;padding:8px 14px}.timeline-date{background:var(--primary-soft);border-radius:var(--radius);width:48px;height:55px;color:var(--primary-dark);flex:none;place-items:center;display:grid}.timeline-date strong{font-size:var(--fs-xl);line-height:1}.timeline-date span{font-size:var(--fs-2xs);font-weight:900}.timeline-main{flex:1;min-width:0}.timeline-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.timeline-top strong{font-size:var(--fs-base)}.timeline-main p{color:var(--muted);font-size:var(--fs-sm);margin:4px 0}.timeline-main small{color:var(--muted);font-size:var(--fs-xs)}.detail-header{justify-content:space-between;gap:12px;display:flex}.detail-header h2{font-size:var(--fs-lg);margin:4px 0}.detail-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.detail-grid div{border-radius:var(--radius);background:#f7f9f9;padding:16px}.detail-grid span,.note-block span{color:var(--muted);font-size:var(--fs-xs);display:block}.detail-grid strong{font-size:var(--fs-sm);margin-top:4px;display:block}.action-panel h2{font-size:var(--fs-lg);margin:5px 0 15px}.approval-card h3{font-size:var(--fs-md);margin-top:0}.inline-form{text-align:center;margin-top:16px}.text-danger{color:var(--danger);font-weight:750;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0}.text-button{color:var(--primary);font-weight:750;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0}.text-button:disabled{color:var(--muted);cursor:default}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-wrap .icon-button{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-wrap .icon-button:active{transform:translateY(-50%)scale(.9)}.inspection-intro{text-align:center;padding:10px 0 18px}.inspection-intro h2{font-size:var(--fs-lg);margin:5px 0}.inspection-intro p{color:var(--muted);font-size:var(--fs-sm);margin:0}.inspection-intro small{font-size:var(--fs-sm)}.progress-bar{border-radius:var(--radius);background:#dce8e6;height:8px;margin:18px 0 6px;overflow:hidden}.progress-bar i{background:var(--primary);height:100%;transition:all .25s;display:block}.inspection-form{gap:18px;display:grid}.photo-checklist{grid-template-columns:1fr 1fr;gap:12px;display:grid}.photo-slot{text-align:center;border-radius:var(--radius);background:#f9fbfb;border:2px dashed #c5d7d3;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:150px;padding:14px;transition:border-color .2s,background-color .2s;display:flex;position:relative;overflow:hidden}.photo-slot input{opacity:0;cursor:pointer;position:absolute;inset:0}.photo-slot strong{font-size:var(--fs-sm)}.photo-slot small{color:var(--muted);font-weight:500;font-size:var(--fs-xs)}.photo-icon{color:var(--primary);font-size:28px}.photo-slot img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.photo-slot.completed:after{content:"";background:linear-gradient(#0000,#0008);position:absolute;inset:0}.photo-slot.completed strong{z-index:2;color:#fff;position:absolute;bottom:11px;left:10px}.photo-done{z-index:3;border-radius:var(--radius);background:var(--success);color:#fff;place-items:center;width:26px;height:26px;font-size:13px;display:none;position:absolute;top:8px;right:8px}.photo-slot.completed .photo-done{display:grid}.issue-toggle{background:#fff}.issue-toggle span{flex:1}.issue-toggle strong{font-size:var(--fs-sm);display:block}.issue-toggle small{color:var(--muted);font-weight:500;font-size:var(--fs-xs);display:block}.issue-fields{border-radius:var(--radius);background:#fffaf4;border:1px solid #fed7aa;gap:14px;padding:17px;display:grid}.photo-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.photo-card{border-radius:var(--radius);color:#fff;aspect-ratio:4/3;background:#e7efed;text-decoration:none;position:relative;overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:100%}.photo-card span{font-size:var(--fs-xs);background:linear-gradient(#0000,#0009);padding:20px 10px 8px;font-weight:800;position:absolute;bottom:0;left:0;right:0}.profile-card{text-align:center;border-radius:var(--radius);box-shadow:var(--shadow);color:#fff;background-image:linear-gradient(155deg,#3d823ee6,#265126f5),url(/assets/img/pattern-route.svg);background-position:50%;background-size:cover;margin-bottom:18px;padding:34px 26px 30px}.profile-avatar{border-radius:var(--radius);width:76px;height:76px;font-size:var(--fs-xl);object-fit:cover;background:#ffffff29;margin:auto;box-shadow:0 10px 24px #00000026}.profile-avatar-wrap{width:76px;margin:auto;position:relative}.profile-avatar-wrap .profile-avatar{margin:0}.profile-avatar-edit{width:30px;height:30px;color:var(--primary);cursor:pointer;background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-6px;right:-6px;box-shadow:0 6px 14px #00000040}.profile-avatar-edit .icon{width:16px;height:16px}.profile-avatar-edit input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.profile-card h2{font-size:var(--fs-lg);color:#fff;margin:16px 0 2px}.profile-card p{color:#bfe9c0;font-size:var(--fs-sm);margin:0 0 12px}.profile-card .field-error{color:#ffd7d7;margin:8px 0 0}.settings-list{padding:6px 20px}.sync-error{border-radius:var(--radius);color:var(--danger);font-size:var(--fs-xs);white-space:normal;word-break:break-word;background:#fdeeec;margin-top:6px;padding:8px 10px;line-height:1.45;display:block}.setting-row{border-bottom:1px solid var(--border);min-height:58px;color:inherit;font-size:var(--fs-base);justify-content:space-between;align-items:center;gap:12px;padding:0 2px;text-decoration:none;display:flex}.setting-row span{align-items:center;gap:8px;display:inline-flex}.setting-row:last-child{border-bottom:0}.setting-row.danger{color:var(--danger)}.setting-row>b{color:#9db3af;flex:none;font-size:18px}.setting-hint{font-size:var(--fs-xs);color:var(--muted);margin:-2px 0 10px;padding:0 2px}.tc-toast-below-topbar{padding-top:calc(80px + env(safe-area-inset-top))!important}.swal2-popup.tc-toast-popup{width:min(100vw - 32px,420px);padding:10px 14px;box-shadow:0 12px 28px #183f3a24}.swal2-popup.tc-toast-popup .swal2-title{font-size:var(--fs-sm);margin:4px 30px 4px 0;font-weight:700}.swal2-popup.tc-toast-popup.swal2-icon-success{background:var(--success-soft)}.swal2-popup.tc-toast-popup.swal2-icon-success .swal2-title{color:var(--success)}.swal2-popup.tc-toast-popup.swal2-icon-error{background:var(--danger-soft)}.swal2-popup.tc-toast-popup.swal2-icon-error .swal2-title{color:var(--danger)}.swal2-popup.tc-toast-popup .swal2-close{color:inherit;opacity:.55;font-size:22px;position:absolute;top:2px;right:6px}.swal2-popup.tc-toast-popup .swal2-close:hover{opacity:1;background:#183f3a0f}.swal2-popup.tc-confirm-popup .swal2-confirm{background:var(--primary)!important}.swal2-popup.tc-confirm-popup .swal2-cancel{background:var(--bg)!important;color:var(--text)!important}@keyframes toast-in{0%{opacity:0;transform:translateY(-14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.empty-state{text-align:center;background:var(--surface);border-radius:var(--radius);border:1px dashed #cbdad7;padding:50px 22px}.empty-state>span{width:42px;height:42px;color:var(--muted);margin:0 auto 8px;font-size:42px;display:block}.empty-state h3,.empty-state h2{font-size:var(--fs-lg);margin:10px 0}.empty-state p{color:var(--muted);font-size:var(--fs-sm)}.auth-body{background:#fff;min-height:100dvh}.auth-shell{width:100%;min-height:100dvh;padding:24px;padding-top:max(24px, env(safe-area-inset-top));padding-bottom:max(24px, env(safe-area-inset-bottom));display:flex}.brand-mark{border-radius:var(--radius);color:#fff;background:#ffffff29;place-items:center;width:54px;height:54px;margin-bottom:20px;font-weight:900;display:grid}.gsi-card{border-radius:var(--radius);text-align:center;border:1px solid #dde3e1;width:min(100%,450px);margin:auto;padding:42px 36px 32px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a}.gsi-brand{border-radius:var(--radius);place-items:center;width:56px;height:56px;margin:0 auto 18px;display:grid;overflow:hidden;box-shadow:0 4px 14px #183f3a1f}.gsi-brand img{object-fit:cover;width:100%;height:100%}.gsi-card h1{color:#1f2a28;margin:0;font-size:26px;font-weight:500}.gsi-subtitle{font-size:var(--fs-base);color:var(--muted);margin:8px 0 28px}.gsi-subtitle strong{color:var(--text);font-weight:700}.gsi-form{text-align:left}.gfield{margin-bottom:18px;position:relative}.form-card .gfield,.form-card .gfield-row,.inspection-form .gfield,.inspection-form .gfield-row{margin-bottom:0}.gfield input,.gfield select,.gfield textarea{border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);border:1px solid #ccd3d1;font-size:16px;font-weight:400;transition:border-color .15s,border-width .15s}.gfield input,.gfield select{height:52px;padding:15px 14px}.gfield textarea{resize:vertical;min-height:96px;padding:20px 14px 8px}.gfield input[type=date],.gfield input[type=time]{appearance:none;min-height:52px;max-height:52px;line-height:normal}.gfield input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0;padding:0}.gfield input[type=time]::-webkit-date-and-time-value{text-align:left;margin:0;padding:0}.gfield input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;margin:0;padding:0}.gfield input[type=time]::-webkit-calendar-picker-indicator{opacity:.55;margin:0;padding:0}.gfield label{color:var(--muted);background:var(--surface);pointer-events:none;padding:0 3px;font-size:16px;font-weight:400;line-height:1;transition:top .15s,font-size .15s,color .15s;position:absolute;top:16px;left:13px}.gfield input:focus+label,.gfield input:not(:placeholder-shown)+label{color:var(--primary);font-size:12px;top:-8px}.gfield input:focus{border-color:var(--primary);border-width:2px}.gfield-static label,.gfield textarea+label{color:var(--muted);font-size:12px;top:-8px}.gfield textarea{padding-top:20px}.gfield-static input:focus,.gfield-static select:focus,.gfield textarea:focus{border-color:var(--primary);border-width:2px}.gfield-static input:focus+label,.gfield-static select:focus+label,.gfield textarea:focus+label{color:var(--primary)}.gfield-password input{padding-right:46px}.gfield-password .icon-button{position:absolute;top:50%;right:3px;transform:translateY(-50%)}.gfield-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=390px){.gfield-row{grid-template-columns:1fr}}.gsi-hint{font-size:var(--fs-xs);color:var(--muted);margin:-4px 0 26px}.gsi-actions{justify-content:flex-end;display:flex}.gsi-submit{border-radius:var(--radius);min-height:40px;font-size:var(--fs-sm);padding:0 24px}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#183f3a8c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius);text-align:center;width:min(100%,380px);max-height:85vh;padding:28px 24px 24px;animation:.22s both toast-in;position:relative;overflow-y:auto;box-shadow:0 30px 70px #183f3a4d}.modal-close{width:36px;height:36px;font-size:16px;position:absolute;top:12px;right:12px}.modal-brand{border-radius:var(--radius);background:0 0;width:64px;height:64px;margin:0 auto 14px;overflow:hidden}.modal-brand img{object-fit:cover;width:100%;height:100%}.modal-card h2{font-size:var(--fs-lg);margin:0 0 6px}.modal-card p.muted{font-size:var(--fs-sm);margin:0 0 20px}.install-steps{text-align:left;gap:14px;margin:0;padding:0;list-style:none;display:grid}.install-steps li{align-items:center;gap:12px;display:flex}.install-step-icon{border-radius:var(--radius);background:var(--primary-soft);width:38px;height:38px;color:var(--primary-dark);flex:none;place-items:center;font-size:18px;display:grid}.install-steps li span:last-child{font-size:var(--fs-sm);color:var(--text)}[hidden]{display:none!important}@media (width>=620px){.photo-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=390px){.approval-actions{flex-direction:column}.badge{max-width:110px}.page-shell{padding-left:16px;padding-right:16px}}@media (width<=340px){.detail-grid{grid-template-columns:1fr}}.camera-session{position:relative}.camera-viewfinder{border-radius:var(--radius);background:#000;position:relative;overflow:hidden}.camera-viewfinder video{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.camera-overlay{background:linear-gradient(#0004,#0000 40% 70%,#0006);flex-direction:column;justify-content:space-between;padding:14px;display:flex;position:absolute;inset:0}.camera-step-info{text-align:center}.camera-step-info strong{color:#fff;font-size:var(--fs-base);margin-top:6px;display:block}.camera-step-info small{color:#fffc;font-size:var(--fs-xs)}.camera-shutter{border-radius:var(--radius);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;background:#fff3;border:4px solid #fff;place-items:center;width:68px;height:68px;margin:0 auto;font-size:24px;transition:transform .1s;display:grid}.camera-shutter:active{transform:scale(.9)}.camera-preview{border-radius:var(--radius);position:relative;overflow:hidden}.camera-preview img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.camera-preview-actions{background:linear-gradient(#0000,#000a);justify-content:center;gap:10px;padding:14px;display:flex;position:absolute;bottom:0;left:0;right:0}.camera-preview-actions .button{min-width:110px}.camera-review .photo-slot{cursor:pointer}.camera-retake-btn{z-index:4;font-size:var(--fs-xs);color:#fff;border-radius:var(--radius);cursor:pointer;background:#000a;border:none;padding:4px 10px;position:absolute;bottom:8px;right:8px}.video-frame{aspect-ratio:16/9;border-radius:var(--radius);background:#0d1a19;position:relative;overflow:hidden}.video-frame iframe,.video-frame video{border:0;width:100%;height:100%;position:absolute;inset:0}.video-frame video{object-fit:contain;background:#0d1a19}.video-thumb{padding:0;position:relative;overflow:hidden}.video-thumb img{object-fit:cover;width:100%;height:100%}.video-thumb b{color:#fff;background:#0d1a1957;place-items:center;font-size:22px;display:grid;position:absolute;inset:0}.video-poin{color:var(--muted);font-size:var(--fs-sm);gap:6px;margin:8px 0 0;padding-left:20px;display:grid}.list-card.is-belum{opacity:.62}.inspection-compare{gap:20px;display:grid}.compare-pair{gap:12px;display:grid}.compare-pair h3{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0}.compare-photos{grid-template-columns:1fr 1fr;gap:10px;display:grid}.compare-photo{border-radius:var(--radius);overflow:hidden}.compare-photo img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.compare-photo-label{font-size:var(--fs-xs);text-align:center;color:var(--muted);padding:6px 0;font-weight:600}.compare-photo-placeholder{aspect-ratio:4/3;background:var(--surface);border-radius:var(--radius);color:var(--muted);font-size:var(--fs-sm);place-items:center;display:grid}@media (width<=390px){.compare-photos{grid-template-columns:1fr}}.report-filter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.report-filter-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.report-filter label{font-size:var(--fs-2xs);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-weight:800;display:block}.report-filter input,.report-filter select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;min-height:44px;color:var(--text);padding:10px 12px}.report-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch;overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:var(--fs-xs);white-space:nowrap}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px}.report-table th{color:var(--muted);text-transform:uppercase;font-weight:800;font-size:var(--fs-2xs);letter-spacing:.04em;background:#f7f9f9}.report-table tbody tr:last-child td{border-bottom:0}.report-table td.num,.report-table th.num{text-align:right;font-variant-numeric:tabular-nums}.report-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.cal-nav{justify-content:space-between;align-items:center;gap:10px;display:flex}.cal-nav-label{font-weight:800;font-size:var(--fs-sm);text-align:center;flex:1}.cal-grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-grid{grid-template-columns:124px repeat(7,minmax(62px,1fr));min-width:560px;display:grid}.cal-cell{border-bottom:1px solid var(--border);border-left:1px solid var(--border);min-height:54px;font-size:var(--fs-2xs);flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:7px 5px;display:flex}.cal-head{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f7f9f9;font-weight:800;line-height:1.3}.cal-head-today{color:var(--primary-dark);background:var(--primary-soft)}.cal-veh{text-align:left;z-index:2;background:var(--surface);border-left:0;justify-content:center;align-items:flex-start;position:sticky;left:0}.cal-veh strong{font-size:var(--fs-xs);font-weight:700;display:block}.cal-veh small{color:var(--muted)}.cal-grid>.cal-cell:nth-last-child(-n+8){border-bottom:0}.cal-slot{border-radius:var(--radius);text-align:center;width:100%;padding:3px 4px;font-weight:700;line-height:1.35}.cal-slot-approved{background:var(--primary-soft);color:var(--primary-dark)}.cal-slot-pending{color:var(--warning);background:#fdf1de}.cal-more{color:var(--muted);font-weight:700}.cal-free{color:var(--muted);opacity:.45;font-size:var(--fs-sm)}.cal-legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:16px;margin:14px 2px 0;display:flex}.cal-legend span{align-items:center;gap:6px;display:inline-flex}.cal-legend i{border-radius:var(--radius);width:12px;height:12px;display:inline-block}.vehicle-hint{margin:var(--space-3) 0 0;font-size:var(--fs-2xs);color:var(--muted);line-height:1.45}.field-error{color:var(--danger);font-size:var(--fs-sm);margin:-10px 0 14px;font-weight:650}
