:root{--bg:#0a1019;--panel:#101925;--line:rgba(255,255,255,.12);--soft:#9caabc;--white:#f5f7fa;--accent:#f8bc69;--teal:#67d5c2;--radius:20px;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--white);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button svg,.camera-helper svg,.heading-stat svg{height:21px;width:21px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon-defs,.hidden{display:none!important}
.login-view{min-height:100dvh;position:relative;display:grid;place-items:center;overflow:hidden;padding:38px 24px 48px;background:radial-gradient(ellipse at 83% 15%,#27313c 0,transparent 43%),radial-gradient(ellipse at 6% 88%,#29372f 0,transparent 37%),#0a1019}.login-orb{position:absolute;pointer-events:none;border-radius:50%;border:1px solid rgba(255,255,255,.07)}.orb-one{width:600px;height:600px;top:-310px;right:-280px;box-shadow:0 0 0 85px rgba(255,255,255,.015),0 0 0 175px rgba(255,255,255,.012)}.orb-two{height:280px;width:280px;bottom:-200px;left:-110px;box-shadow:0 0 0 40px rgba(248,188,105,.025)}.login-content{position:relative;max-width:460px;width:100%;padding:10px 0 40px}.brand-logo{display:flex;align-items:center;gap:10px;font-size:18px;letter-spacing:2.2px;font-weight:850;margin-bottom:80px}.brand-logo .brand-accent{color:var(--accent)}.brand-tag{font-size:10px;letter-spacing:1px;color:#8e9daa;border:1px solid var(--line);border-radius:4px;padding:3px 6px}.logo-ring,.header-emblem{display:block;width:30px;height:30px;border:6px solid var(--accent);border-radius:50%;position:relative}.logo-ring:after,.header-emblem:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--accent)}.login-overline,.overline{font-size:10px;letter-spacing:2.6px;color:var(--accent);font-weight:800}.login-content h1{font-size:clamp(42px,10vw,60px);letter-spacing:-2.8px;line-height:1.06;margin:17px 0 22px}.login-content h1 em{color:var(--accent);font-weight:550;font-style:normal}.login-lead{font-size:15px;color:#b5c0ca;max-width:370px;margin:0 0 40px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form label{font-size:11px;color:#b6becb;font-weight:700;letter-spacing:1.4px}.login-form input{background:#18222f;border:1px solid #334355;border-radius:13px;color:white;padding:17px 18px;font-size:17px;letter-spacing:1.1px;outline:none}.login-form input::placeholder{color:#79889a;font-size:14px;letter-spacing:0}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;border-radius:13px;padding:16px 19px;font-weight:800;background:var(--accent);color:#16191c;transition:filter .18s ease}.primary-btn:hover{filter:brightness(1.08)}.primary-btn svg{width:20px;height:20px}.login-footnote{color:#8290a2;font-size:12px;text-align:center;margin-top:18px}.demo-label{font-size:11px;text-align:center;color:var(--teal);margin-top:16px}.login-bottom{position:absolute;bottom:28px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:2px;color:#697785}.login-bottom span{color:var(--accent);margin:0 8px}
.app-shell{height:100dvh;max-width:1500px;margin:auto;display:flex;flex-direction:column;min-height:0}.app-header{flex:0 0 auto;height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,54px);border-bottom:1px solid var(--line);gap:16px}.header-brand,.header-side{display:flex;align-items:center;gap:13px}.header-brand strong{font-size:16px;letter-spacing:.65px}.header-brand strong span{color:var(--accent)}.header-brand small{font-size:9px;letter-spacing:1.45px;color:#8b99a8}.header-emblem{width:35px;height:35px;border-width:7px}.brand-lines{display:flex;flex-direction:column;gap:3px}.quota-label{display:flex;align-items:center;gap:6px;background:#18222d;border:1px solid var(--line);padding:9px 13px;border-radius:50px;font-size:12px}.quota-label small{font-size:10px;color:#8995a3;letter-spacing:.5px}.quota-dot,.live-dot{width:6px;height:6px;background:var(--teal);border-radius:50%;display:inline-block}.account-btn{height:38px;width:38px;border-radius:50%;background:#26364a;color:white;border:1px solid #405067;font-size:12px;font-weight:900}
.page{flex:1 1 auto;min-height:0;overflow-y:auto;padding:clamp(16px,3vh,29px) clamp(20px,4vw,54px) 18px}.camera-page{display:flex;flex-direction:column}.camera-intro{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.camera-intro h2,.gallery-heading h2{font-size:clamp(25px,3.3vw,39px);font-weight:800;letter-spacing:-1.1px;line-height:1.16;margin:6px 0}.heading-dot{color:var(--accent)}.mini-counter{display:flex;flex-direction:column;align-items:center;padding:8px 15px;min-width:80px;background:#16212d;border:1px solid #253646;border-radius:14px}.mini-counter span{font-size:23px;font-weight:800;color:var(--accent);line-height:1}.mini-counter small{font-size:10px;color:#a5b0bf;margin-top:5px}.camera-layout{flex:1 1 auto;display:flex;flex-direction:column;min-height:240px;max-height:900px;gap:14px}.camera-stage{flex:1 1 auto;position:relative;min-height:190px;border:1px solid #3c4650;border-radius:22px;overflow:hidden;background:radial-gradient(ellipse at center,#283341 0,#131d28 65%,#0d141e 100%)}.camera-grid{position:absolute;inset:0;opacity:.3;background-image:linear-gradient(to right,transparent calc(33.333% - .5px),#647589 calc(33.333% - .5px),#647589 calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),#647589 calc(66.666% - .5px),#647589 calc(66.666% + .5px),transparent calc(66.666% + .5px)),linear-gradient(to bottom,transparent calc(33.333% - .5px),#647589 calc(33.333% - .5px),#647589 calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),#647589 calc(66.666% - .5px),#647589 calc(66.666% + .5px),transparent calc(66.666% + .5px))}.stage-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:25px;color:#c3cfdb}.stage-empty strong{font-size:15px;margin-top:6px}.stage-empty span{font-size:12px;color:#8999a9}.empty-ring{display:grid;place-items:center;width:82px;height:82px;border:1px solid #64758a;border-radius:50%;background:rgba(255,255,255,.04);box-shadow:0 0 0 15px rgba(255,255,255,.024)}.empty-ring svg{width:34px;height:34px;fill:none;stroke:#e5edf5;stroke-width:1.3}.stage-media{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#071018}.safe-zone{pointer-events:none;position:absolute;border:1px solid rgba(255,255,255,.55);box-shadow:0 0 0 100vmax rgba(0,0,0,.19);left:50%;top:50%;transform:translate(-50%,-50%);width:200px;height:200px;z-index:2}.safe-corner{position:absolute;width:26px;height:26px;border-color:#fff;border-style:solid}.c1{left:-2px;top:-2px;border-width:3px 0 0 3px}.c2{right:-2px;top:-2px;border-width:3px 3px 0 0}.c3{left:-2px;bottom:-2px;border-width:0 0 3px 3px}.c4{right:-2px;bottom:-2px;border-width:0 3px 3px 0}.safe-label{position:absolute;bottom:-27px;left:50%;transform:translateX(-50%);white-space:nowrap;color:white;background:rgba(8,17,24,.8);border-radius:4px;padding:3px 7px;font-size:9px;letter-spacing:1.8px}.stage-topline{position:absolute;left:18px;right:18px;top:17px;display:flex;justify-content:space-between;align-items:center;gap:8px;z-index:3;pointer-events:none}.live-tag{font-size:10px;letter-spacing:1.2px;font-weight:800;background:rgba(12,24,32,.75);border:1px solid rgba(255,255,255,.14);border-radius:50px;padding:7px 10px}.live-tag .live-dot{margin-right:5px}.stage-topright{font-size:10px;letter-spacing:1px;color:#ced6e0}.stage-bottomline{position:absolute;bottom:15px;left:0;right:0;text-align:center;font-size:11px;color:#e9edf4;text-shadow:0 1px 8px #000;z-index:3;pointer-events:none}.camera-controls{flex:0 0 auto;display:grid;align-items:center;grid-template-columns:1fr 95px 1fr;gap:15px;min-height:90px}.control-slot{display:flex;align-items:center;flex-direction:column;gap:7px;font-size:11px;color:#a0acba}.side-control{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#1a2632;border:1px solid #364556;color:#dfe8f3}.shutter{height:80px;width:80px;display:grid;place-items:center;margin:auto;border:3px solid white;border-radius:50%;background:transparent;box-shadow:0 0 0 5px rgba(255,255,255,.06)}.shutter-inner{width:62px;height:62px;display:grid;place-items:center;background:#fff;border-radius:50%;color:#1a2635;transition:transform .15s}.shutter:active .shutter-inner{transform:scale(.92)}.shutter svg{height:29px;width:29px}.camera-helper{display:flex;gap:9px;align-items:center;color:#8e9baa;font-size:11px;padding-top:11px}.camera-helper svg{height:17px;width:17px;flex:none}.review-controls{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:10px 0;flex-wrap:wrap}.review-copy{flex:1;min-width:210px;display:flex;flex-direction:column;gap:3px}.review-copy strong{font-size:14px}.review-copy span{font-size:11px;color:#91a0b1}.secondary-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #394857;background:#17232e;color:#e9eef4;border-radius:12px;padding:14px 18px;font-weight:700}
.gallery-page{max-width:1200px;width:100%;align-self:center}.gallery-heading{display:flex;align-items:center;justify-content:space-between;margin:5px 0 28px;gap:16px}.gallery-heading p{margin:5px 0 0;color:#9aabb9;font-size:13px}.heading-stat{min-width:65px;padding:14px;border:1px solid var(--line);border-radius:13px;font-weight:850;color:var(--accent);display:grid;place-items:center;background:#17212d}.photo-grid{display:grid;grid-template-columns:repeat(var(--gallery-columns,4),minmax(0,1fr));gap:15px}.photo-card{min-width:0;background:#14202c;border:1px solid #273746;border-radius:14px;overflow:hidden}.photo-card button{display:block;width:100%;padding:0;overflow:hidden;aspect-ratio:1;background:#263747;border:0}.photo-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}.photo-card button:hover img{transform:scale(1.05)}.photo-meta{padding:12px}.photo-status{display:inline-flex;align-items:center;font-size:10px;font-weight:850;letter-spacing:.7px;border-radius:5px;padding:4px 7px}.status-pending{background:#59482c;color:#ffd59a}.status-approved{background:#1d4b42;color:#8df0da}.status-rejected{background:#572e38;color:#ffb5bc}.photo-date,.photo-author{font-size:11px;color:#94a5b6;margin-top:9px;overflow-wrap:anywhere}.photo-author{font-weight:700;color:#c6d2df}.photo-reason{font-size:11px;color:#ffaeb6;margin-top:5px}.empty-state{border:1px dashed #435162;border-radius:16px;text-align:center;min-height:230px;padding:35px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;color:#a9bacb}.empty-state svg{width:36px;height:36px;fill:none;stroke:#a4b5c7}.empty-state strong{font-size:17px;color:#f1f5fa}.empty-state span{font-size:12px}.load-more{display:block;margin:25px auto;background:#1d2c39;border:1px solid #415166;border-radius:10px;color:white;padding:12px 24px}
.bottom-nav{flex:0 0 auto;min-height:70px;padding:7px 15px max(8px,env(safe-area-inset-bottom));display:flex;justify-content:center;gap:clamp(20px,5vw,75px);background:#101824;border-top:1px solid var(--line)}.nav-item{border:0;background:transparent;color:#8292a4;display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px 14px;min-width:75px;font-size:11px;font-weight:650}.nav-item svg{width:22px;height:22px}.nav-item.active{color:var(--accent)}.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);z-index:100;background:#f6bd70;color:#17202a;padding:12px 19px;border-radius:11px;box-shadow:0 12px 50px #0007;max-width:min(500px,calc(100vw - 30px));text-align:center;font-size:13px;font-weight:800}.toast.error{background:#ffc0c0;color:#3f1515}.photo-modal{position:fixed;inset:0;z-index:90;background:rgba(2,6,10,.95);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 12px 18px}.photo-modal img{max-height:78dvh;max-width:min(1100px,100%);object-fit:contain;border-radius:8px}.modal-close{position:absolute;right:16px;top:16px;background:#263444;border:1px solid #52606e;color:white;border-radius:50%;width:42px;height:42px;display:grid;place-items:center}.modal-info{font-size:12px;color:#c3cfdb;text-align:center;margin-top:16px}
@media(max-width:600px){.app-header{height:66px;padding:0 17px}.header-brand{gap:9px}.header-brand strong{font-size:13px}.header-brand small{font-size:8px}.header-emblem{width:27px;height:27px;border-width:5px}.header-side{gap:7px}.quota-label{padding:7px 9px}.account-btn{width:33px;height:33px}.page{padding:18px 15px 10px}.camera-intro{margin-bottom:14px}.camera-intro h2{font-size:25px}.camera-layout{gap:13px}.camera-controls{min-height:88px}.camera-helper{font-size:10px;padding-top:8px}.gallery-heading{margin-bottom:20px}.photo-grid{grid-template-columns:repeat(var(--gallery-columns,2),minmax(0,1fr));gap:10px}.photo-meta{padding:9px}.login-content{padding-bottom:60px}.brand-logo{margin-bottom:65px}}
@media(orientation:landscape) and (max-height:700px){.app-header{height:52px;padding:0 22px}.page{padding:10px 18px 5px}.camera-page{overflow:hidden}.camera-intro{margin-bottom:6px}.camera-intro h2{font-size:22px;margin:1px 0}.overline{font-size:9px}.mini-counter{padding:5px 11px}.mini-counter span{font-size:15px}.camera-layout{flex-direction:row;gap:12px;min-height:140px}.camera-stage{min-height:140px}.camera-controls{min-height:0;width:96px;display:flex;flex-direction:column;justify-content:space-around;gap:5px}.shutter{width:68px;height:68px;flex:none}.shutter-inner{width:52px;height:52px}.shutter svg{height:25px;width:25px}.control-slot{gap:3px;font-size:9px}.side-control{height:36px;width:36px;border-radius:10px}.camera-helper{padding:4px 0 0;font-size:10px}.bottom-nav{min-height:50px;padding:2px 0}.nav-item{flex-direction:row;gap:9px;font-size:11px}.nav-item svg{height:18px;width:18px}.review-controls{width:170px;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}.review-copy{min-width:0}.review-copy span{font-size:10px}.review-controls button{padding:10px 8px;font-size:12px}.stage-bottomline{bottom:5px;font-size:10px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}

/* Landscape mobile: keep the 1:1 crop overlay clear on shorter screens. */
@media (orientation:landscape) and (max-height:700px) {
 .camera-stage .stage-empty strong,.camera-stage .stage-empty span {display:none;}
 .camera-stage .empty-ring {width:68px;height:68px;opacity:.48;}
 .camera-stage .safe-label {display:none;}
 .camera-stage .stage-bottomline {bottom:7px;}
}

/* v1.5: shutter placement applies to tablets and wide screens too. */
@media (orientation:landscape) and (min-height:701px) {
 .camera-layout{flex-direction:row}.camera-controls{width:120px;display:flex;flex-direction:column;justify-content:center}.review-controls{width:210px;flex-direction:column;justify-content:center}.review-copy{min-width:0;flex:0}
}
.app-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
#nativeCameraBtn{font-size:11px;padding:8px;grid-column:1/-1;justify-self:center}
@media (orientation:landscape) and (max-height:450px){.camera-intro,.camera-helper{display:none}.camera-controls{width:110px}.control-slot{font-size:0}.side-control{width:32px;height:32px}.camera-stage{min-height:100px}.camera-layout{min-height:100px}.stage-topright{display:none}}
