:root{color-scheme:light;--color-accent: #2563eb;--color-accent-hover: #000000;--color-on-accent: #ffffff;--color-text: #1a1a1a;--color-muted: #666666;--color-subtle: #555555;--color-bg: #f5f5f5;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-border: #e5e5e5;--color-border-strong: #d4d4d4;--color-border-hover: #a3a3a3;--color-hover: #e0e0e0;--color-soft-hover: #f5f5f5;--color-selected: #eff6ff;--color-arrow: #999999;--color-backdrop: rgba(0, 0, 0, 0.45);--shadow-card-hover: 0 2px 8px rgba(0, 0, 0, 0.04);--shadow-modal: 0 20px 60px rgba(0, 0, 0, 0.25);--focus-ring: rgba(37, 99, 235, 0.1);--color-success-bg: #dcfce7;--color-success-text: #166534;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-warning-border: #fde68a;--color-error-text: #dc2626}:root[data-theme=dark]{color-scheme:dark;--color-accent: #7aa2ff;--color-accent-hover: #a9c2ff;--color-on-accent: #0b0b0b;--color-text: #f2f2f2;--color-muted: #a8a8a8;--color-subtle: #c8c8c8;--color-bg: #121212;--color-surface: #1a1a1a;--color-surface-raised: #222222;--color-border: #303030;--color-border-strong: #3a3a3a;--color-border-hover: #5a5a5a;--color-hover: #2a2a2a;--color-soft-hover: #242424;--color-selected: #202a3f;--color-arrow: #9a9a9a;--color-backdrop: rgba(0, 0, 0, 0.65);--shadow-card-hover: 0 2px 10px rgba(0, 0, 0, 0.28);--shadow-modal: 0 24px 70px rgba(0, 0, 0, 0.55);--focus-ring: rgba(122, 162, 255, 0.22);--color-success-bg: #12351f;--color-success-text: #8ee6a6;--color-warning-bg: #3a2a11;--color-warning-text: #f5d08a;--color-warning-border: #644917;--color-error-text: #ff9b9b}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:800px;margin:0 auto;padding:2rem 1.5rem 2rem}.container.narrow{max-width:440px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1.5rem}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;padding-bottom:.75rem}.topbar-left{display:flex;align-items:center}.topbar-right{display:flex;align-items:center;gap:1rem}.logo{display:block;height:28px;width:auto}.logo-large{height:44px}:root[data-theme=dark] .logo-invert{filter:invert(1)}.logo-pixelated{image-rendering:pixelated}.badge{font-size:.8rem;font-weight:600;padding:.25rem .75rem;border-radius:99px;white-space:nowrap}.badge-active{background:var(--color-success-bg);color:var(--color-success-text)}.badge-expiring{background:var(--color-warning-bg);color:var(--color-warning-text)}.btn{display:inline-block;padding:.625rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:600;border:none;cursor:pointer}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--color-accent);color:var(--color-on-accent);width:100%}.btn-primary:hover{background:var(--color-accent-hover)}.btn-secondary{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-muted)}.btn-secondary:hover{background:var(--color-soft-hover)}.btn-save{background:var(--color-text);color:var(--color-bg);margin-top:1rem}.btn-logout{background:rgba(0,0,0,0);border:1px solid var(--color-border-strong);padding:.375rem .875rem;border-radius:6px;font-size:.85rem;color:var(--color-muted);cursor:pointer}.btn-logout:hover{background:var(--color-hover)}.inline-form{display:inline}.card{background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);padding:2rem;width:100%}.login-card{text-align:center}.login-access-hint{margin-top:1.25rem;font-size:.9rem;color:var(--color-muted);text-align:center}.login-header{margin-bottom:1rem}.login-header img{margin-left:auto;margin-right:auto}.login-header h1{font-size:1.4rem;margin-top:1rem;margin-bottom:0}.login-form{display:flex;flex-direction:column;gap:.75rem}.login-form input[type=email]{padding:.7rem 1rem;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface-raised);color:var(--color-text);font-size:1rem;outline:none}.login-form input[type=email]::placeholder{color:var(--color-muted)}.login-form input[type=email]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-ring)}.login-form-hint{color:var(--color-muted);font-size:.9rem;text-align:left;margin-bottom:.1rem}.link-back{display:inline-block;margin-top:1.5rem;color:var(--color-muted);font-size:.9rem}.alert{padding:.75rem 1rem;border-radius:8px;font-size:.9rem;margin-bottom:1rem;text-align:left}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.section{margin-bottom:2rem}.section:last-of-type{margin-bottom:0}.section h2{font-size:1.2rem;margin-bottom:.25rem}.section-desc{color:var(--color-muted);font-size:.9rem;margin-bottom:1.25rem}.divider{border:none;border-top:1px solid var(--color-border);margin:2rem 0}.intro{display:flex;align-items:stretch;gap:1.5rem;min-height:120px}.intro p{flex:2;color:var(--color-subtle);font-size:.95rem;align-self:center}.intro-image{flex:0 0 33.333%;border-radius:8px;background-position:center;background-size:cover;background-repeat:no-repeat;min-height:120px}.changelog-section{margin-top:1rem;margin-bottom:2rem}.changelog-title{font-size:1.2rem;margin-bottom:.75rem}.changelog{background:var(--color-surface);border:1px solid var(--color-border);max-height:340px;overflow-y:auto}.changelog-list{list-style:none;display:flex;flex-direction:column}.changelog-item{display:grid;grid-template-columns:5rem 1fr;gap:.75rem;padding:5px 8px}.changelog-item+.changelog-item{border-top:1px solid var(--color-border)}.changelog-item time{color:var(--color-muted);font-size:.8rem;font-weight:600;padding-top:.1rem}.changelog-item p{font-size:.88rem;color:var(--color-text);line-height:1.45;margin:0;padding:0}.changelog-item-hidden{display:none}.changelog-more{background:rgba(0,0,0,0);border:1px solid var(--color-border-strong);padding:.375rem .875rem;border-radius:6px;font-size:.85rem;color:var(--color-muted);cursor:pointer;margin-top:.6rem}.changelog-more:hover{background:var(--color-soft-hover)}.footer{margin-top:0}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding-top:0;padding-bottom:2rem}.footer-inner .divider{width:100%;margin:0 0 .5rem}.footer-copy{font-size:.85rem;color:var(--color-muted)}body.modal-open{overflow:hidden}.feedback-modal[hidden]{display:none}.feedback-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.25rem}.feedback-modal-backdrop{position:absolute;inset:0;background:var(--color-backdrop)}.feedback-dialog{position:relative;z-index:1;width:min(100%,560px);max-height:min(720px,100vh - 2.5rem);overflow:auto;background:var(--color-surface);border-radius:12px;box-shadow:var(--shadow-modal);padding:1.5rem}.feedback-dialog h2{font-size:1.25rem;margin-bottom:.5rem}.feedback-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border:none;border-radius:99px;background:var(--color-bg);color:var(--color-muted);cursor:pointer;font-size:1.5rem;line-height:1}.feedback-close:hover{background:var(--color-hover)}.feedback-description,.feedback-status{color:var(--color-muted);font-size:.9rem}.feedback-description{line-height:1.45}.feedback-form{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}.feedback-form textarea{width:100%;min-height:160px;resize:vertical;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface-raised);color:var(--color-text);padding:.75rem;font:inherit;outline:none}.feedback-form textarea::placeholder{color:var(--color-muted)}.feedback-form textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-ring)}.feedback-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.4rem}.feedback-actions .btn-primary{width:auto}.feedback-actions-main{display:flex;gap:.75rem}.feedback-success{text-align:center;padding:2rem .5rem .5rem}.feedback-success p{color:var(--color-muted);margin-bottom:1rem}.feedback-success .btn-primary{width:auto}.cosmetic-form{display:flex;flex-direction:column;align-items:flex-start}.cosmetic-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));gap:.75rem;width:100%}.cosmetic-option{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem .75rem;border:2px solid var(--color-border);border-radius:10px;cursor:pointer;text-align:center}.cosmetic-option:hover{border-color:var(--color-border-hover)}.cosmetic-option.selected{border-color:var(--color-accent);background:var(--color-selected)}.cosmetic-option input[type=radio]{display:none}.cosmetic-preview{display:block;height:32px;width:auto;object-fit:contain}:root[data-theme=dark] .cosmetic-preview-invert{filter:invert(1)}.cosmetic-preview-pixelated{image-rendering:pixelated}.save-msg{margin-top:.5rem;font-size:.85rem;font-weight:600}.save-msg.success{color:var(--color-success-text)}.save-msg.error{color:var(--color-error-text)}.proto-list{display:flex;flex-direction:column;gap:.75rem}.proto-card{display:flex;align-items:center;gap:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem;text-decoration:none;color:inherit}.proto-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-card-hover);text-decoration:none}.proto-info{flex:1;min-width:0}.proto-info h3{font-size:1rem;margin-bottom:.15rem}.proto-thumb{display:block;flex:0 0 80px;width:80px;height:81px;object-fit:cover;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg)}.proto-desc{font-size:.85rem;color:var(--color-muted);margin-bottom:0}.proto-arrow{font-size:1.25rem;color:var(--color-arrow);flex-shrink:0}@media(max-width: 600px){.topbar-right{gap:.5rem}.badge{display:none}.intro-image{display:none}.feedback-actions{align-items:stretch;flex-direction:column}.feedback-actions-main{flex-direction:column-reverse}.feedback-actions .btn{width:100%}.cosmetic-grid{grid-template-columns:repeat(2, 1fr)}.proto-card{padding:1rem}}