:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9eef4;background:#0b1019;font-size:14px;color-scheme:dark;--panel:#131c2a;--panel2:#1c2737;--line:#2c394a;--text:#e9eef4;--muted:#9aaabb;--accent:#61b6de;--accent2:#368db6;--green:#4acb9f}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:#a3dcf5}h1,h2,p{margin-top:0}h1{font-size:1.7rem;letter-spacing:-.035em}h2{font-size:1.15rem;letter-spacing:-.015em}p{line-height:1.55}.muted{color:var(--muted)}.small{font-size:.85rem}.eyebrow{font-size:.71rem;letter-spacing:.15em;color:#8eacc2;font-weight:750}.brand{display:flex;align-items:center;gap:12px;font-size:1.14rem;font-weight:800;letter-spacing:-.03em;white-space:nowrap}.brand small{display:block;font-size:.64rem;letter-spacing:.12em;font-weight:700;color:var(--muted);margin-top:3px}.brand-mark{height:34px;width:34px;background:linear-gradient(130deg,#4f8fae,#8bdce8);display:grid;place-items:center;border-radius:12px;color:#12202a;font-size:1.8rem}.btn{border-radius:10px;border:1px solid var(--line);padding:11px 14px;font-size:.85rem;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s}.btn.secondary{background:#182332;color:#dbe9f2}.btn.secondary:hover{background:#28384c}.btn.primary{background:#79c8eb;color:#092b40;border-color:#79c8eb}.btn.primary:hover{background:#abe1f5}.btn:disabled{opacity:.55;cursor:wait}.btn.fill{width:100%;margin-top:13px;padding:13px}.btn.small-btn{padding:8px 11px}.topbar{height:73px;background:#121b28;border-bottom:1px solid var(--line);padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.top-actions{display:flex;align-items:center;gap:13px}.top-actions form{margin:0}.email-display{font-size:.84rem;color:#b4c4d2}.pill{display:flex;gap:8px;align-items:center;color:#b1d9ce;font-size:.77rem;border:1px solid #2a5149;padding:7px 10px;border-radius:30px}.green-dot,.status-dot{height:8px;width:8px;border-radius:50%;background:#5ecc9e;display:inline-block;flex-shrink:0}.review-body{height:100dvh;min-height:640px;overflow:hidden}.review-layout{height:calc(100dvh - 73px);display:grid;grid-template-columns:minmax(200px,245px) minmax(0,1fr) minmax(260px,330px);gap:0}.sidebar{background:#111a27;border-right:1px solid var(--line);min-height:0;display:flex;flex-direction:column}.sidebar-head{padding:21px 16px 13px}.sidebar-head h2{margin:0 0 4px}.sidebar-head p{margin:0}.thumbnail-list{padding:5px 9px 15px;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:6px}.thumb-row{width:100%;display:flex;align-items:center;gap:10px;min-height:81px;background:transparent;border:1px solid transparent;border-radius:11px;padding:7px;color:var(--text);text-align:left}.thumb-row:hover{background:#1a2838}.thumb-row.selected{background:#23364c;border-color:#5588a7}.thumb-row img{width:85px;height:62px;object-fit:cover;border-radius:7px;background:#273949;flex-shrink:0}.thumb-meta{min-width:0;display:flex;flex-direction:column;gap:5px}.thumb-meta strong{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px}.thumb-number{font-size:.63rem;color:#92a5b5;letter-spacing:.09em}.thumb-comment{font-size:.69rem;color:#62dbb2;min-height:11px}.viewer-column{min-width:0;display:flex;flex-direction:column;padding:19px 22px 18px;gap:13px;background:#0b111c}.viewer-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.viewer-top h1{margin:5px 0 0}.viewer-label{color:var(--muted);font-size:.75rem;white-space:nowrap}.viewer-label span{font-size:1.1rem}.viewer-wrap{position:relative;min-height:250px;flex:1;border-radius:13px;overflow:hidden;background:#1a2736;border:1px solid var(--line)}#container{position:absolute;inset:0;overflow:hidden}.loading{position:absolute;left:30px;top:30px;color:#d5dfe8}.viewer-badge{position:absolute;bottom:13px;left:13px;border:1px solid #8196ad78;background:#162432ae;padding:6px 8px;border-radius:9px;font-size:.82rem;pointer-events:none}.navline{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.84rem;color:var(--muted)}.feedback-panel{border-left:1px solid var(--line);background:#131d2a;padding:26px 19px;display:flex;flex-direction:column;min-width:0;overflow-y:auto}.feedback-header h2{font-size:1.36rem;margin:9px 0 7px}.feedback-header p{margin-bottom:26px}.comment-label{font-weight:650;font-size:.87rem;margin-bottom:9px}textarea{display:block;background:#0f1722;border:1px solid #34465b;color:#f0f5f9;line-height:1.6;padding:12px;border-radius:10px;width:100%;resize:vertical;min-height:185px}textarea::placeholder{color:#657a8e}textarea:disabled{opacity:.5}.save-status{display:flex;align-items:center;gap:7px;margin:13px 0;font-size:.82rem;color:#aabfce}.status-dot.saving{background:#e0ad5a}.status-dot.success{background:#4acb9f}.status-dot.error{background:#f58080}.info-note{margin-top:20px;background:#1c2a3b;border:1px solid #283f51;border-radius:12px;padding:14px;font-size:.81rem;color:#acbfcd;line-height:1.65}.info-note strong{color:#e1ecf5}.notice{border-radius:10px;padding:12px;margin-bottom:15px;font-size:.88rem}.notice.error{border:1px solid #a64f60;background:#3c1c2c;color:#f4c4c5}.auth-body{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% -10%,#20425d 0%,transparent 55%),#0a101a;padding:30px 15px}.login-panel{background:#151f2c;border:1px solid #324355;border-radius:22px;box-shadow:0 30px 100px #0005;padding:33px;width:min(100%,430px)}.login-panel .brand{margin-bottom:28px}.login-icon{height:52px;width:52px;display:grid;place-items:center;border-radius:16px;background:#263a4d;font-size:1.6rem;margin-bottom:15px}.login-panel h1{font-size:1.8rem;margin:0 0 9px}.login-panel>.muted{margin-bottom:25px}.login-panel label{display:block;font-weight:650;margin:0 0 9px}.login-panel input{width:100%;background:#0d1520;color:#e8f3fb;border:1px solid #344b60;border-radius:10px;padding:12px}.login-panel input::placeholder{color:#778b9d}.login-foot{font-size:.79rem;color:#8295a5;border-top:1px solid #2c3c50;padding-top:20px;margin:29px 0 0}.auth-body form[hidden],.auth-body [hidden]{display:none!important}.admin-body{min-height:100dvh;background:#0e1621}.admin-main{max-width:1330px;margin:auto;padding:34px 24px 100px}.admin-title{display:flex;justify-content:space-between}.admin-title h1{font-size:2rem;margin:8px 0 5px}.filterbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}.filterbar label{font-size:.84rem}.filterbar select{background:#1d2938;color:white;border:1px solid var(--line);padding:10px;border-radius:9px;margin-left:8px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:20px 0 32px}.stat{background:#1a2635;border:1px solid #2a394b;border-radius:13px;padding:19px;display:flex;flex-direction:column;gap:9px}.stat strong{font-size:1.75rem}.stat span{color:var(--muted);font-size:.85rem}.admin-section{margin-top:30px}.admin-section h2{font-size:1.3rem}.table-scroll{overflow:auto;border:1px solid #334254;border-radius:13px}table{border-collapse:collapse;width:100%;min-width:700px;background:#172333}td,th{padding:13px 15px;border-bottom:1px solid #2c3e51;text-align:left;vertical-align:top}th{color:#9eb9c8;background:#1e2d3d;text-transform:uppercase;font-size:.67rem;letter-spacing:.09em}td{font-size:.84rem;line-height:1.55}tr:last-child td{border:0}.comment-body{max-width:520px;min-width:220px;white-space:normal;overflow-wrap:anywhere}@media(max-width:1120px){.review-layout{grid-template-columns:190px minmax(0,1fr) 265px}.viewer-column{padding:16px}.feedback-panel{padding:20px 13px}.thumb-row img{width:65px;height:54px}}@media(max-width:850px){.review-body{height:auto;overflow:auto}.topbar{padding:0 14px;min-height:68px;height:auto}.review-layout{height:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:'viewer' 'thumbs' 'comments'}.sidebar{grid-area:thumbs;border-right:0;border-top:1px solid var(--line)}.sidebar-head{padding:17px 16px 8px}.thumbnail-list{overflow:auto;display:flex;flex-direction:row;padding:10px 12px 15px}.thumb-row{flex:0 0 175px;flex-direction:column;align-items:stretch}.thumb-row img{width:100%;height:92px}.thumb-meta strong{max-width:unset}.viewer-column{grid-area:viewer;height:min(69vh,620px);min-height:360px}.feedback-panel{grid-area:comments;border-left:0;border-top:1px solid var(--line)}.email-display{display:none}.viewer-label{display:none}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:480px){.topbar{padding:10px}.brand{font-size:.95rem}.brand-mark{width:30px;height:30px}.pill{display:none}.review-layout .viewer-column{height:min(66vh,510px);padding:12px}.viewer-top h1{font-size:1.35rem}.navline .btn{padding:8px;font-size:.76rem}.login-panel{padding:25px 21px}.admin-main{padding:20px 12px}.stat{padding:12px}.stat strong{font-size:1.4rem}.stat span{font-size:.73rem}}

/* Provide a thumbnail placeholder if Pano2VR did not export a node preview. */
.thumb-preview{display:flex;align-items:center;justify-content:center;width:85px;height:62px;border-radius:7px;background:#273949;flex-shrink:0;overflow:hidden}
.thumb-preview img{width:100%;height:100%;object-fit:cover;border-radius:0}
.thumb-preview.thumb-empty{font-size:.92rem;color:#9ec8df;font-weight:700;letter-spacing:.03em}
@media(max-width:1120px){.thumb-preview{width:65px;height:54px}}
@media(max-width:850px){.thumb-preview{width:100%;height:92px}}
