:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173326;background:#eef3ef;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(160deg,#f7faf8,#e6eee8)}button,input{font:inherit}.shell{width:min(920px,100%);margin:auto;padding:20px 16px 60px}.hidden{display:none!important}header{display:flex;justify-content:space-between;align-items:center;margin:10px 0 22px}h1,h2,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(28px,5vw,42px);margin-bottom:0}h2{font-size:20px;margin-bottom:16px}small{letter-spacing:.18em;color:#6d7e73}.card{background:#fff;border:1px solid #dce6df;border-radius:22px;padding:20px;margin-bottom:16px;box-shadow:0 10px 30px rgba(24,58,39,.07)}.login{max-width:430px;margin:8vh auto;text-align:center}.brand-mark{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#244936;color:#e5d3a1;font:36px Georgia;margin:0 auto 18px}label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:650;color:#40574a}input{width:100%;border:1px solid #ccd9d0;border-radius:12px;padding:13px 14px;background:#fbfdfb;color:#173326;outline:none}input:focus{border-color:#3b7556;box-shadow:0 0 0 3px rgba(59,117,86,.12)}button,.file-button{border:0;border-radius:12px;padding:12px 16px;background:#244936;color:#fff;font-weight:750;cursor:pointer;text-align:center}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#dce9df;color:#234a35}.danger{background:#9d3f3f}.ghost{background:transparent;color:#315641;border:1px solid #bfd0c4}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#dfe9e2;padding:4px;border-radius:14px;margin-bottom:16px}.tab{background:transparent;color:#456050}.tab.active{background:#fff;color:#244936;box-shadow:0 4px 14px rgba(35,73,53,.09)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.camera-card video,#recordedPreview{display:block;width:100%;max-height:480px;background:#122019;border-radius:16px;object-fit:contain}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-title h2{margin-bottom:0}#timer{font-variant-numeric:tabular-nums;font-weight:800}.divider{display:flex;align-items:center;gap:10px;color:#8b9b91;margin:16px 0}.divider:before,.divider:after{content:"";height:1px;background:#dbe4de;flex:1}.file-button{display:block;background:#edf3ef;color:#264c37;border:1px dashed #87a392}.file-button input{display:none}.hint,.status,.file-info{font-size:13px;color:#6a7c70;margin:12px 0 0}.progress-wrap{height:9px;background:#e5ece7;border-radius:99px;overflow:hidden;margin-top:14px}.progress-wrap div{height:100%;width:0;background:#346f4e;transition:width .2s}.search{margin:16px 0}.video-list{display:grid;gap:12px}.video-item{border:1px solid #dce6df;border-radius:16px;padding:15px}.video-top{display:flex;justify-content:space-between;gap:12px}.video-item h3{margin:0 0 4px}.video-item p{font-size:13px;color:#617368;margin:2px 0}.video-actions{display:flex;gap:8px;margin-top:12px}.video-actions a,.video-actions button{flex:1;text-decoration:none;font-size:14px;padding:9px}.video-actions a{background:#244936;color:#fff;border-radius:10px;text-align:center;font-weight:700}.video-actions button{background:#f5e8e8;color:#8d3838}.badge{white-space:nowrap;font-size:12px;background:#edf4ef;color:#376248;padding:5px 9px;border-radius:99px;height:max-content}.error{color:#9d3f3f}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#173326;color:#fff;padding:11px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:50}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:650px){.shell{padding:12px 12px 40px}.grid{grid-template-columns:1fr}.actions{grid-template-columns:1fr}.card{padding:16px;border-radius:18px}header{align-items:flex-start}.video-top{flex-direction:column}.badge{align-self:flex-start}}
.input-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.scan-button{padding:0 14px;white-space:nowrap}.modal{position:fixed;inset:0;z-index:100;background:rgba(10,27,18,.72);display:grid;place-items:center;padding:16px;overscroll-behavior:contain}.modal-card{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;border-radius:22px;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.3)}.compact{padding:8px 12px}.scanner-hint{margin-top:4px}.scanner-frame{position:relative;background:#101a14;border-radius:16px;overflow:hidden;aspect-ratio:4/3;margin-top:14px}.scanner-frame video{width:100%;height:100%;object-fit:cover;display:block}.scan-guide{position:absolute;left:10%;right:10%;top:30%;height:40%;border:3px solid rgba(255,255,255,.9);border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.18)}.scan-guide:after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#fff;box-shadow:0 0 12px rgba(255,255,255,.9)}.scanner-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}body.modal-open{overflow:hidden}@media(max-width:650px){.input-action-row{grid-template-columns:1fr}.scan-button{min-height:44px}.modal{padding:8px}.modal-card{max-height:calc(100dvh - 16px);border-radius:18px}.scanner-actions{grid-template-columns:1fr}}
