:root{--bg: #0f161b;--s1: #17212a;--s2: #1e2a35;--s3: #26333f;--ink: #e6edf2;--muted: #9fb1bd;--teal: #0e8c8e;--teal-2: #34b3b5;--line: #2a3a47;--danger: #e5534b;--ok: #3fb950;--warn: #d9a441;--radius: 10px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--teal-2)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--s2);color:var(--ink);border-radius:8px;padding:7px 12px}button:hover{border-color:var(--teal-2)}button.primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}button.primary:hover{background:#0fa0a2}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}button.ghost{background:transparent}input,textarea,select{font:inherit;width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px}input:focus,textarea:focus,select:focus{outline:2px solid var(--teal-2);border-color:var(--teal-2)}textarea{resize:vertical;min-height:64px}label{display:block;font-size:.82rem;color:var(--muted);margin:10px 0 4px}.hint{font-size:.78rem;color:var(--muted);margin-top:4px}.app{display:grid;grid-template-columns:220px 1fr;min-height:100%}.side{background:var(--s1);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column}.brand{font-weight:700;font-size:1.05rem;padding:6px 10px 14px}.brand small{display:block;color:var(--teal-2);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:2px}.nav button{text-align:left;border:0;background:transparent;border-radius:8px;padding:9px 11px;color:var(--muted)}.nav button:hover{background:var(--s2);color:var(--ink)}.nav button.active{background:var(--teal);color:#fff;font-weight:600}.side .foot{margin-top:auto;font-size:.75rem;color:var(--muted);padding:10px}.main{padding:22px 26px 60px;max-width:920px}.main h1{margin:0 0 2px;font-size:1.5rem}.sub{color:var(--muted);margin:0 0 18px}.card{background:var(--s1);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.topbar,.scrim{display:none}@media (max-width: 760px){.app{display:block}.grid2{grid-template-columns:1fr}.topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:30;background:var(--s1);border-bottom:1px solid var(--line);padding:10px 14px}.hamburger{background:transparent;border:1px solid var(--line);font-size:1.1rem;padding:6px 11px}.topbar-title{font-weight:700}.side{position:fixed;top:0;left:0;bottom:0;width:250px;max-width:84vw;z-index:50;border-right:1px solid var(--line);transform:translate(-100%);transition:transform .24s ease;overflow-y:auto}.app.drawer-open .side{transform:translate(0);box-shadow:4px 0 28px #00000080}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000080;opacity:0;pointer-events:none;transition:opacity .24s ease}.app.drawer-open .scrim{opacity:1;pointer-events:auto}.main{padding:16px 16px 60px;max-width:none}}@media (prefers-reduced-motion: reduce){.side,.scrim{transition:none}}.chip{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.ok{background:var(--ok)}.dot.bad{background:var(--danger)}.dot.warn{background:var(--warn)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:.8rem}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tag{font-size:.72rem;color:var(--teal-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px}.preview{background:var(--bg);border:1px dashed var(--teal);border-radius:8px;padding:10px 12px}.preview .who{color:var(--teal-2);font-weight:600}.varbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.varbtns button{font-size:.76rem;padding:4px 8px}.center{min-height:100%;display:grid;place-items:center;text-align:center;padding:24px}.login-card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:34px 32px;max-width:380px}.login-card h1{margin:8px 0 6px}.banner{background:#d9a4411f;border:1px solid var(--warn);color:#f0d8a8;padding:10px 12px;border-radius:8px;margin-bottom:14px}.error{color:var(--danger);font-size:.85rem;margin-top:6px}.muted{color:var(--muted)}iframe.wiki{width:100%;height:78vh;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.deckgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.deckbtn{position:relative;aspect-ratio:1.4 / 1;border:0;border-radius:14px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;box-shadow:0 2px #00000059;transition:transform .06s ease}.deckbtn:hover{transform:translateY(-2px);border:0}.deckbtn:active{transform:translateY(1px)}.deckbtn .emoji{font-size:1.8rem;line-height:1}.deckbtn .lbl{font-weight:700;font-size:.92rem;text-align:center;line-height:1.15;text-shadow:0 1px 2px rgba(0,0,0,.45)}.deckbtn .edit-badge{position:absolute;top:6px;right:9px;opacity:.85}.swatch{width:30px;height:30px;border-radius:8px;padding:0}.chatbox{height:58vh;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.chatline{padding:2px 0;font-size:.92rem;word-break:break-word}.chatuser{font-weight:700}.toast-host{position:fixed;right:16px;bottom:16px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:min(360px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;background:var(--s2);border:1px solid var(--line);border-left:3px solid var(--teal);color:var(--ink);border-radius:10px;padding:11px 12px;box-shadow:0 6px 24px #00000073;animation:toast-in .22s ease}.toast.success{border-left-color:var(--ok)}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--teal-2)}.toast .ico{font-weight:700;line-height:1.4}.toast.success .ico{color:var(--ok)}.toast.error .ico{color:var(--danger)}.toast .msg{flex:1;font-size:.9rem}.toast .x{background:transparent;border:0;color:var(--muted);padding:0 2px;line-height:1}.toast .x:hover{color:var(--ink);border:0}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@media (max-width: 760px){.toast-host{left:16px;right:16px;bottom:12px;max-width:none}}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.checklist li{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px solid var(--line)}.checklist li:last-child{border-bottom:0}.checklist .mark{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;flex:none;border:1px solid var(--line);color:var(--muted)}.checklist .mark.done{background:#3fb95026;border-color:var(--ok);color:var(--ok)}.checklist .mark.warn{background:#d9a44126;border-color:var(--warn);color:var(--warn)}.checklist .ltext{flex:1}.checklist .ltext small{display:block;color:var(--muted);font-size:.76rem}.checklist li.is-done .ltext{color:var(--muted)}
