:root{--bg: #14181c;--bg-deep: #0e1114;--bg-raised: #1b2025;--ink: #e8ecef;--ink-dim: #c3cbd1;--ink-faint: #7b858d;--accent: #d9a441;--accent-bright: #ecbb63;--rule: rgba(232, 236, 239, .14);--danger: #d9695f;--success: #7fb069;--font-display: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", monospace;--font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767}:root[data-theme=light]{--bg: #f3f4f6;--bg-deep: #ffffff;--bg-raised: #ffffff;--ink: #1f2328;--ink-dim: #57606a;--ink-faint: #8b949e;--accent: #b3791f;--accent-bright: #d9a441;--rule: rgba(31, 35, 40, .14);--danger: #c1413a;--success: #4f8a3d;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--ink-faint) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--ink-faint);border-radius:8px;border:2px solid var(--bg);background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--ink-dim)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);transition:background-color .15s ease,color .15s ease}a{color:var(--accent)}.app-shell{display:flex;min-height:100vh}.sidebar{width:200px;flex-shrink:0;background:var(--bg-raised);border-right:1px solid var(--rule);display:flex;flex-direction:column;padding:16px 12px}.sidebar-brand{font-family:var(--font-display);font-weight:700;color:var(--accent-bright);margin-bottom:24px;font-size:1.1rem}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-link{padding:8px 10px;border-radius:6px;color:var(--ink-dim);text-decoration:none;font-size:.9rem}.nav-link:hover{color:var(--ink);background:var(--bg-deep)}.nav-link.active{color:var(--accent-bright);background:var(--bg-deep);font-weight:600}.sidebar-user{border-top:1px solid var(--rule);padding-top:12px;font-size:.8rem;color:var(--ink-faint)}.sidebar-theme-toggle{width:100%;margin-top:8px}.main-content{flex:1;padding:32px 40px;max-width:none;min-width:0}.btn{font-family:var(--font-body);font-weight:600;font-size:.9rem;padding:8px 16px;border-radius:6px;border:1px solid transparent;cursor:pointer}.btn-primary{background:linear-gradient(180deg,var(--accent-bright),var(--accent));color:var(--bg)}.btn-primary:hover{background:var(--accent-bright)}.btn-secondary{background:transparent;border-color:var(--rule);color:var(--ink-dim)}.btn-secondary:hover{border-color:var(--ink);color:var(--ink)}.btn-danger{background:transparent;color:var(--danger)}.btn-danger:hover{text-decoration:underline}.card{background:var(--bg-deep);border:1px solid var(--rule);border-radius:8px}.list-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}.search-input{flex:1;min-width:220px}.list-toolbar select.input{flex:0 0 auto;width:auto}.table-scroll{width:100%;overflow-x:auto}.item-table{width:100%;min-width:720px;border-collapse:collapse;font-size:.9rem}.item-table th{text-align:left;color:var(--ink-dim);font-weight:400;font-size:.85rem;padding:8px 10px;border-bottom:1px solid var(--rule)}.item-table td{padding:10px;border-bottom:1px solid var(--rule)}.item-table .col-description{width:100%;max-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-dim)}.item-table th:nth-child(2n),.item-table td:nth-child(2n){background-color:#e8ecef09}.list-row{cursor:pointer}.list-row:hover{background:var(--bg-raised)}.list-row:hover td{background-color:var(--bg-raised)}.list-row-actions{display:flex;gap:6px;justify-content:flex-end}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px;line-height:0;border-color:var(--rule)}.field-group{margin-bottom:16px}.field-label{display:block;font-size:.85rem;color:var(--ink-dim);margin-bottom:4px}.input{width:100%;background:var(--bg-deep);border:1px solid var(--rule);border-radius:6px;color:var(--ink);padding:8px 10px;font-family:var(--font-body);font-size:.9rem}.input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.field-row{display:flex;gap:16px;flex-wrap:wrap}.field-row .field-group{flex:1;min-width:200px}.error-banner{background:#d9695f1f;border:1px solid var(--danger);color:var(--danger);border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:.9rem}.empty-state{text-align:center;color:var(--ink-faint);padding:60px 0}.form-actions{display:flex;gap:8px;margin-top:24px}.vector2-field,.shape-ref-field{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.vector2-field .field-group,.shape-ref-field .field-group{margin-bottom:0;flex:1;min-width:100px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080}.dialog-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:24px;min-width:320px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.combobox-listbox{background:var(--bg-raised);border:1px solid var(--rule);border-radius:6px;max-height:240px;overflow-y:auto;width:var(--radix-popover-trigger-width);z-index:10}.combobox-option{padding:6px 10px;font-size:.85rem;cursor:pointer}.combobox-option:hover{background:var(--bg-deep)}.entity-ref-field.entity-ref-current{display:flex;align-items:center;gap:8px;background:var(--bg-deep);border:1px solid var(--rule);border-radius:6px;padding:8px 10px;font-size:.9rem}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--ink-dim);margin-bottom:8px}.condition-list-editor,.informations-list-editor,.family-list-field,.related-entity-list-field{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.condition-row,.information-row,.family-row,.related-entity-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--bg-deep);border:1px solid var(--rule);border-radius:6px;padding:10px}.condition-fields,.information-fields{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.condition-row .input,.information-row .input,.family-row .input,.related-entity-row .input{width:auto;min-width:80px}.options-tree-editor{border:1px solid var(--rule);border-radius:8px;padding:12px}.options-tree-toolbar{display:flex;gap:8px;margin-bottom:12px}.options-tree-toolbar select.input{width:auto}.options-tree-split{display:flex;gap:16px;min-height:320px}.options-tree-pane{flex:0 0 40%;border-right:1px solid var(--rule);padding-right:16px;overflow-y:auto}.options-tree-detail{flex:1;min-width:0}.options-tree-outline{display:flex;flex-direction:column}.tree-node-row{display:flex;align-items:center;gap:6px;padding:6px 4px;border-radius:6px}.tree-node-row:hover{background:var(--bg-deep)}.tree-node-row.selected{background:#d9a44124}.tree-expand-toggle{background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:0 4px;font-size:.8rem}.tree-node-label{flex:1;font-size:.9rem;text-align:left}button.tree-node-select{background:none;border:none;color:var(--ink);cursor:pointer;padding:4px 0}.tree-node-actions{display:flex;gap:4px;flex-shrink:0}.tree-node-inline-detail{border-left:1px solid var(--rule);margin-left:12px;padding-left:12px;margin-bottom:8px}.node-detail-fields{display:flex;flex-direction:column;gap:12px}.npc-lore-group{margin-bottom:24px}.npc-lore-group-title{font-family:var(--font-display);color:var(--accent-bright);margin:0 0 8px}.npc-lore-subgroup{margin-bottom:16px}.npc-lore-subgroup-title{font-size:.85rem;color:var(--ink-dim);margin:0 0 6px;text-transform:uppercase;letter-spacing:.04em}.npc-lore-modal-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(720px,90vw);max-height:85vh;overflow-y:auto;padding:24px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.npc-lore-card-fields{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:16px 0}.npc-lore-card-fields dt{color:var(--ink-dim);font-size:.85rem}.npc-lore-card-fields dd{margin:0}.npc-lore-card-section{margin-bottom:16px}.npc-lore-card-section h3{font-size:.85rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px}.npc-lore-card-section p,.npc-lore-card-section ul{margin:0}.npc-lore-graph-page{display:flex;flex-direction:column;gap:16px}.npc-lore-graph-layout{display:flex;gap:24px;align-items:flex-start}.npc-lore-graph-canvas-wrapper{flex:1;min-width:0}.npc-lore-graph-canvas{display:block;width:100%;max-width:100%;background:var(--bg-deep);border:1px solid var(--rule);border-radius:8px;touch-action:none;cursor:grab}.npc-lore-graph-node circle{fill:var(--bg-raised);stroke:var(--accent);stroke-width:2;cursor:pointer;transition:opacity .15s ease}.npc-lore-graph-node text{fill:var(--ink);font-size:11px}.npc-lore-graph-node.dimmed circle,.npc-lore-graph-node.dimmed text{opacity:.25}.npc-lore-graph-edge{transition:opacity .15s ease;cursor:pointer}.npc-lore-graph-edge.dimmed{opacity:.15}.npc-lore-graph-legend{display:flex;flex-direction:column;gap:8px;flex:0 0 180px}.npc-lore-graph-legend-item{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--ink-dim)}.npc-lore-graph-legend-swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0}.npc-lore-graph-legend-note{margin-top:4px;font-size:.78rem;color:var(--ink-faint)}.sidebar-project-row{display:flex;align-items:center;gap:4px}.sidebar-project-row .nav-link{flex:1;display:flex;align-items:center;gap:8px}.sidebar-project-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.idea-row{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--rule)}.idea-row-title{flex:1;text-align:left;background:none;border:none;color:var(--ink);font-size:1rem;cursor:pointer;padding:4px 0}.idea-row-title:hover{color:var(--accent-bright)}.block-drag-handle{background:none;border:none;color:var(--ink-faint);cursor:grab;padding:4px}.idea-list-new-row{display:flex;gap:8px;margin-top:16px}.idea-list-new-row .input{flex:1}.block-shell{display:flex;align-items:flex-start;gap:4px;padding:4px 0}.block-shell-content{flex:1;min-width:0}.block-shell-actions{display:flex;gap:2px;flex-shrink:0}.block-type-picker{display:flex;flex-direction:column;padding:6px;z-index:10}.block-type-picker-option{text-align:left;background:none;border:none;color:var(--ink);padding:6px 10px;cursor:pointer;font-size:.85rem;border-radius:4px}.block-type-picker-option:hover{background:var(--bg-raised)}.url-embed-iframe{width:100%;aspect-ratio:16 / 9;border:none;border-radius:8px;margin-top:8px}.url-embed-card{display:block;padding:10px 14px;margin-top:8px;word-break:break-all}.idea-editor-header{display:flex;align-items:center;gap:12px;margin:16px 0 24px}.idea-title-input{font-size:1.4rem;font-weight:600;border:none;background:none;padding:4px 0}.idea-title-input:focus{outline:none;border-bottom:1px solid var(--accent)}.idea-title-view{flex:1;font-size:1.4rem;font-weight:600;margin:0}.idea-view-blocks{display:flex;flex-direction:column;gap:12px}.idea-view-block p,.idea-view-block h1,.idea-view-block h2,.idea-view-block h3{margin:0}.saving-indicator{color:var(--ink-faint);font-size:.8rem;flex-shrink:0}.api-key-secret-callout code{display:block;padding:10px;margin:10px 0;background:var(--bg-deep);border-radius:6px;word-break:break-all}.api-key-revoked{opacity:.5}.sidebar-project-header{font-weight:600;color:var(--ink);padding:4px 10px 8px}.sidebar-projects-toggle{background:none;border:none;text-align:left;cursor:pointer;font-family:var(--font-body)}.sidebar-projects-list{display:flex;flex-direction:column;gap:4px;padding-left:8px;margin-bottom:4px}.sidebar-project-link{display:flex;align-items:center;gap:8px}.sidebar-sublist{display:flex;flex-direction:column;gap:4px;padding-left:8px;margin-bottom:4px}.sidebar-logout{background:none;border:none;text-align:left;cursor:pointer;color:var(--ink-dim);font-family:var(--font-body);margin-top:auto}.sidebar-logout:hover{color:var(--ink)}.project-settings-archive{padding:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.action-menu{display:flex;flex-direction:column;padding:6px;z-index:10}.action-menu-option{text-align:left;background:none;border:none;color:var(--ink);padding:6px 10px;cursor:pointer;font-size:.85rem;border-radius:4px}.action-menu-option:hover{background:var(--bg-raised)}.action-menu-option-danger{color:var(--danger)}.kanban-card{display:flex;align-items:flex-start;gap:4px;background:var(--bg-deep);border:1px solid var(--rule);border-radius:6px;padding:8px;margin-bottom:8px}.kanban-card-title{flex:1;text-align:left;background:none;border:none;color:var(--ink);font-size:.9rem;cursor:pointer;padding:2px 0}.kanban-card-title:hover{color:var(--accent-bright)}.kanban-card-expanded{flex-direction:row}.card-detail{flex:1;display:flex;flex-direction:column;gap:8px}.card-detail-description{min-height:60px;resize:vertical;font-family:var(--font-body)}.kanban-board{display:flex;flex-direction:column}.kanban-columns{display:flex;gap:16px;align-items:flex-start;overflow-x:auto;padding-bottom:8px}.kanban-column{background:var(--bg-raised);border:1px solid var(--rule);border-radius:8px;padding:10px;width:260px;flex-shrink:0}.kanban-column-header{display:flex;align-items:center;gap:6px;margin-bottom:10px}.kanban-column-title{flex:1;font-weight:600;font-size:.9rem}.kanban-column-cards{min-height:24px}.kanban-add-card{display:flex;flex-direction:column;gap:6px;margin-top:4px}.kanban-add-column{display:flex;flex-direction:column;gap:6px;justify-content:flex-start}.kanban-card-overlay,.kanban-column-overlay{box-shadow:0 8px 24px #00000073;cursor:grabbing}.kanban-column-overlay{width:260px}.board-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--rule);padding-bottom:12px}.board-tab{display:flex;align-items:center;gap:2px;border-radius:6px;padding:2px}.board-tab.active{background:var(--bg-raised)}.board-tab-label{background:none;border:none;color:var(--ink-dim);padding:6px 8px;cursor:pointer;font-size:.9rem}.board-tab.active .board-tab-label{color:var(--accent-bright);font-weight:600}.board-tab-rename-input{width:160px}.board-tab-new{display:flex;gap:8px}.board-tab-new .input{width:180px}.kanban-column-default-badge{color:var(--accent);font-size:.85rem}.card-detail-tags{font-size:.85rem}.timer-bar{background:var(--bg-raised);border:1px solid var(--rule);border-radius:10px;padding:10px 12px;margin-bottom:24px}.timer-bar-row{display:flex;align-items:center;gap:10px}.timer-bar-description-input{flex:1;min-width:160px}.timer-bar-field{width:auto;min-width:140px;flex:0 0 auto}.timer-bar-description{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer-bar-project-badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:4px 10px;border-radius:999px;background:var(--bg-deep);color:var(--ink-dim);font-size:.8rem;white-space:nowrap}.timer-bar-elapsed{flex:0 0 auto;color:var(--ink);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.05rem;min-width:84px;text-align:right}.timer-bar-toggle{flex:0 0 auto;min-width:84px;text-transform:uppercase;letter-spacing:.03em;border-radius:999px}.timer-bar-toggle.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.timer-bar-toggle.btn-danger:hover{filter:brightness(1.08);text-decoration:none}.time-log-filters,.time-log-tag-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}.time-log-total{font-weight:600;margin:0 0 12px}.time-log-add{margin-bottom:16px}.time-log-add-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px;margin-top:8px}.time-log-add-form .input{width:auto}.time-log-duration-inputs,.time-log-time-inputs{display:flex;align-items:center;gap:4px}.time-log-duration-inputs .input{width:60px}.time-log-description{background:none;border:none;color:var(--ink);cursor:pointer;text-align:left;padding:0}.time-log-description:hover{color:var(--accent-bright)}.time-log-groups{display:flex;flex-direction:column;gap:20px}.time-log-day-group{border:1px solid var(--rule);border-radius:8px;overflow:hidden}.time-log-day-header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--bg-raised);font-size:.85rem;color:var(--ink-dim)}.time-log-day-label{font-weight:600;color:var(--ink)}.time-log-day-total{font-weight:600}.time-log-row{display:flex;align-items:center;gap:16px;padding:10px 14px;border-top:1px solid var(--rule);background:var(--bg-deep)}.time-log-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.time-log-row-project{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--ink-dim);white-space:nowrap}.time-log-row-project-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.time-log-row-time{flex:0 0 auto;color:var(--ink-dim);font-family:var(--font-display);font-size:.85rem;white-space:nowrap}.time-log-row-duration{flex:0 0 auto;font-weight:600;font-family:var(--font-display);min-width:60px;text-align:right}.time-page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.time-page-header h1{margin:0}.week-control{display:flex;align-items:center;gap:8px}.week-control-nav{display:flex;align-items:center;gap:4px}.week-control-label{min-width:140px;text-align:center;color:var(--ink-dim);font-size:.9rem}.stat-tile-row{display:flex;gap:16px;margin-bottom:16px}.stat-tile{flex:1;background:var(--bg-raised);border:1px solid var(--rule);border-radius:8px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}.stat-tile-label{color:var(--ink-dim);font-size:.8rem}.stat-tile-value{font-size:1.6rem;font-weight:600;font-family:var(--font-display)}.stat-tile-value-text{font-family:var(--font-body);font-size:1.2rem}.time-dashboard-chart-card,.time-report-chart-card{padding:20px;margin-bottom:16px}.time-dashboard-bottom-row{display:flex;gap:16px;align-items:stretch}.time-dashboard-bottom-row .time-dashboard-chart-card{flex:1;margin-bottom:0}.time-dashboard-activities-card{flex:1;padding:20px}.time-dashboard-activities-title{margin:0 0 12px;font-size:1rem}.time-dashboard-activity-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--rule)}.time-dashboard-activity-row:first-of-type{border-top:none}.time-dashboard-activity-duration{font-family:var(--font-display);color:var(--ink-dim);flex-shrink:0}.bar-chart{width:100%;height:240px}.bar-chart-gridline{stroke:var(--rule);stroke-width:1}.bar-chart-baseline{stroke:var(--ink-faint);stroke-width:1}.bar-chart-axis-label,.bar-chart-day-label{fill:var(--ink-faint);font-size:11px;font-family:var(--font-body)}.bar-chart-value-label{fill:var(--ink-dim);font-size:11px;font-family:var(--font-display)}.bar-chart-bar{fill:var(--accent)}.bar-chart-bar-group:hover .bar-chart-bar,.bar-chart-bar-group:focus .bar-chart-bar{fill:var(--accent-bright);outline:none}.donut-chart{display:flex;gap:32px;align-items:center;flex-wrap:wrap}.donut-chart-ring{width:220px;height:220px;flex-shrink:0}.donut-chart-ring circle{transition:opacity .1s ease}.donut-chart-ring circle:hover{opacity:.85}.donut-chart-center-label{fill:var(--ink);font-size:18px;font-weight:600;font-family:var(--font-display)}.donut-chart-legend{flex:1;min-width:220px;display:flex;flex-direction:column;gap:10px}.donut-chart-legend-row{display:flex;align-items:center;gap:10px}.donut-chart-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.donut-chart-legend-label{flex:0 1 auto;min-width:100px}.donut-chart-legend-duration{font-family:var(--font-display);color:var(--ink-dim);flex-shrink:0}.donut-chart-legend-bar-track{flex:1;height:8px;background:var(--bg-deep);border-radius:4px;overflow:hidden;min-width:60px}.donut-chart-legend-bar-fill{display:block;height:100%}.donut-chart-legend-percent{flex-shrink:0;min-width:48px;text-align:right;color:var(--ink-dim);font-size:.85rem}.whiteboard-page{margin:0 -40px -32px}.whiteboard-canvas{height:calc(100vh - 96px);min-height:480px}.learning-library-filters{display:flex;gap:8px;margin-bottom:12px}.learning-item-row-status{color:var(--ink-dim);font-size:.85em}
