@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#182b27;background:#f4f6f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.045em}h1{font-size:clamp(1.75rem,3vw,2.55rem);line-height:1.2;margin-bottom:.45rem}h2{font-size:1.25rem;margin-bottom:1rem}h3{font-size:1rem;margin-bottom:.65rem}.muted{color:#71807a}.small{font-size:.82rem}.loading-screen{min-height:100vh;display:grid;place-items:center;color:#71807a}.app-shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{background:#132a25;color:#fff;padding:30px 18px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:0 10px;text-decoration:none;font:800 1.16rem Manrope,sans-serif;letter-spacing:-.05em}.brand-symbol{width:34px;height:34px;display:grid;place-items:center;background:#d7f07c;color:#193628;border-radius:11px;font-size:1.25rem}.brand small{display:block;font:500 .68rem 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#a9b9ae;margin-top:1px}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:#aebfb5;text-align:left;padding:13px 14px;border-radius:11px;display:flex;gap:13px;align-items:center;font-weight:600}.nav button:hover,.nav button.active{background:#2a483e;color:#fff}.nav-icon{width:20px;text-align:center;font-size:1.13rem}.sidebar-bottom{margin-top:auto}.account{border-top:1px solid #385248;padding:19px 10px 0;display:flex;gap:10px;align-items:center}.avatar{width:35px;height:35px;border-radius:50%;background:#d7f07c;color:#183127;display:grid;place-items:center;font-weight:800;flex:none}.account strong{display:block;font-size:.89rem}.account span{display:block;font-size:.72rem;color:#a5b7aa;overflow:hidden;text-overflow:ellipsis;max-width:155px}.logout{border:0;background:transparent;color:#aebfb5;padding:12px 10px;margin-top:8px;text-align:left;width:100%}.logout:hover{color:white}.workspace{padding:31px clamp(20px,4vw,64px) 70px;max-width:1600px;width:100%;margin:auto}.topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;color:#8a968f;font-size:.83rem}.topline strong{color:#354a40;font-weight:600}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:27px}.page-heading p{margin:0;color:#75847b}.btn{border:1px solid transparent;border-radius:11px;min-height:43px;padding:10px 17px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;white-space:nowrap}.btn-primary{background:#234d3d;color:white;box-shadow:0 7px 16px #1e49351f}.btn-primary:hover{background:#163d2d}.btn-accent{background:#d7f07c;color:#18352a}.btn-accent:hover{background:#c8e56a}.btn-secondary{background:#fff;color:#2b493c;border-color:#dce4da}.btn-secondary:hover{background:#f7faf5}.btn-danger{color:#a23c37;background:#fff7f5;border-color:#efd3cd}.btn-link{border:0;background:transparent;padding:0;color:#285b43;font-weight:700}.btn-block{width:100%}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}.stat{background:white;border:1px solid #e8eee5;border-radius:16px;padding:20px 22px;min-height:115px}.stat-label{font-size:.78rem;color:#7c8a80;font-weight:600}.stat-value{font:800 1.65rem Manrope,sans-serif;letter-spacing:-.06em;margin-top:9px}.stat small{color:#829287}.panel{background:white;border:1px solid #e7ede5;border-radius:17px;box-shadow:0 6px 26px #1d402509}.panel-pad{padding:24px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:21px 24px;border-bottom:1px solid #edf0eb}.toolbar h2{margin:0}.filters{display:flex;gap:9px;flex-wrap:wrap}.field,.select{width:100%;border:1px solid #dce5db;border-radius:10px;background:white;color:#263e32;min-height:44px;padding:10px 12px;outline:none}.field:focus,.select:focus{border-color:#6e9d76;box-shadow:0 0 0 3px #d9efda}.filters .select,.filters .field{width:auto;min-width:130px;background:#f9faf7;font-size:.83rem}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;text-align:left}.table th{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#94a199;font-weight:700;background:#fbfcfa;padding:13px 24px}.table td{padding:18px 24px;border-top:1px solid #f0f2ee;vertical-align:middle;font-size:.87rem}.table tr:hover td{background:#fcfdfb}.job-name{font-weight:700;font-size:.92rem;color:#20392d;display:block;margin-bottom:3px}.job-sub{color:#95a198;font-size:.77rem}.table .open-job{background:transparent;border:0;color:#246342;font-weight:700;padding:7px 0}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:100px;font-size:.75rem;font-weight:700;padding:6px 10px;white-space:nowrap}.badge:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.badge-new{color:#59736c;background:#edf2ee}.badge-in_progress{color:#2b764c;background:#e8f4e7}.badge-pending_summary{color:#a26b23;background:#fff2d9}.badge-completed{color:#4e726d;background:#e5f1f0}.empty{padding:46px 24px;text-align:center;color:#8a998e}.empty-symbol{font-size:2.3rem;color:#adc3a3;margin-bottom:12px}.empty strong{display:block;color:#30493a;font-size:1rem;margin-bottom:6px}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,46%) 1fr;background:#f5f7f2}.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,7vw,115px);background:#fff}.auth-panel .brand{padding:0;color:#1c392a;margin-bottom:80px}.auth-panel .brand small{color:#86988b}.auth-panel h1{font-size:clamp(2rem,4vw,3rem)}.auth-panel p{color:#728177;margin-bottom:33px}.auth-art{background:#183a2d;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:70px}.auth-art:before,.auth-art:after{content:'';position:absolute;border:1px solid #83b48b65;border-radius:50%;width:900px;height:900px;right:-280px;top:-330px}.auth-art:after{width:660px;height:660px;right:-160px;top:-210px}.auth-art-inner{z-index:1;color:#eef8e5;max-width:500px}.auth-art h2{font-size:clamp(2.5rem,4.8vw,5rem);line-height:1.1}.auth-art p{color:#bdd0be;font-size:1.05rem;line-height:1.6}.auth-art .accent-line{width:66px;height:6px;border-radius:6px;background:#d7f07c;margin-bottom:27px}.auth-form{max-width:390px;width:100%}.form-group{margin-bottom:17px}.form-group label{display:block;font-size:.79rem;font-weight:700;color:#425a49;margin-bottom:7px}.form-hint{font-size:.74rem;color:#8b9a8f;margin-top:5px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-error{padding:11px 13px;background:#fff1ef;color:#aa413b;border:1px solid #f1d3cf;border-radius:9px;font-size:.84rem;margin:12px 0}.dialog-backdrop{position:fixed;inset:0;background:#12271dcc;z-index:30;display:grid;place-items:center;padding:18px}.dialog{background:white;border-radius:18px;width:min(100%,540px);max-height:92vh;overflow:auto;padding:27px;box-shadow:0 25px 80px #07160c45}.dialog-wide{width:min(100%,680px)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:20px}.dialog-head h2{margin:0}.icon-btn{background:#f3f6f1;border:0;border-radius:9px;width:32px;height:32px;font-size:1.2rem;color:#5f7466}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.back{border:0;background:transparent;color:#668273;padding:0 0 14px;font-weight:700}.detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.9fr);gap:20px}.detail-main,.detail-side{display:grid;gap:19px;align-content:start}.detail-description{line-height:1.7;white-space:pre-wrap;color:#516558}.info-list{display:grid;gap:16px}.info-item small{display:block;color:#8d9c91;font-size:.74rem;margin-bottom:5px}.info-item strong{font-size:.88rem}.timer-panel{background:#193d2e;color:white;border-radius:17px;padding:26px}.timer-panel .eyebrow{color:#a9c7ac;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:700}.timer{font:800 clamp(2.6rem,5vw,3.5rem) Manrope,sans-serif;letter-spacing:-.06em;margin:10px 0 18px;font-variant-numeric:tabular-nums}.timer-panel p{color:#c5d7c8;font-size:.81rem;margin:0 0 16px}.timer-panel .btn{width:100%}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:16px 1fr;gap:11px;padding:0 0 18px;position:relative}.timeline-item:not(:last-child):before{content:'';position:absolute;top:12px;bottom:0;left:5px;width:1px;background:#e4eae3}.timeline-dot{width:11px;height:11px;border:2px solid #91b9a0;background:white;border-radius:50%;margin-top:4px;z-index:1}.timeline-item strong{font-size:.82rem}.timeline-item p{margin:3px 0;color:#849389;font-size:.74rem}.session-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #eff2ed;padding:10px 0;font-size:.84rem}.session-row:last-child{border:0}.session-row small{display:block;color:#879589;margin-top:4px}.completion{padding:14px 0;border-bottom:1px solid #edf1e9}.completion:last-child{border-bottom:0;padding-bottom:0}.completion strong{font-size:.85rem}.completion p{font-size:.85rem;color:#526558;line-height:1.6;white-space:pre-wrap;margin:7px 0}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.photo-tile{display:block;border:1px solid #e5ebe3;border-radius:10px;overflow:hidden;aspect-ratio:1;background:#f7f9f4}.photo-tile img{width:100%;height:100%;object-fit:cover}.upload-zone{border:2px dashed #c9dbc7;border-radius:12px;padding:22px;text-align:center;background:#f8fbf5;cursor:pointer;color:#3b6948}.upload-zone input{display:none}.upload-zone strong{display:block;margin-bottom:4px}.upload-list{display:grid;gap:6px;margin-top:12px;font-size:.8rem;color:#57705d}.progress{width:100%;height:8px;border-radius:8px;overflow:hidden;background:#e6efe5;margin:13px 0}.progress span{display:block;height:100%;background:#76b887;transition:width .2s}.toast{position:fixed;bottom:24px;right:24px;z-index:60;max-width:340px;background:#173a2a;color:white;padding:13px 17px;border-radius:10px;box-shadow:0 12px 30px #0b271b35;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s}.toast.visible{opacity:1;transform:none}.toast.error{background:#a13f38}.mobile-bar{display:none}.password-card{max-width:540px}.status-note{padding:12px 15px;background:#f4f8ee;border-radius:10px;color:#5c765f;font-size:.83rem;margin-bottom:18px}
@media(max-width:1050px){.app-shell{grid-template-columns:200px minmax(0,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.auth-art{padding:40px}.auth-panel{padding:45px}}
@media(max-width:720px){.app-shell{display:block;padding-bottom:65px}.sidebar{display:none}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;height:65px;background:#18392b;color:#dcead9;align-items:center;justify-content:space-around;box-shadow:0 -8px 25px #203b2720}.mobile-bar button{background:transparent;border:0;color:inherit;display:grid;justify-items:center;gap:2px;font-size:.7rem;padding:7px 12px}.mobile-bar button.active{color:#d7f07c}.mobile-bar span{font-size:1.1rem}.workspace{padding:22px 15px 40px}.topline{margin-bottom:25px}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.8rem}.page-heading .btn{padding:9px 12px;font-size:.79rem}.stats{gap:9px}.stat{padding:15px;min-height:94px}.stat-value{font-size:1.35rem}.toolbar{align-items:stretch;flex-direction:column;padding:17px}.filters{display:grid;grid-template-columns:repeat(2,1fr)}.filters .select,.filters .field{width:100%;min-width:0}.table th,.table td{padding:13px 15px}.table th:nth-child(4),.table td:nth-child(4),.table th:nth-child(5),.table td:nth-child(5){display:none}.auth-page{display:block}.auth-panel{min-height:100vh;padding:35px 25px}.auth-panel .brand{margin-bottom:70px}.auth-art{display:none}.form-row{grid-template-columns:1fr}.dialog{padding:20px}.detail-head{display:block}.detail-head .badge{margin-top:8px}}

.camera-choice{display:inline-flex;align-items:center;min-height:40px;margin-top:8px;color:#285b43;font-weight:700;font-size:.82rem;cursor:pointer}.camera-choice input{display:none}

/* CleanApp blue and yellow identity; keep controls readable on light surfaces. */
:root{color:#12354d;background:#f4f9fd}
.sidebar,.mobile-bar{background:#08334f}
.nav button:hover,.nav button.active{background:#175d86}
.nav button{color:#c2dbe9}
.account{border-top-color:#286080}
.account span,.logout{color:#b9d5e4}
.brand-symbol{width:38px;height:38px;background:transparent;border-radius:0}
.brand-symbol img{display:block;width:100%;height:100%;object-fit:contain}
.avatar,.btn-accent{background:#fdf101;color:#17354a}
.btn-accent:hover{background:#efdf00}
.btn-primary{background:#0877b7;box-shadow:0 7px 16px #0877b726}
.btn-primary:hover{background:#075d93}
.btn-secondary{color:#125e8b;border-color:#d6e7f1}
.btn-secondary:hover{background:#f0f8fd}
.table .open-job,.btn-link,.back,.camera-choice{color:#086ca9}
.timer-panel,.auth-art{background:#08334f}
.timer-panel .eyebrow{color:#9bdcff}
.timer-panel p,.auth-art p{color:#c3dfec}
.auth-art:before,.auth-art:after{border-color:#2db4fe65}
.auth-art .accent-line{background:#fdf101}
.auth-panel .brand,.job-name,.empty strong{color:#12354d}
.auth-panel .brand small{color:#6d94aa}
.field:focus,.select:focus{border-color:#2db4fe;box-shadow:0 0 0 3px #d7efff}
.panel,.stat{border-color:#dfebf4}
.topline strong,.page-heading h1,.stat-value{color:#12354d}
.badge-new{color:#5a7b8d;background:#e9f1f6}
.badge-in_progress{color:#086ca9;background:#e1f3ff}
.badge-pending_summary{color:#8b7211;background:#fff9ce}
.badge-paused{color:#8b7211;background:#fff9ce}
.badge-completed{color:#426c86;background:#e4f2f9}
.toast{background:#08334f}
.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;min-height:104px;border-color:#9fd9fa;background:#f0f9ff;color:#086ca9;line-height:1.4}
.upload-zone strong,.upload-zone span{display:block;max-width:100%}
.upload-zone span{overflow-wrap:anywhere}
.camera-choice{display:flex;width:max-content;max-width:100%;margin-top:10px}
.upload-list{color:#39769a}
.progress{background:#d9effc}
.progress span{background:#2db4fe}
@media(max-width:720px){.mobile-bar button.active{color:#fdf101}}
.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;min-width:180px}
@media(max-width:720px){.employees-table th:nth-child(5),.employees-table td:nth-child(5){display:table-cell}.employees-table th:nth-child(2),.employees-table td:nth-child(2){display:none}}
.auth-brand{display:flex;align-items:center;gap:18px;margin-bottom:46px;color:#12354d;font:800 1.3rem Manrope,sans-serif;letter-spacing:-.04em}
.auth-brand img{display:block;width:156px;height:auto;flex:none}
@media(max-width:720px){.auth-brand{gap:15px;margin-bottom:42px}.auth-brand img{width:128px}}
.timer-actions{display:grid;gap:10px}
@media(min-width:1051px){.stats{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){.stats .stat:last-child{grid-column:span 2}}
.guest-shell{min-height:100vh;background:#f4f9fd}
.guest-header{display:flex;align-items:center;gap:18px;padding:18px clamp(18px,4vw,48px);background:#08334f;color:#fff}
.guest-header img{width:135px;height:auto;object-fit:contain}
.guest-header div{display:grid;gap:2px;border-left:1px solid #39718f;padding-left:18px}
.guest-header strong{font:800 1.12rem Manrope,sans-serif}
.guest-header span{font-size:.82rem;color:#c3dfec}
.guest-main{max-width:1100px;margin:0 auto;padding:30px 18px 70px}
.admin-detail-actions{display:grid;gap:9px;margin-top:20px}
.dialog #share-link{font-size:.83rem;overflow-wrap:anywhere}
@media(max-width:720px){.guest-header img{width:105px}.guest-header{gap:12px}.guest-header div{padding-left:12px}.guest-main{padding:22px 15px 50px}.dialog-actions{flex-wrap:wrap}.dialog-actions .btn{flex:1}}
