@import "https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&display=swap";
:root{--bg-1:#f5f7f2;--bg-2:#dce4d6;--ink-1:#101710;--ink-2:#344235;--ink-3:#5a685a;--accent:#f95f38;--accent-strong:#d84a25;--surface:#ffffffd9;--surface-strong:#fff;--shadow:0 16px 45px #2d3a2e29;--radius-xl:22px;--radius-lg:14px;--radius-md:10px}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink-1);background:radial-gradient(circle at 12% 16%,#f95f3829,transparent 34%),radial-gradient(circle at 88% 8%,#1d937b24,transparent 26%),linear-gradient(180deg,var(--bg-1),var(--bg-2));margin:0;padding:0;font-family:Manrope,Segoe UI,sans-serif}button,input,textarea{font:inherit}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{width:min(1080px,100% - 24px);margin:0 auto;padding:18px 0 38px}.camera-screen{min-height:100dvh}.top-bar{z-index:20;border-radius:var(--radius-lg);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;display:grid;position:sticky;top:8px}.top-left-menu{justify-self:start;position:relative}.nav-menu-button{min-width:44px;padding:9px 12px;font-size:1.1rem}.nav-menu{min-width:200px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-radius:14px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.nav-menu-item{text-align:left;width:100%}.brand-title{cursor:pointer;letter-spacing:.01em;background:0 0;border:0;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-size:clamp(1.1rem,2.6vw,1.4rem);font-weight:800;display:inline-flex}.brand-title-icon{object-fit:contain;width:28px;height:28px}.top-actions{justify-self:end;align-items:center;gap:8px;min-height:36px;display:flex}.account-chip{background:#10171014;border-radius:999px;align-items:center;gap:8px;padding:6px 10px 6px 8px;display:inline-flex}.account-avatar{background:#1017101f;border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;overflow:hidden}.account-avatar-image{object-fit:cover;width:100%;height:100%;display:block}.account-avatar-fallback{color:var(--ink-2);font-size:.76rem;font-weight:800}.account-chip-name{color:var(--ink-2);font-weight:700}.status-chip{color:var(--ink-2);background:#14201614;border-radius:999px;padding:6px 10px;font-size:.82rem}.mobile-capture-launcher{display:none}.panel{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:18px;animation:.22s ease-out rise}.hero{margin-top:22px}.hero h1{margin:0;font-size:clamp(1.35rem,4.4vw,2.05rem);line-height:1.2}.hero p{color:var(--ink-2);margin:14px 0 18px}.hero-actions,.result-actions,.modal-actions,.camera-actions{flex-wrap:wrap;gap:10px;display:flex}.capture-config{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.field-label{color:var(--ink-2);font-size:.92rem;font-weight:700}.mode-select{border-radius:var(--radius-md);min-width:150px;color:var(--ink-1);background:#fffffff0;border:1px solid #10171029;padding:10px 12px}.capture-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.capture-card{border-radius:var(--radius-lg);background:#ffffff94;border:1px solid #10171014;flex-direction:column;gap:12px;padding:14px;display:flex}.capture-card h3{margin:0;font-size:1rem}.capture-submit-actions{margin-top:14px}.desktop-capture-card .camera-frame{min-height:280px}.quiet-action{color:var(--ink-2);background:#1017100d;align-self:center;padding:8px 12px;font-size:.9rem;font-weight:600}button{border-radius:var(--radius-md);cursor:pointer;border:0;padding:11px 14px;font-weight:700}.cta{background:var(--accent);color:#fff}.cta:hover{background:var(--accent-strong)}.secondary{color:#f3faf8;background:#192b2f}.ghost{color:var(--ink-1);background:#10171014}.alert{border-radius:var(--radius-md);margin:10px 0;padding:11px 12px}.danger{color:#7e2d1a;background:#ffe2d9}.camera-panel{flex-direction:column;gap:14px;display:flex}.desktop-upload-panel{margin-top:8px}.desktop-upload-panel p{color:var(--ink-2);margin:8px 0 16px}.camera-frame{width:100%;min-height:60vh;box-shadow:var(--shadow);background:linear-gradient(#1b2420 0%,#111813 100%);border-radius:20px;position:relative;overflow:hidden}.preview-image{object-fit:contain;background:#0f1410;width:100%;height:60vh;display:block}.camera-placeholder{text-align:center;justify-content:center;align-items:center;width:100%;height:60vh;padding:20px;display:flex}.camera-placeholder p{color:#f0f7f3;max-width:24rem;margin:0;font-size:1rem;line-height:1.45}.camera-zoom-indicator{color:#f6fbf6;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b100c94;border-radius:999px;padding:7px 11px;font-size:.88rem;font-weight:800;position:absolute;top:14px;right:14px}.camera-zoom-hint{text-align:center;color:var(--ink-3);margin:-4px 0 0;font-size:.9rem}.shutter{background:#ffffff1a;border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:86px;height:86px;margin:0 auto;padding:0;display:inline-flex}.shutter-dot{background:#f6f6f6;border-radius:999px;width:58px;height:58px}.progress-panel{text-align:center}.progress-ring{--progress:0%;background:radial-gradient(circle at center,var(--surface-strong)48%,transparent 50%),conic-gradient(var(--accent)var(--progress),#10171014 0);width:160px;height:160px;box-shadow:var(--shadow);border-radius:999px;place-items:center;margin:8px auto 14px;display:grid}.progress-ring span{font-size:1.22rem;font-weight:800}.muted{color:var(--ink-3)}.pgn-box{border-radius:var(--radius-md);color:#f0f4f0;white-space:pre-wrap;background:#0e1510;max-height:320px;padding:12px;overflow-x:auto}.pgn-illegal-move{color:#fff;background:#b42318;border-radius:4px;padding:0 1px}.tips{color:var(--ink-2);margin:0 0 14px;padding-left:18px}.games-panel{margin-top:8px}.games-layout{grid-template-columns:1fr;gap:12px;display:grid}.games-layout-single{flex-direction:column;display:flex}.games-list{flex-direction:column;gap:8px;max-height:520px;display:flex;overflow-y:auto}.game-row{text-align:left;background:#1017100f;border-radius:12px;padding:10px}.game-row.active{background:#f95f3826}.game-title{font-weight:700}.game-meta{color:var(--ink-3);margin-top:4px;font-size:.92rem}.game-detail{background:var(--surface-strong);border-radius:12px;min-height:130px;padding:10px}.games-load-sentinel{width:100%;height:1px}.games-loading-more{color:var(--ink-3);text-align:center;margin:2px 0 0}.games-pagination{align-items:center;gap:8px;margin-top:12px;display:flex}.games-pagination select{background:#fff;border:1px solid #10171033;border-radius:10px;padding:7px 10px}.game-detail-screen{margin-top:8px}.game-detail-header{margin-bottom:10px}.game-edit-layout{grid-template-columns:1fr;gap:14px;display:grid}.game-edit-meta{gap:6px;display:grid}.game-view-meta{gap:8px;display:grid}.game-view-meta p{color:var(--ink-2);margin:0}.game-edit-meta label,.game-edit-movetext label{color:var(--ink-2);font-size:.9rem}.game-edit-meta input,.game-edit-movetext textarea{background:#fff;border:1px solid #10171033;border-radius:10px;padding:10px}.game-edit-movetext{gap:8px;display:grid}.game-edit-movetext textarea{resize:vertical;width:100%}.modal-backdrop{z-index:100;background:#0b0f0c80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(460px,100%);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:16px}.modal label{color:var(--ink-2);margin-bottom:6px;font-size:.9rem;display:block}.modal input{border:1px solid #10171033;border-radius:10px;width:100%;margin-bottom:10px;padding:10px}.field-error{color:#932a18;margin:0 0 8px}.email-modal-actions{flex-direction:column}.email-modal-actions button{width:100%}@media (max-width:640px){.app-shell{width:100%;padding:max(12px,env(safe-area-inset-top))12px calc(104px + env(safe-area-inset-bottom))}.top-bar{border-radius:18px;grid-template-columns:auto 1fr auto;gap:6px;margin-bottom:12px;padding:10px;top:0}.top-actions{min-height:36px}.account-chip-name{display:none}.hero{margin-top:10px;padding:20px}.hero-actions{flex-direction:column}.hero-actions button,.result-actions button,.modal-actions button{width:100%}.games-pagination{justify-content:space-between}.games-pagination button{flex:1 1 0}.games-pagination select{max-width:100px}.hero-capture-button-authenticated{display:none}.camera-screen .top-bar{margin-bottom:10px;position:sticky;top:8px}.camera-panel{min-height:calc(100dvh - 120px - env(safe-area-inset-bottom));justify-content:space-between;gap:16px}.camera-frame{border-radius:28px;height:min(60dvh,460px);min-height:0}.preview-image,.camera-placeholder{height:100%}.camera-actions{padding-bottom:max(18px,env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center}.camera-actions .secondary,.camera-actions .cta{flex:1 1 0;width:100%}.shutter{width:94px;height:94px;box-shadow:0 10px 28px #10171038}.shutter-dot{width:62px;height:62px}.mobile-capture-launcher{left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:40;color:var(--ink-1);background:0 0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex;position:fixed;transform:translate(-50%)}.mobile-capture-launcher-ring{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff38;border:3px solid #fffffff0;border-radius:999px;justify-content:center;align-items:center;width:74px;height:74px;display:inline-flex;box-shadow:0 10px 28px #10171042}.mobile-capture-launcher-core{background:#fff;border-radius:999px;width:50px;height:50px}.mobile-capture-launcher-label{background:#ffffffc7;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:700}}@media (min-width:900px){.app-shell{width:min(1120px,100% - 34px)}.games-layout{grid-template-columns:330px 1fr}.games-layout-single{grid-template-columns:none;display:flex}.game-edit-layout{grid-template-columns:280px 1fr}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
