*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#1f2733;background:#f4f6f9}h1,h3,h4{margin:.2em 0}h1{font-size:24px}button{cursor:pointer;font-family:inherit}.screen{height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#fff;border-bottom:1px solid #e3e7ee}.brand{font-weight:700;letter-spacing:.2px}.linkish{background:none;border:none;color:#2f6fed;font-size:13px;padding:0}.topbar-spacer{flex:1 1}.topbar-user{font-size:12px;color:#8592a6}.welcome{flex:1 1;display:grid;place-items:center;padding:24px;min-height:60vh}.welcome-card{background:#fff;border:1px solid #e3e7ee;border-radius:14px;padding:36px;max-width:560px;box-shadow:0 8px 30px rgba(31,39,51,.06)}.welcome-card p{color:#55637a;line-height:1.55;font-size:14px}.welcome-hint{font-weight:600}.auth-chip{display:inline-block;font-size:12px;color:#55637a;background:#f0f3f8;border-radius:999px;padding:4px 10px;margin-bottom:12px}.google-btn{margin-top:8px;font-size:14px;font-weight:600;background:#2f6fed;color:#fff;border:none;border-radius:8px;padding:10px 18px}.google-btn:hover{background:#2559c4}.signin-error{background:#fdecec;color:#b03030;border-radius:8px;padding:10px 12px;font-size:13px}.loading{color:#8592a6;font-size:14px}.chip{display:inline-flex;align-items:center;font-size:11px;border-radius:999px;padding:2px 8px;white-space:nowrap}.badge,.chip{font-weight:600}.badge{background:#fff;border:1px solid;max-width:160px;overflow:hidden;text-overflow:ellipsis;display:inline-block}.chip-open{background:#e5f6ef;color:#157a58}.chip-done{background:#eef1f6;color:#66748c}.chip-overdue{background:#fdecec;color:#b03030}.start-chip{background:#fff7e0;color:#b98a00}.ghost-chip{background:#eef1f6;color:#8592a6}.avatar{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#e8ecf3;color:#4a5568;font-size:10px;font-weight:700;padding:0 2px}.due{font-size:11px;color:#8592a6}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.toggle{font-size:12px;color:#4a5568;display:flex;gap:6px;align-items:center}.stars{color:#e8a700;font-size:12px;letter-spacing:1px}.card{width:260px;background:#fff;border:1px solid #e3e7ee;border-left:4px solid;border-radius:10px;padding:10px 12px;cursor:pointer;box-shadow:0 2px 6px rgba(31,39,51,.05);transition:box-shadow .12s}.card:hover{box-shadow:0 4px 14px rgba(31,39,51,.1)}.card-top{display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap}.card-title{font-size:13px;font-weight:600;line-height:1.3}.card-meta{display:flex;gap:8px;align-items:center;margin-top:8px}.card-done{opacity:.55}.card-done .card-title{text-decoration:line-through;text-decoration-thickness:1px}.tick{color:#1fa97a}.card-ghost{border-style:dashed;opacity:.5;background:#fafbfd}.card-selected{outline:2px solid #2f6fed;outline-offset:1px}.card-start{box-shadow:0 0 0 3px #ffe9b3}.typeahead{position:relative;margin:6px 0}.typeahead input{width:100%;padding:9px 12px;font-size:13px;border:1px solid #cfd7e3;border-radius:8px}.typeahead-menu{position:absolute;z-index:30;top:100%;left:0;right:0;background:#fff;border:1px solid #e3e7ee;border-radius:8px;box-shadow:0 8px 24px rgba(31,39,51,.12);overflow:hidden}.typeahead-menu button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;background:none;border:none;font-size:13px}.typeahead-menu button:hover{background:#f0f4fb}.typeahead-title{flex:1 1;line-height:1.3}.typeahead-project{display:block;font-size:11px;color:#8592a6}.typeahead-none{padding:8px 10px;font-size:12px;color:#8592a6}.map-screen{flex:1 1;display:flex;min-height:0}.canvas-wrap{flex:1 1;position:relative;display:flex;flex-direction:column;min-width:0}.flow-area{position:absolute;inset:0}.canvas-toolbar{position:absolute;z-index:10;top:10px;left:12px;right:12px;justify-content:space-between;gap:12px;background:rgba(255,255,255,.92);border:1px solid #e3e7ee;border-radius:10px;padding:8px 12px}.canvas-toolbar,.toolbar-left{display:flex;align-items:center}.toolbar-left{gap:14px}.legend{display:flex;gap:12px;font-size:12px;color:#4a5568;flex-wrap:wrap;justify-content:flex-end}.mode-toggle{display:flex;border:1px solid #cfd7e3;border-radius:8px;overflow:hidden}.mode-toggle button{background:#fff;border:none;font-size:12px;font-weight:600;color:#55637a;padding:5px 12px}.mode-toggle .on{background:#2f6fed;color:#fff}.refresh-btn{background:#fff;border:1px solid #cfd7e3;border-radius:8px;font-size:12px;font-weight:600;color:#55637a;padding:5px 10px}.refresh-btn:disabled{opacity:.6;cursor:default}.inspector{width:340px;flex-shrink:0;background:#fff;border-right:1px solid #e3e7ee;padding:14px;overflow-y:auto}.inspector-head h3{font-size:15px;margin:6px 0}.inspector-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inspector-desc{font-size:13px;color:#55637a;line-height:1.5;margin:10px 0 2px;overflow-wrap:break-word}.inspector-desc img{max-width:100%}.inspector-desc-empty{color:#a0aab8}.inspector-empty{color:#8592a6;font-size:13px}.open-plutio{display:inline-block;margin-top:10px;font-size:13px;font-weight:600;color:#2f6fed;text-decoration:none;border:1px solid #cfd7e3;border-radius:8px;padding:6px 12px}.open-plutio:hover{background:#f0f4fb}.dep-editor h4{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:#8592a6;margin:16px 0 4px}.dep-none{font-size:12px;color:#b6c0cf;padding:2px 0}.dep-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;padding:5px 8px;background:#f4f6f9;border-radius:7px;margin:4px 0}.dep-title{line-height:1.3}.dep-done{text-decoration:line-through;opacity:.6}.dep-row button{background:none;border:none;color:#d64545;font-size:13px}.history{border-top:1px solid #e3e7ee;margin-top:14px;padding-top:10px;font-size:12px}.history-head{font-weight:700;margin-bottom:6px}.history-empty{color:#8592a6}.history-row{display:flex;gap:8px;align-items:baseline;padding:4px 0}.history-kind{font-weight:700;width:12px}.history-add .history-kind{color:#1fa97a}.history-remove .history-kind{color:#d64545}.history-revert .history-kind{color:#b98a00}.history-text{flex:1 1;line-height:1.35}.history-at{color:#a0aab8;margin-left:6px;font-size:10px}.history-row button{background:none;border:1px solid #cfd7e3;border-radius:6px;font-size:11px;padding:1px 7px}.critical-scroll{position:absolute;inset:0;overflow-y:auto;padding-top:64px}.runbook{padding:28px 16px 60px}.runbook,.runbook-step{display:flex;flex-direction:column;align-items:center}.runbook-connector{width:2px;height:34px;background:#c3ccda}.runbook-waits{font-size:11px;color:#8592a6;margin:4px 0;display:flex;gap:6px;align-items:center;flex-wrap:wrap;max-width:460px;justify-content:center}.wait-chip{border:1px dashed;border-radius:999px;padding:1px 8px;background:#fff}.loop-warning{color:#b03030;font-weight:600}.notice{position:absolute;z-index:40;bottom:18px;left:50%;transform:translateX(-50%);font-size:13px;border-radius:10px;padding:10px 14px;display:flex;gap:12px;align-items:center;max-width:680px;box-shadow:0 6px 20px rgba(0,0,0,.2)}.notice-error,.notice-warn{background:#2b1d1d;color:#ffd9d9}.notice button{background:#4a2e2e;color:#fff;border:none;border-radius:6px;padding:3px 10px}