:root{--bg: #0b1512;--bg-raised: #0e1a15;--panel: #101d18;--panel-hover: #142420;--border: #1e332a;--border-strong: #2a4636;--text: #e4ebe7;--text-dim: #93a89d;--text-faint: #64796e;--accent: #22c55e;--accent-hover: #34d46e;--accent-soft: rgba(34, 197, 94, .14);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .12);--shadow: 0 10px 32px rgba(0, 0, 0, .45);--radius: 12px;--radius-small: 8px}@media(prefers-color-scheme:light){:root{--bg: #f4f7f5;--bg-raised: #eef2ef;--panel: #ffffff;--panel-hover: #f6faf7;--border: #dbe5de;--border-strong: #c2d2c7;--text: #16241d;--text-dim: #55685e;--text-faint: #86988c;--accent: #16a34a;--accent-hover: #15803d;--accent-soft: rgba(22, 163, 74, .1);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .08);--shadow: 0 10px 32px rgba(22, 36, 29, .12)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit}.logo{display:block;-webkit-user-select:none;user-select:none}.login-mascot{height:96px;width:96px;margin-inline:auto;margin-bottom:6px;-webkit-user-select:none;user-select:none}.logo-header{height:30px;width:auto}.logo-large{height:72px;width:auto;margin-inline:auto}.fullscreen-center{height:100%;display:grid;place-items:center}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--accent);animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.login-screen{position:relative;min-height:100%;display:grid;place-items:center;padding:24px;overflow:hidden}.login-glow{position:absolute;inset:0;background:radial-gradient(600px 420px at 50% 32%,var(--accent-soft),transparent 70%),radial-gradient(900px 600px at 85% 90%,rgba(34,197,94,.05),transparent 70%);pointer-events:none}.login-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:420px}.login-tagline{margin:0 0 14px;color:var(--text-dim);font-size:17px}.github-button{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:var(--radius);background:var(--accent);color:#06120b;font-weight:600;font-size:16px;text-decoration:none;transition:background .15s ease,transform .15s ease}.github-button:hover{background:var(--accent-hover);transform:translateY(-1px)}.login-footnote{margin-top:18px;color:var(--text-faint);font-size:13px}.app-shell{min-height:100%;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--bg-raised);position:sticky;top:0;z-index:10}.header-user{position:relative;display:flex;align-items:center}.avatar{border-radius:50%;background:var(--panel);flex:none;display:block}.account-chip{padding:2px;background:none;border:2px solid transparent;border-radius:50%;cursor:pointer;transition:border-color .15s}.account-chip:hover,.account-chip[aria-expanded=true]{border-color:var(--accent)}.account-menu{min-width:210px}.account-menu-identity{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;margin-bottom:6px;border-bottom:1px solid var(--border)}.account-menu-name{font-size:14px;font-weight:600}.account-menu-login{font-size:12.5px;color:var(--text-dim)}@media(max-width:560px){.hide-narrow{display:none}}.primary-button{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:var(--radius-small);background:var(--accent);color:#06120b;font-weight:600;font-size:14px;transition:background .15s ease}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.primary-button:disabled{opacity:.5;cursor:default}.ghost-button{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-small);background:transparent;color:var(--text-dim);font-size:13.5px;transition:color .15s ease,border-color .15s ease,background .15s ease}.ghost-button:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:var(--panel-hover)}.ghost-button:disabled{opacity:.5;cursor:default}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-small);background:transparent;color:var(--text-dim);transition:color .15s ease,background .15s ease}.icon-button:hover{color:var(--text);background:var(--panel-hover)}.text-input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);color:var(--text);outline:none;transition:border-color .15s ease}.text-input::placeholder{color:var(--text-faint)}.text-input:focus{border-color:var(--accent)}.field-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text-dim)}.role-select{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);color:var(--text);font-size:13.5px;outline:none}.role-select:focus{border-color:var(--accent)}.dashboard-main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:28px}.dashboard-loading{display:grid;place-items:center;padding:96px 0}.design-section{margin-bottom:36px}.section-title{margin:0 0 14px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.section-toggle{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;padding:6px 10px;border:none;border-radius:var(--radius-small);background:transparent;color:var(--text-faint);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.section-toggle:hover{color:var(--text-dim);background:var(--panel-hover)}.section-count{padding:1px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:12px;letter-spacing:0}.design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:16px}.design-card{position:relative;aspect-ratio:16 / 10;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.design-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow);z-index:5}.design-card-menu-open{z-index:6}.design-card-archived{opacity:.72}.card-preview{position:absolute;inset:0;display:block;text-decoration:none;overflow:hidden;border-radius:calc(var(--radius) - 1px)}.card-preview-image{width:100%;height:100%;object-fit:cover;object-position:center;display:block;background:#f6f8f7}.card-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;color:var(--text-dim);font-size:13px;text-decoration:none}.card-preview-empty span{opacity:.55}.card-preview-empty img{opacity:.7}.new-design-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:148px;padding:16px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text-dim);font-size:14.5px;font-weight:600;transition:color .15s ease,border-color .15s ease,background .15s ease}.new-design-card:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.new-design-plus{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.card-name-overlay{position:absolute;inset-inline:0;bottom:0;display:flex;flex-direction:column;gap:2px;padding:26px 12px 10px;background:linear-gradient(to top,rgba(4,12,9,.92),rgba(4,12,9,.55) 60%,transparent);opacity:0;transition:opacity .15s ease;pointer-events:none}.design-card:hover .card-name-overlay,.design-card:focus-within .card-name-overlay,.design-card-renaming .card-name-overlay{opacity:1;pointer-events:auto}.card-name-overlay{z-index:1;border-radius:0 0 calc(var(--radius) - 1px) calc(var(--radius) - 1px)}.card-name-text{color:#f2f5f4;font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-name-meta{color:#e2e8e6b8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rename-input{min-width:0;padding:4px 8px;border:1px solid var(--accent);border-radius:var(--radius-small);background:var(--bg);color:var(--text);font-size:14.5px;font-weight:600;outline:none}.card-menu{position:absolute;top:8px;right:8px;z-index:30}.card-menu-button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--bg-raised) 82%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--text);cursor:pointer;opacity:0;transition:opacity .15s ease,border-color .15s ease}.design-card:hover .card-menu-button,.card-menu-button:focus-visible,.card-menu-button[aria-expanded=true]{opacity:1}.card-menu-button:hover{border-color:var(--border-strong)}.menu-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:20;min-width:172px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-raised);box-shadow:var(--shadow);display:flex;flex-direction:column}.menu-popover button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:var(--text);font-size:13.5px;text-align:left}.menu-popover button:hover{background:var(--panel-hover)}.menu-popover .menu-item-danger{color:var(--danger)}.menu-popover .menu-item-danger:hover{background:var(--danger-soft)}.card-badges{position:absolute;top:8px;left:8px;z-index:2;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}.badge{padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em;border:1px solid var(--border);color:var(--text-dim);background:color-mix(in srgb,var(--bg-raised) 85%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-transform:capitalize}.badge-editor{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.badge-viewer{color:var(--text-dim)}.badge-owner-login{text-transform:none}.badge-archived{color:var(--text-faint);border-style:dashed}.new-design-card{aspect-ratio:16 / 10;min-height:0}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:96px 24px;text-align:center;color:var(--text-dim)}.empty-state h2{margin:4px 0 0;color:var(--text);font-size:20px}.empty-state p{margin:0 0 10px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:#020805a8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-panel{width:100%;max-width:420px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);box-shadow:var(--shadow)}.modal-wide{max-width:520px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 0}.modal-header h2{margin:0;font-size:17px;font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-body{padding:16px 20px 20px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.share-body{display:flex;flex-direction:column;gap:16px}.share-add-row{display:flex;gap:8px}.share-add-input-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.share-add-input-wrap>svg{position:absolute;left:11px;color:var(--text-faint);pointer-events:none}.share-add-input{padding-left:34px}.share-people{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.share-loading,.share-empty{margin:0;padding:8px 2px;color:var(--text-faint);font-size:13.5px}.share-person-row{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:var(--radius-small)}.share-person-row:hover{background:var(--panel-hover)}.share-person-login{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-link-section{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.share-link-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.share-link-toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-track{flex:none;width:36px;height:20px;border-radius:999px;background:var(--border-strong);position:relative;transition:background .15s ease}.toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s ease}.share-link-toggle input:checked+.toggle-track{background:var(--accent)}.share-link-toggle input:checked+.toggle-track .toggle-thumb{transform:translate(16px);background:#06120b}.share-link-toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.share-link-toggle input:disabled+.toggle-track{opacity:.5}.share-link-label{display:inline-flex;align-items:center;gap:8px;font-size:14px}.share-link-note{color:var(--text-faint);font-size:13px}.share-link-row{display:flex;gap:8px}.share-link-url{flex:1;min-width:0;font-size:13px;color:var(--text-dim)}.toast-host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;max-width:min(440px,calc(100vw - 40px));padding:10px 16px;border-radius:var(--radius-small);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text);font-size:13.5px;box-shadow:var(--shadow);animation:toast-in .18s ease}.toast-error svg{color:var(--danger);flex:none}.toast-success svg{color:var(--accent);flex:none}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
