:root{--green:#08664f;--deep:#073f35;--mint:#e8f5ee;--gold:#c9a45d;--ink:#172e35;--muted:#687d85;--line:#dce7e4;--paper:#fff;--bg:#f3f7f6;--red:#bd3348;--amber:#9d6715;--radius:14px}*{box-sizing:border-box}body{margin:0;font-family:Inter,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.55}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #c8a762;outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}h1,h2,h3,p{margin:0}h1{font-size:27px;line-height:1.3;letter-spacing:-.7px}h2{font-size:19px;letter-spacing:-.3px}h3{font-size:15px}p{margin-bottom:12px}.muted,.subtitle{color:var(--muted)}.subtitle{margin-top:5px;font-size:13px}.small{font-size:12px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:700;text-transform:uppercase;color:var(--green)}.brand{display:flex;align-items:center;gap:9px;color:var(--deep);font-weight:800;font-size:13px;letter-spacing:.3px}.brand svg{width:35px;height:43px;flex-shrink:0}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:29px 18px;z-index:20}.sidebar .brand{padding:0 8px 30px}.nav-label{font-size:10px;color:#8b9b9a;letter-spacing:1.5px;padding:14px 14px 9px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:4px 0;color:#647578;border-radius:9px;font-size:13px;font-weight:500}.nav-link svg{width:19px;height:19px}.nav-link:hover{background:var(--mint);color:var(--green)}.nav-link.active{background:var(--green);color:white;box-shadow:0 4px 12px #08664f22}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--green);color:white;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.user-info{display:flex;align-items:center;gap:10px;min-width:0}.user-info strong{display:block;overflow-wrap:anywhere}.main{margin-left:232px;min-height:100vh}.topbar{height:76px;background:#ffffffd9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:15px}.topbar-title{font-size:13px;color:var(--muted)}.content{max-width:1440px;margin:auto;padding:32px 36px 48px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:25px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 17px;border:1px solid transparent;border-radius:8px;font-weight:600;font-size:13px;background:var(--green);color:white;text-decoration:none;line-height:1.4}.btn:hover{filter:brightness(.95)}.btn svg{width:17px;height:17px}.btn.secondary{background:white;color:var(--green);border-color:#91b7aa}.btn.light{background:var(--mint);color:var(--green)}.btn.danger{background:var(--red)}.btn.sm{min-height:34px;padding:7px 12px;font-size:12px}.btn.block{width:100%}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:23px;box-shadow:0 3px 14px #153d2b03}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.split{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:22px}.stat{position:relative;overflow:hidden}.stat-label{font-size:12px;color:var(--muted);margin-bottom:10px}.stat-value{font-size:32px;font-weight:750;line-height:1.2;letter-spacing:-1px}.stat-foot{font-size:11px;color:var(--muted);margin-top:10px}.stat .stat-icon{position:absolute;right:20px;top:22px;width:36px;height:36px;background:var(--mint);border-radius:10px;display:grid;place-items:center;color:var(--green)}.stat-icon svg{width:18px;height:18px}.stat.green{background:#eff9f3;border-color:#d5edde}.stat.red{background:#fff4f5;border-color:#f5dde2}.stat.gold{background:#fffbf1;border-color:#eee4ca}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:6px;font-size:11px;font-weight:650;padding:5px 9px;line-height:1.35;background:#eef1f3;color:#53666e;white-space:normal}.badge.green{color:#087244;background:#dff6e8}.badge.amber{color:#94600d;background:#fff0d3}.badge.red{color:#b62e49;background:#ffe2e8}.badge.blue{color:#2762a7;background:#e7efff}.badge.gray{color:#687981;background:#edf1f2}.field{margin-bottom:18px}.field label{display:block;font-size:12px;font-weight:650;margin-bottom:7px}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.search-input{display:block;width:100%;border:1px solid #cfded9;border-radius:8px;padding:11px 12px;background:white;color:var(--ink);min-height:43px}.field textarea{resize:vertical;min-height:105px}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{outline:2px solid #8bbbab;border-color:var(--green)}.field .help{margin-top:6px;font-size:11px;color:var(--muted)}.field input[type=file]{font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:6px}.notice{border-radius:9px;padding:13px 16px;background:var(--mint);border:1px solid #cfe8da;color:#226146;font-size:13px;margin-bottom:18px}.notice.warning{background:#fff8e9;color:#856025;border-color:#eadcb8}.notice.error{background:#fff0f2;color:#a42e44;border-color:#f1cdd5}.notice.info{background:#eff5fa;color:#42657d;border-color:#d8e5ef}.table-wrap{overflow:auto;width:100%;border:1px solid var(--line);border-radius:11px}.table{border-collapse:collapse;width:100%;font-size:12px;background:white;white-space:nowrap}.table th{text-align:left;background:#f6f9f8;color:#647578;font-size:11px;font-weight:650;padding:14px 16px;border-bottom:1px solid var(--line)}.table td{padding:15px 16px;border-bottom:1px solid #edf2f0;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fbfdfc}.table .name{font-weight:650;color:var(--ink);white-space:normal;min-width:135px}.table .sub{font-size:10px;color:var(--muted);margin-top:3px}.empty{padding:55px 24px;text-align:center;color:var(--muted)}.empty svg{width:42px;height:42px;color:#97b4a9;margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:7px}.toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.toolbar .field{margin:0;min-width:160px;flex:1}.toolbar .search{flex:2;min-width:200px}.stack{display:flex;flex-direction:column;gap:18px}.detail-line{display:flex;gap:9px;align-items:flex-start;margin-top:9px;color:var(--muted);font-size:12px}.detail-line svg{width:16px;height:16px;flex-shrink:0;color:var(--green);margin-top:1px}.divider{height:1px;background:var(--line);margin:19px 0}.event-card{border-top:4px solid var(--green)}.event-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.event-date{width:55px;text-align:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;flex-shrink:0}.event-date span{display:block;background:var(--mint);color:var(--green);font-size:10px;letter-spacing:1px;padding:4px}.event-date strong{display:block;font-size:23px;line-height:1.7}.event-status{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:19px 0}.status-box{border:1px solid var(--line);border-radius:9px;padding:13px}.status-box small{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.status-box strong{font-size:12px}.employee-shell{max-width:720px;margin:0 auto;min-height:100vh;background:#f3f8f6;padding-bottom:90px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.employee-header{height:70px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line)}.employee-header .brand{font-size:12px}.employee-header .brand svg{width:27px;height:34px}.employee-main{padding:27px 24px}.employee-main h1{font-size:23px}.greeting{display:flex;align-items:center;gap:12px;margin-bottom:24px}.greeting .avatar{height:45px;width:45px;font-size:20px}.employee-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:718px;width:100%;background:#fffffff5;backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:11px 10px max(12px,env(safe-area-inset-bottom));z-index:30}.employee-nav a{display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--muted);font-size:10px;min-width:60px}.employee-nav a.active{color:var(--green);font-weight:700}.employee-nav svg{width:21px;height:21px}.back-link{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-bottom:19px}.back-link svg{width:16px;height:16px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:white}.login-art{position:relative;overflow:hidden;background:var(--deep);color:white;display:flex;flex-direction:column;justify-content:space-between;padding:55px 65px}.login-art::before,.login-art::after{content:'';position:absolute;width:420px;height:420px;transform:rotate(45deg);border:1px solid #ffffff18;right:-200px;bottom:50px;background:#ffffff03}.login-art::after{width:300px;height:300px;right:-130px;bottom:110px;border-color:#c9a45d55}.login-art .brand{color:white;font-size:16px;position:relative;z-index:1}.login-art .brand svg{width:44px;height:54px}.login-quote{position:relative;z-index:1;max-width:430px}.login-quote .eyebrow{color:#d9c18b}.login-quote h1{font-size:44px;line-height:1.2;color:white;margin:18px 0}.login-quote p{color:#b7d3c8;font-size:15px;line-height:1.8}.login-footer{font-size:11px;color:#a0beb3}.login-form-side{display:flex;align-items:center;justify-content:center;padding:45px;position:relative;overflow:hidden}.login-form{width:100%;max-width:365px;position:relative;z-index:1}.login-form .brand{justify-content:center;margin-bottom:35px;flex-direction:column;text-align:center;font-size:19px;line-height:1.2}.login-form .brand svg{width:62px;height:75px}.login-form h2{font-size:23px;margin-bottom:6px}.login-form .subtitle{margin-bottom:30px}.password-wrap{position:relative}.password-wrap input{padding-right:48px!important}.password-toggle{position:absolute;right:5px;top:4px;background:transparent;border:0;padding:8px;color:var(--muted)}.password-toggle svg{width:19px;height:19px}.login-note{text-align:center;font-size:11px;color:var(--muted);margin-top:25px}.choice-group{display:flex;background:#f0f5f3;border-radius:9px;padding:4px;gap:4px;margin:20px 0}.choice-group label{flex:1;text-align:center;cursor:pointer;position:relative}.choice-group input{position:absolute;opacity:0;width:1px;height:1px}.choice-group span{display:block;padding:10px;border-radius:7px;font-size:12px;color:var(--muted)}.choice-group input:checked+span{background:var(--green);color:white;box-shadow:0 3px 8px #08664f22}.choice-group input:focus-visible+span{outline:3px solid var(--gold)}.file-preview{border:1px dashed #a9c6b9;padding:17px;border-radius:9px;background:#f7fbf9;text-align:center}.file-preview input{max-width:100%}.file-preview img{max-width:100%;max-height:200px;border-radius:7px;margin-top:12px}.qr-card{text-align:center;max-width:440px;margin:auto}.qr-stage{display:inline-flex;min-height:248px;min-width:248px;align-items:center;justify-content:center;background:white;padding:16px;border:1px solid var(--line);border-radius:13px;margin:23px 0 14px}.qr-stage img,.qr-stage canvas{max-width:224px;width:100%;height:auto}.countdown{font-size:35px;font-weight:750;color:var(--green);font-variant-numeric:tabular-nums;letter-spacing:1px}.qr-expired{opacity:.13;filter:blur(4px)}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.tabs a{font-size:12px;padding:8px 14px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--muted)}.tabs a.active{background:var(--green);color:white;border-color:var(--green)}.timeline{padding-left:20px;border-left:2px solid #d7e8df;margin-left:5px}.timeline-item{position:relative;margin-bottom:18px;font-size:12px}.timeline-item::before{content:'';width:8px;height:8px;background:var(--green);border:3px solid #e3f2e9;box-sizing:content-box;border-radius:50%;position:absolute;left:-28px;top:3px}.timeline-item time{display:block;color:var(--muted);font-size:10px;margin-top:4px}.review-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px}.review-item{display:block;padding:17px;border:1px solid var(--line);border-radius:10px;background:white;margin-bottom:10px;color:var(--ink)}.review-item.selected{border-color:#7ead9a;background:#f0f8f3;box-shadow:inset 3px 0 var(--green)}.evidence-image{max-width:100%;max-height:350px;border-radius:10px;border:1px solid var(--line);object-fit:contain}.scanner-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:24px}.camera-frame{background:#102a25;min-height:360px;position:relative;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:white;text-align:center}.camera-frame #reader{width:100%;border:0!important}.camera-frame #reader video{width:100%!important;max-height:60vh;object-fit:cover}.camera-idle{padding:45px 24px}.camera-idle svg{width:60px;height:60px;color:#6fbd9b;margin-bottom:17px}.camera-caption{text-align:center;padding:12px;color:var(--muted);font-size:12px}.scan-result{background:#e6f7ed;border:1px solid #cbe7d6;padding:22px;border-radius:11px;margin-bottom:20px}.scan-result.error{background:#fff1f3;border-color:#edcbd3;color:#a42e44}.scan-result h2{margin:6px 0}.scan-result time{font-size:12px}.bar-list{display:flex;flex-direction:column;gap:16px}.bar-line{display:flex;align-items:center;gap:12px;font-size:12px}.bar-line>span:first-child{width:110px;color:var(--muted)}.bar-track{height:8px;flex:1;background:#edf2ef;border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:var(--gold);border-radius:5px}.trend{display:flex;height:170px;gap:20px;align-items:flex-end;padding:10px 7px 25px;border-bottom:1px solid var(--line)}.trend-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative}.trend-col .bar{background:linear-gradient(#39a374,var(--green));width:100%;max-width:42px;border-radius:4px 4px 0 0;min-height:2px}.trend-col small{position:absolute;bottom:-22px;white-space:nowrap;font-size:9px;color:var(--muted)}.trend-col b{font-size:10px;margin-bottom:5px}.profile-grid{display:grid;grid-template-columns:120px 1fr;gap:10px;font-size:12px}.profile-grid dt{color:var(--muted)}.profile-grid dd{margin:0;overflow-wrap:anywhere}.mobile-menu{display:none}.footer-note{text-align:center;color:#93a29d;font-size:10px;margin-top:30px}.hidden,[hidden]{display:none!important}.inline-form{display:inline}.checkbox-row{display:flex;gap:8px;align-items:flex-start;font-size:12px}.upload-summary{background:var(--mint);border-radius:10px;padding:18px;margin-top:16px}.pagination{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:18px;font-size:12px;color:var(--muted)}
@media(min-width:1500px){.content{padding-top:40px}.card{padding:27px}}@media(max-width:1100px){.sidebar{width:195px;padding:24px 12px}.main{margin-left:195px}.content{padding:25px 24px}.topbar{padding:0 24px}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.login-art{padding:40px}.login-quote h1{font-size:36px}.review-layout{grid-template-columns:240px minmax(0,1fr)}.scanner-layout{grid-template-columns:1fr}.split{grid-template-columns:1fr}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:232px;box-shadow:10px 0 40px #102d241a}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.mobile-menu{display:inline-flex;background:none;border:0;padding:7px;color:var(--green)}.mobile-menu svg{width:22px;height:22px}.topbar{height:65px;padding:0 18px}.topbar-title{display:none}.topbar .user-info strong{max-width:150px;font-size:12px}.content{padding:24px 18px 35px}.page-head{align-items:flex-start}.page-head h1{font-size:24px}.page-head .actions{justify-content:flex-end}.grid.two,.grid.three{grid-template-columns:1fr}.grid.four{gap:12px}.card{padding:19px}.stat-value{font-size:27px}.stat .stat-icon{display:none}.login-page{grid-template-columns:1fr;min-height:100vh;background:#fbfdfb}.login-art{display:none}.login-form-side{padding:45px 26px;background:linear-gradient(135deg,#e8f0e9aa 0 7%,transparent 7% 90%,#e8f0e9aa 90%)}.login-form-side::after{content:'';width:130px;height:130px;position:absolute;right:-80px;top:170px;transform:rotate(45deg);border:12px solid #c9a45d22}.login-form .brand{margin-bottom:35px}.review-layout{grid-template-columns:1fr}.review-list{display:flex;overflow:auto;gap:10px;padding-bottom:5px}.review-list .review-item{min-width:220px;margin:0}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.employee-main{padding:24px 18px}.employee-header{padding:0 18px}.camera-frame{min-height:290px}.toolbar{align-items:stretch}.toolbar .field{min-width:130px}.table td,.table th{padding:13px 12px}.profile-grid{grid-template-columns:95px 1fr}.actions .btn{white-space:normal}.page-head:has(.toolbar){flex-direction:column}.qr-stage{min-width:220px;min-height:220px}.qr-stage img,.qr-stage canvas{max-width:200px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.card-head>svg{width:23px;height:23px;flex-shrink:0;color:var(--green)}.badge svg{width:13px;height:13px;flex-shrink:0}.event-meta>svg{width:22px;height:22px}
.grid>*,.split>*,.review-layout>*,.scanner-layout>*,.stack>*,.card{min-width:0}.timeline-item{overflow-wrap:anywhere}.table-wrap{max-width:100%;min-width:0}.toolbar>*,.toolbar .search{min-width:0}.toolbar .search-input{min-width:0}.upload-summary{min-width:0}.actions select{max-width:100%}
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-width:0;margin-top:15px;font-size:11px;color:var(--muted)}.pagination-summary{overflow-wrap:anywhere}.pagination-controls{display:flex;align-items:center;gap:13px;flex-wrap:wrap;min-width:0}.pagination-size{display:flex;align-items:center;gap:7px}.pagination-size select{border:1px solid var(--line);background:white;border-radius:6px;padding:6px 8px;min-height:34px;color:var(--ink);font-size:12px}.pagination-navigation{display:flex;align-items:center;gap:5px;min-width:0}.pagination-button{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--green);font-size:19px;line-height:1}.pagination-button:hover:not(:disabled){background:var(--mint);border-color:#9bc2b1}.pagination-button:disabled{opacity:.4;cursor:not-allowed}.pagination-page{min-width:42px;text-align:center;color:var(--ink);font-size:11px;font-variant-numeric:tabular-nums}.table .pagination-empty td{padding:25px 15px;white-space:normal;text-align:center;color:var(--muted)}@media(max-width:500px){.table-pagination{align-items:flex-start;gap:9px}.pagination-controls{width:100%;justify-content:space-between;gap:8px}.pagination-navigation{gap:3px}.pagination-button{min-width:30px;min-height:34px}.pagination-size{gap:5px}.pagination-size select{padding:6px}.pagination-page{min-width:35px}.upload-summary .pagination-controls{justify-content:flex-start}}
.app-dialog{padding:0;border:1px solid var(--line);border-radius:16px;width:min(520px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100dvh - 36px);color:var(--ink);background:white;box-shadow:0 20px 90px #102d2440;overflow:hidden}.app-dialog.wide{width:min(800px,calc(100vw - 28px))}.app-dialog::backdrop{background:#102d2477;backdrop-filter:blur(3px)}.app-dialog[open]{display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:21px 24px;flex-shrink:0}.dialog-close{border:0;background:#eff5f2;color:var(--green);border-radius:8px;font-size:25px;line-height:1;width:35px;height:35px;flex-shrink:0;cursor:pointer}.dialog-body{padding:24px;overflow:auto;overscroll-behavior:contain;min-width:0}.dialog-body>*{min-width:0}.dialog-body .table-wrap{max-width:100%}.dialog-body .upload-summary{padding:17px}.dialog-body .form-actions{position:relative}.event-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.event-controls .actions{margin-left:auto}.scan-state{font-size:13px;font-weight:650}.readonly-details{margin-top:22px}.readonly-details dd{white-space:pre-wrap}.dialog-body .notice:last-child{margin-bottom:0}@media(max-width:500px){.dialog-header{padding:17px}.dialog-body{padding:17px}.dialog-header h2{font-size:18px}.app-dialog{max-height:calc(100dvh - 24px)}.dialog-body .upload-summary{padding:12px}.dialog-body .form-actions{flex-wrap:wrap}.dialog-body .form-actions .btn{flex:1}.event-controls .actions{margin-left:0;width:100%}}
html.dialog-open{overflow:hidden}
