:root{--bg:#0a0a0b;--card:#151519;--line:#2a2a30;--text:#f4f4f5;--muted:#a3a3ad;--accent:#e11d2e;--gold:#f5b942}
*{box-sizing:border-box}html,body{margin:0;font-family:Arial,sans-serif;background:linear-gradient(145deg,#09090b,#17171d);color:var(--text);min-height:100%}a{color:inherit}.container{width:min(100%,980px);margin:auto;padding:24px}.brand{text-align:center;padding:20px 0}.brand h1{margin:0;font-size:clamp(28px,5vw,46px)}.brand p{color:var(--muted)}.card{background:rgba(22,22,27,.96);border:1px solid var(--line);border-radius:20px;padding:clamp(18px,4vw,32px);box-shadow:0 20px 60px #0005}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{font-weight:700}input,select{width:100%;padding:14px;border-radius:11px;border:1px solid #363640;background:#0d0d11;color:white;font-size:16px}.radio-row{display:flex;gap:18px;flex-wrap:wrap}.radio-row label{padding:12px 16px;background:#101014;border:1px solid #303037;border-radius:10px}.conditional{display:none}.conditional.show{display:contents}button,.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:12px;padding:14px 18px;font-size:16px;font-weight:700;cursor:pointer;text-decoration:none}.primary{background:var(--accent);color:#fff}.secondary{background:#27272d;color:#fff}.danger{background:#991b1b;color:white}.message{min-height:24px;color:#fbbf24}.preview-img{display:block;width:min(100%,540px);margin:20px auto;border-radius:18px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{padding:18px;background:#19191f;border-radius:14px;border:1px solid #303038}.stat strong{display:block;font-size:28px;margin-top:8px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:850px}.table th,.table td{padding:12px;border-bottom:1px solid #303038;text-align:left;vertical-align:middle}.thumb{width:70px;height:94px;object-fit:cover;border-radius:8px}.login-card{max-width:420px;margin:10vh auto}.actions{display:flex;gap:10px;flex-wrap:wrap}.small{font-size:13px;color:var(--muted)}

/* CLEAN CAMERA - ONE 2:3 CANVAS, VIDEO + FRAME ONLY */
body.camera-page{width:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:#0b0b0f;color:#fff}
.camera-page .camera-app{position:fixed;inset:0;width:100%;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#0b0b0f}
.camera-page .camera-shell{height:100%;width:min(100%,1100px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom));margin:auto}
.camera-page .camera-header{display:flex;align-items:center;justify-content:center;gap:12px;min-height:46px;text-align:center}
.camera-page .camera-header>div{display:flex;flex-direction:column;gap:2px}.camera-page .camera-header strong{font-size:16px}.camera-page .camera-header span{font-size:12px;color:#b7b7c0}
.camera-page .camera-back{position:absolute;left:18px;top:max(14px,env(safe-area-inset-top));width:40px;height:40px;display:grid;place-items:center;border-radius:50%;text-decoration:none;background:#1d1d23;border:1px solid #33333d;font-size:24px}
.camera-page .camera-stage{position:relative;width:auto;height:100%;max-width:calc((100dvh - 230px) * 2 / 3);justify-self:center;aspect-ratio:2/3;background:#000;overflow:hidden;border-radius:16px;box-shadow:0 12px 50px rgba(0,0,0,.55)}
.camera-page .camera-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:scaleX(-1);background:#000}
.camera-page .camera-stage .frame-overlay{position:absolute;inset:0;z-index:2;width:100%;height:100%;display:block;object-fit:fill;pointer-events:none;user-select:none}
.camera-page .camera-controls{display:flex;flex-direction:column;align-items:center;gap:7px;min-height:122px}
.camera-page .frame-selector{display:flex;justify-content:center;gap:9px;width:min(100%,420px);padding:6px;overflow-x:auto;scrollbar-width:none}.camera-page .frame-selector::-webkit-scrollbar{display:none}
.camera-page .frame-choice{position:relative;flex:0 0 66px;width:66px;height:88px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#17171c;color:#fff}.camera-page .frame-choice img{width:100%;height:100%;display:block;object-fit:contain;background:#101014}.camera-page .frame-choice b{position:absolute;left:0;right:0;bottom:0;padding:4px 2px;background:rgba(0,0,0,.72);font-size:10px}.camera-page .frame-choice.active{border-color:#ef233c;box-shadow:0 0 0 2px rgba(255,255,255,.75)}
.camera-page .capture{position:relative;width:62px;height:62px;min-height:62px;padding:0;border:4px solid #fff;border-radius:50%;background:rgba(255,255,255,.2)}.camera-page .capture span{position:absolute;inset:6px;border-radius:50%;background:#fff}.camera-page .capture.is-loading span{background:transparent;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .8s linear infinite}.camera-page .capture:disabled{opacity:.6;cursor:wait}@keyframes spin{to{transform:rotate(360deg)}}
.camera-page .camera-status{margin:0;min-height:16px;color:#c7c7d0;font-size:11px;text-align:center}.camera-page .camera-status.is-error{color:#fecaca}
@media(max-width:700px){.camera-page .camera-shell{width:100%;padding:6px 6px max(8px,env(safe-area-inset-bottom));gap:6px}.camera-page .camera-header{min-height:38px}.camera-page .camera-header strong{font-size:14px}.camera-page .camera-header span{font-size:10px}.camera-page .camera-back{left:10px;top:max(8px,env(safe-area-inset-top));width:34px;height:34px;font-size:20px}.camera-page .camera-stage{width:min(calc(100vw - 12px),calc((100dvh - 190px) * 2 / 3));max-width:none;border-radius:12px}.camera-page .camera-controls{min-height:110px;gap:4px}.camera-page .frame-choice{flex-basis:58px;width:58px;height:78px}.camera-page .capture{width:54px;height:54px;min-height:54px}.camera-page .capture span{inset:5px}}
@media(max-height:650px) and (orientation:landscape){.camera-page .camera-shell{grid-template-rows:36px minmax(0,1fr) 96px}.camera-page .camera-header span{display:none}.camera-page .camera-stage{max-width:calc((100dvh - 145px) * 2 / 3)}.camera-page .frame-choice{flex-basis:48px;width:48px;height:64px}.camera-page .capture{width:48px;height:48px;min-height:48px}.camera-page .camera-controls{min-height:90px}}
@media(max-width:700px){.container{padding:14px}.grid{grid-template-columns:1fr}.full{grid-column:auto}.stats{grid-template-columns:1fr}.card{border-radius:14px}}
