:root{--rail-bg: #101418;--rail-line: #1d242c;--rail-ic: #8b97a3;--rail-on: #38bdf8;--pg: #f4f4f7;--card: #ffffff;--line: #e6e6ec;--tx: #26262e;--tx2: #6b6b76;--tx3: #9b9ba6;--acc: #7c6cf0;--hi: #e0574f;--md: #e0a13f;--ok: #57a06a}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--tx);background:var(--pg)}.shell{display:grid;grid-template-columns:56px 1fr;height:100%}.rail{background:var(--rail-bg);border-right:1px solid var(--rail-line);display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0}.rail button{width:34px;height:34px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--rail-ic);font-size:15px;cursor:pointer;display:grid;place-items:center}.rail button:hover{background:#1a2129;color:#cdd6de}.rail button.on{color:var(--rail-on);border-color:#1e3a4d;background:#14202a}.rail button:focus-visible{outline:2px solid var(--rail-on);outline-offset:1px}.rail-logo{font-weight:700;font-size:16px!important;background:linear-gradient(135deg,#38bdf8,#0e7490)!important;color:#fff!important;margin-bottom:6px}.stage{overflow-y:auto;padding:22px clamp(16px,3vw,34px)}.demo-banner{font-size:12.5px;color:var(--tx2);background:#fdf7e8;border:1px solid #eadfc0;border-radius:9px;padding:8px 12px;margin-bottom:16px}.demo-banner code{background:#f2ead2;padding:1px 5px;border-radius:4px}.canvas-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.canvas-head h1{font-size:19px;margin:0;font-weight:700;letter-spacing:-.01em}.org-chip{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;color:var(--tx3);border:1px solid var(--line);background:var(--card);border-radius:999px;padding:3px 10px}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:108px;gap:10px;max-width:1080px}@media (max-width: 900px){.grid{grid-template-columns:repeat(2,1fr)}}.widget{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 14px;cursor:pointer;overflow:hidden;transition:border-color .12s,box-shadow .12s;font:inherit;color:inherit}.widget:hover{border-color:var(--acc);box-shadow:0 4px 18px #3c3c5a14}.widget:focus-visible{outline:2px solid var(--acc);outline-offset:1px}.widget.span-2{grid-column:span 2}.widget.tall{grid-row:span 2}.widget h3{margin:0 0 8px;font-family:ui-monospace,Menlo,monospace;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx3);display:flex;align-items:center;font-weight:600}.open-hint{margin-left:auto;color:var(--tx3);opacity:0;transition:opacity .12s;letter-spacing:0}.widget:hover .open-hint{opacity:1}.w-list{list-style:none;margin:0;padding:0}.w-list li{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 0;border-top:1px solid #f0f0f4}.w-list li:first-child{border-top:0}.dot{width:6px;height:6px;border-radius:50%;flex:none}.dot.hi{background:var(--hi)}.dot.md{background:var(--md)}.w-meta{margin-left:auto;font-family:ui-monospace,Menlo,monospace;font-size:10px;color:var(--tx3)}.w-idea p{margin:0 0 8px;font-size:12.5px;color:var(--tx2)}.w-idea-pick{display:inline-block;background:linear-gradient(135deg,var(--acc),#5b4cd0);color:#fff;font-size:12px;font-weight:600;border-radius:8px;padding:6px 11px}.w-stat strong{font-family:Georgia,serif;font-size:26px;display:block}.w-stat span{font-size:11px;color:var(--tx3)}.w-conn{display:grid;gap:6px;font-size:12px}.online{color:var(--ok);font-weight:600}.online:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:6px}.spark{display:flex;align-items:flex-end;gap:4px;height:46px}.spark i{flex:1;background:var(--acc);border-radius:3px 3px 0 0;opacity:.85}.auth-screen{min-height:100%;display:grid;place-items:center;background:var(--pg);padding:24px}.auth-card{width:100%;max-width:360px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:30px 28px;text-align:center;box-shadow:0 8px 32px #28284614}.auth-mark{width:44px;height:44px;border-radius:12px;margin:0 auto 14px;background:linear-gradient(135deg,#38bdf8,#0e7490);color:#fff;font-weight:700;font-size:20px;display:grid;place-items:center}.auth-mark.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.auth-mark.pulse{animation:none}}.auth-card h1{font-family:Georgia,serif;font-size:24px;margin:0 0 4px}.auth-sub{color:var(--tx2);font-size:13.5px;margin:0 0 18px}.auth-sub b{color:var(--tx)}.btn-google,.btn-primary{width:100%;padding:10px 12px;border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--tx)}.btn-google:hover{border-color:var(--tx3)}.btn-primary{background:var(--acc);border-color:var(--acc);color:#fff;margin-top:4px}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:disabled,.btn-google:disabled{opacity:.6;cursor:default}.btn-quiet{width:100%;margin-top:8px;padding:8px;border:0;background:none;color:var(--tx2);font-size:12.5px;cursor:pointer}.btn-quiet:hover{color:var(--tx)}.auth-or{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--tx3);font-size:11px}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.auth-form{display:grid;gap:10px;text-align:left}.auth-form label{font-size:11.5px;color:var(--tx2);display:grid;gap:4px;font-weight:600}.auth-form input{padding:9px 10px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;background:var(--pg);color:var(--tx)}.auth-form input:focus{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}.auth-error{margin:12px 0 0;font-size:12px;color:#b03a32;background:#fdefee;border:1px solid #f2cfcb;border-radius:8px;padding:8px 10px;word-break:break-word}.auth-foot{margin:16px 0 0;font-size:11px;color:var(--tx3);line-height:1.5}.user-chip{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--tx2)}.link-btn{border:0;background:none;color:var(--acc);font-size:11.5px;cursor:pointer;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.view-stub{max-width:560px;padding-top:8vh}.view-stub h2{font-family:Georgia,serif;font-size:28px;margin:0 0 10px}.view-stub p{color:var(--tx2);line-height:1.6;margin:0 0 14px}.stub-tag{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;color:var(--tx3);border:1px dashed var(--line);background:var(--card);border-radius:7px;padding:4px 10px}
