:root{color-scheme:light;--bg:#f8f9fb;--paper:#fff;--ink:#262b34;--muted:#6c7380;--line:#d9dee8;--line-ink:#d1d7e1;--accent:#286ed0;--font:system-ui,-apple-system,"PingFang SC",sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#17191e;--paper:#21242b;--ink:#eceef2;--muted:#a4acbb;--line:#3c424f;--line-ink:#4c5261;--accent:#8ab4ff}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;font-family:var(--font);color:var(--ink);background:var(--bg)}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button,select{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:8px 13px}button,a{cursor:pointer}button:hover,a.card:hover{border-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}a{color:var(--accent)}.home{max-width:1100px;margin:auto;padding:44px 28px}.top{display:flex;align-items:center;gap:12px;margin-bottom:36px}.top h1{flex:1;font-size:25px;margin:0}.hint{color:var(--muted);font-size:14px;line-height:1.7}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:18px}.card{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:16px;padding:23px;color:var(--ink);background:var(--paper);text-decoration:none;min-height:136px}.card h2{font-size:18px;margin:0}.card p{font-size:14px;margin:0;line-height:1.6;color:var(--muted)}.card small{margin-top:auto;color:var(--accent)}.section-title{font-size:17px;margin:32px 0 16px}.empty{border:1px dashed var(--line);padding:35px;border-radius:15px;line-height:1.8;color:var(--muted)}.login{max-width:390px;margin:16vh auto;padding:32px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.login h1{font-size:24px;margin-top:0}.login label{display:block;font-size:14px}.login input{width:100%;padding:12px;margin:12px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.login button{width:100%;background:var(--accent);color:var(--paper)}.error{color:#d23c3c;line-height:1.6}.map-host{height:100%;position:relative}.node-memory{white-space:pre-wrap;font:14px/1.7 var(--font);overflow-wrap:anywhere}.map-notice{font-size:12px;padding:6px 18px;color:var(--muted);background:var(--paper);border-bottom:1px solid var(--line)}@media(max-width:650px){.home{padding:26px 18px}.top{flex-wrap:wrap}.top h1{flex-basis:100%}.login{margin:12vh 20px}.cgm-header{flex-wrap:wrap}.cgm-header h2{flex-basis:60%}}
.project-card{position:relative}.project-link{display:flex;flex:1;flex-direction:column;gap:12px;color:inherit;text-decoration:none;min-height:90px}.project-link h2{padding-right:28px;overflow-wrap:anywhere}.project-link p{white-space:pre-line;overflow-wrap:anywhere}.project-actions{position:absolute;right:13px;top:13px;min-width:30px;min-height:30px;padding:0 5px;color:var(--muted);background:transparent;border-color:transparent;font-size:23px;line-height:1}.project-menu{position:fixed;z-index:50;min-width:184px;padding:5px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 28px #0002}.project-menu button{width:100%;padding:10px 13px;border:0;text-align:left;border-radius:6px;font-size:14px}.project-menu button:hover{background:var(--bg)}.project-editor{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px #0003}.project-editor::backdrop{background:#0006}.project-editor h2{margin:0 0 24px;font-size:21px}.project-editor label{display:block;margin:18px 0 8px;font-size:14px;font-weight:600}.project-editor input,.project-editor textarea{width:100%;padding:11px 12px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px;font:16px/1.5 var(--font)}.project-editor textarea{resize:vertical;min-height:120px}.project-editor input:focus-visible,.project-editor textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.project-editor .error:empty{display:none}.project-editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.project-editor-actions button{min-height:40px;min-width:76px}.project-editor-actions .primary{background:var(--accent);color:var(--paper)}.project-editor :disabled{cursor:wait;opacity:.65}
/* Personal project cards: match the authored Dashboard's warm, outlined nodes. */
#app:has(>.home),.home{--bg:#fffaf1;--paper:#fffdf8;--ink:#30302e;--muted:#7c7467;--line:#e5dccd;--card-edge:#30302e;background:var(--bg);color:var(--ink)}
:root[data-theme=dark] #app:has(>.home),:root[data-theme=dark] .home{--bg:#1b1a17;--paper:#282622;--ink:#f2ede3;--muted:#bcb3a4;--line:#514b42;--card-edge:#bcb3a4}
.home{min-height:100%}.home .grid{gap:24px;align-items:start}.home .card{min-height:104px;padding:18px 20px;border:3px solid var(--card-edge);border-left-width:9px;border-radius:19px;box-shadow:3px 5px 0 var(--card-edge);gap:8px}.home .card h2{font-size:20px;line-height:1.4}.home .card p,.home .card small{font-size:15px;line-height:1.5;color:var(--muted)}
.home .project-link{min-height:0;gap:7px}.home .project-link h2{display:flex;align-items:baseline;gap:12px;padding-right:28px}.project-dot{flex:0 0 15px;width:15px;height:15px;border-radius:50%;background:#c5daf2;align-self:flex-start;margin-top:7px}.project-map-icon{position:absolute;right:19px;top:21px;font-size:18px;line-height:24px}.home .project-actions{top:auto;bottom:10px;right:12px;min-width:30px;min-height:30px;font-size:22px;opacity:0}.home .project-card:focus-within .project-actions{opacity:1}.home .project-card small{padding-right:28px}
@media(hover:hover){.home .card:hover{border-color:var(--card-edge);background:var(--paper)}.home .project-card:hover .project-actions{opacity:1}}
@media(hover:none){.home .project-actions{opacity:1}}
@media(forced-colors:active){.home .card{border-color:CanvasText}.project-dot{background:CanvasText}}
