:root{--paper:#faf9f7;--ink:#2a2520;--muted:#6f675c;--line:#e4dfd7;--card:#fff;--accent:#3f5259;--chip-bg:#f0e9da;--chip-ink:#6b5b33;--error:#9c3b31;--brand:#2e5365;--hover:#f1eee9;--backdrop:#2a252059;--shadow:#2a25202e;--viz-1:#2a78d6;--viz-2:#008300;--viz-3:#e87ba4;--viz-4:#eda100;--viz-5:#1baf7a;--viz-6:#eb6834;--viz-other:#898781}html[data-theme=dark]{--paper:#1c1a17;--ink:#e9e4dc;--muted:#a59c8e;--line:#3b362e;--card:#262320;--accent:#8aa9b4;--chip-bg:#3a3426;--chip-ink:#cfc09a;--error:#d08074;--brand:#b7cdd8;--hover:#2e2a25;--backdrop:#0000008c;--shadow:#00000080;--viz-1:#3987e5;--viz-2:#008300;--viz-3:#d55181;--viz-4:#c98500;--viz-5:#199e70;--viz-6:#d95926;--viz-other:#898781}html[data-theme=dark] button.primary{color:#1c1a17}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);flex-direction:column;min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55;display:flex}.app-main{flex:1}main{max-width:1400px;margin:0 auto;padding:40px 24px 96px}h1{margin:0 0 6px;font-size:24px;font-weight:600}h2{margin:32px 0 10px;font-size:17px;font-weight:600}h3{margin:18px 0 8px;font-size:15px;font-weight:600}p{margin:6px 0}.muted{color:var(--muted)}.small{font-size:13px}a{color:var(--accent)}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:6px;padding:7px 14px}button:hover{border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.subtle{color:var(--muted);background:0 0;border-color:#0000;padding:4px 8px}button.subtle:hover{color:var(--ink)}input,select,textarea{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;max-width:100%;padding:7px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}label{margin:14px 0 4px;font-weight:500;display:block}.checkbox-row{align-items:center;gap:8px;margin:10px 0;font-weight:400;display:flex}.checkbox-row input{margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;margin:14px 0;padding:18px 20px}a.card:hover{border-color:var(--accent)}.row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.chip{background:var(--chip-bg);color:var(--chip-ink);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:12.5px;display:inline-block}.chip.neutral{color:var(--muted);background:#eceae6}html[data-theme=dark] .chip.neutral{color:#2a2520}.hint{cursor:help;color:var(--muted);border-bottom:1px dotted var(--muted);font-size:13px}.error-text{color:var(--error)}.footer-note{border-top:1px solid var(--line);color:var(--muted);margin-top:10px;padding-top:10px;font-size:13.5px}.actions{gap:10px;margin-top:24px;display:flex}.modal-backdrop{background:var(--backdrop);z-index:50;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);width:100%;max-width:900px;box-shadow:0 8px 40px var(--shadow);border-radius:10px;padding:24px 26px}.app-header{border-bottom:1px solid var(--line);background:var(--card);align-items:center;gap:12px;padding:10px 24px;display:flex}.app-header .brand{color:inherit;align-items:center;gap:12px;min-width:0;text-decoration:none;display:flex}.app-header .brand img{flex:none;width:44px;height:44px}.app-header .brand-name{letter-spacing:.14em;color:var(--brand);font-size:19px;font-weight:700;line-height:1.2}.app-header .brand-sub{letter-spacing:.18em;color:var(--muted);white-space:nowrap;font-size:10.5px}.app-header .header-spacer{flex:1}.app-footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);background:var(--card);padding:22px 24px 30px;font-size:13px}.app-footer a{color:var(--muted);text-decoration:none}.app-footer a:hover{color:var(--ink)}.app-footer .foot-sub{letter-spacing:.08em;margin-top:6px;font-size:12px}.menu-wrap{position:relative}.menu-panel{background:var(--card);border:1px solid var(--line);width:240px;box-shadow:0 8px 30px var(--shadow);z-index:60;border-radius:10px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.menu-header{border-bottom:1px solid var(--line);overflow-wrap:anywhere;margin-bottom:6px;padding:8px 10px 10px}.menu-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.menu-item:hover{background:var(--hover);border-color:#0000}.menu-item.danger{color:var(--error)}.menu-divider{border-top:1px solid var(--line);margin:6px 0}.menu-label{letter-spacing:.06em;color:var(--muted);text-transform:uppercase;padding:6px 10px 2px;font-size:11.5px}.menu-seg{gap:4px;padding:4px 10px 8px;display:flex}.menu-seg button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;flex:1;padding:4px 6px;font-size:12.5px}.menu-seg button.active{border-color:var(--accent);color:var(--ink)}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--hover);color:var(--ink);border-color:#0000}.avatar-disc{background:var(--accent);color:var(--card);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden}.avatar-disc img{object-fit:cover;width:100%;height:100%;display:block}button.avatar-btn{border:2px solid var(--line);background:0 0;border-radius:50%;padding:2px;line-height:0}button.avatar-btn:hover{border-color:var(--accent)}.grid-2{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:0 20px;display:grid}@media (max-width:900px){.grid-3{grid-template-columns:1fr 1fr}}@media (max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}
