.overlay-root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;margin:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,#1f2937,#020617);color:#f9fafb}.overlay-root--dashboard{align-items:flex-start;justify-content:center;padding:24px 18px}.card{background:#0f172ae6;border-radius:16px;padding:24px;max-width:960px;width:100%;box-shadow:0 20px 40px #0009;border:1px solid rgba(148,163,184,.4);position:relative}.card--dashboard{max-width:min(1480px,calc(100vw - 36px))}.card--board{max-width:min(1680px,calc(100vw - 36px))}.titlebar{position:absolute;left:0;right:0;top:0;height:34px;border-top-left-radius:16px;border-top-right-radius:16px;cursor:move;user-select:none;-webkit-user-select:none;background:linear-gradient(180deg,#22c55e38,#22c55e0f 55%,#22c55e00);border-bottom:1px solid rgba(34,197,94,.18);opacity:.9}.titlebar:after{content:"";position:absolute;left:50%;top:50%;width:64px;height:10px;transform:translate(-50%,-50%);border-radius:999px;background:radial-gradient(circle at 2px 2px,rgba(226,232,240,.55) 1.2px,transparent 1.3px);background-size:8px 6px;opacity:.65;pointer-events:none}.titlebar:active{cursor:grabbing}h1{margin:0 0 4px;font-size:1.5rem}.subtitle{margin:0 0 16px;color:#9ca3af;font-size:.9rem}.form{display:flex;flex-direction:column;gap:12px}label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}input{padding:8px 10px;border-radius:8px;border:1px solid #4b5563;background:#020617;color:#e5e7eb}button{margin-top:4px;padding:8px 14px;border-radius:999px;border:none;background:linear-gradient(135deg,#22c55e,#16a34a);color:#022c22;font-weight:600;cursor:pointer}button[disabled]{opacity:.5;cursor:default}.status{margin-top:8px;font-size:.85rem;color:#a5b4fc}.error{margin-top:8px;font-size:.85rem;color:#fecaca}.toolbar{display:flex;gap:8px;margin-bottom:12px}.mode-toggle{margin-left:auto;display:flex;gap:6px}.chip{padding:4px 10px;border-radius:999px;border:1px solid #4b5563;background:transparent;color:#e5e7eb;font-size:.75rem}.chip--active{border-color:#22c55e;background:#22c55e26}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;font-size:.8rem}.board-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;margin-top:12px;font-size:.8rem;align-items:start}.pane--board-kanban,.pane--board-timeline{min-width:0}.timeline-list{max-height:calc(100vh - 260px);overflow-y:auto;padding-right:2px}section h2{margin-top:0;margin-bottom:4px;font-size:.9rem}pre{margin:0;padding:8px;background:#020617;border-radius:8px;border:1px solid #1f2937;max-height:200px;overflow:auto}.columns-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;font-size:.8rem}.columns-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px;font-size:.8rem}.pane{display:flex;flex-direction:column;gap:8px}.list{display:flex;flex-direction:column;gap:6px}.list-item{text-align:left;width:100%;padding:8px 10px;border-radius:10px;border:1px solid #1f2937;background:#020617;color:#e5e7eb;display:flex;flex-direction:column;gap:2px}.list-item--active{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e80}.list-item-title{font-size:.9rem}.list-item-meta{font-size:.7rem;color:#9ca3af;display:flex;gap:8px}.empty{font-size:.8rem;color:#6b7280}.quest-detail h3{margin:0 0 4px;font-size:1rem}.quest-objective{margin:0 0 6px;font-size:.85rem;color:#e5e7eb}.quest-meta{display:flex;gap:10px;font-size:.75rem;color:#9ca3af;margin-bottom:6px}.deliverables{margin-top:8px;display:flex;flex-direction:column;gap:4px}.deliverables h4{margin:0 0 4px;font-size:.85rem}.deliverable-header{font-weight:600;margin-top:4px}.deliverable-item{display:flex;align-items:center;gap:6px;font-size:.8rem}.notes-input{width:100%;min-height:120px;padding:8px 10px;border-radius:8px;border:1px solid #4b5563;background:#020617;color:#e5e7eb;resize:vertical;margin-bottom:8px}.notice-item{border-radius:10px;border:1px solid #1f2937;padding:6px 8px;background:#020617}.notice-title{font-size:.85rem}.notice-body{font-size:.75rem;color:#e5e7eb}.notice-meta{display:flex;justify-content:space-between;font-size:.7rem;color:#9ca3af;margin-top:2px}.toast-rail{position:fixed;right:24px;top:24px;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;background:#0f172af2;border-radius:12px;padding:8px 12px;border:1px solid #22c55e;box-shadow:0 10px 25px #000000b3;min-width:220px}.toast-title{font-size:.9rem}.toast-body{font-size:.8rem;color:#d1fae5}.review-buttons{display:flex;gap:4px;margin-top:6px}.button-secondary{padding:6px 12px;border-radius:8px;border:1px solid #4b5563;background:#1f2937;color:#e5e7eb;font-size:.8rem;cursor:pointer}.button-remove{padding:2px 8px;border-radius:6px;border:1px solid #7f1d1d;background:#7f1d1d4d;color:#fca5a5;font-size:1rem;line-height:1;cursor:pointer;flex-shrink:0}.deliverables-editor{margin-top:8px}.deliverables-section{margin-top:10px}.section-header-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:8px}.section-header-row .hint{margin:0}.section-actions{display:flex;gap:6px}.button-add{padding:4px 10px;border-radius:6px;border:1px solid #4b5563;background:#1f2937;color:#e5e7eb;font-size:.75rem;cursor:pointer}.button-add:hover{background:#374151}.deliverables-editor-toolbar{display:flex;gap:8px;margin-bottom:8px}.deliverables-list{display:flex;flex-direction:column;gap:6px}.deliverable-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-radius:6px}.deliverable-row.deliverable-row--dragging{opacity:.6}.drag-handle{cursor:grab;color:#6b7280;font-size:.9rem;-webkit-user-select:none;user-select:none;flex-shrink:0}.deliverable-row:active .drag-handle{cursor:grabbing}.deliverable-remove{opacity:.4;transition:opacity .15s ease}.deliverable-row:hover .deliverable-remove{opacity:1}.deliverable-input{flex:1;min-width:0;padding:6px 10px;border-radius:6px;border:1px solid #4b5563;background:#020617;color:#e5e7eb;font-size:.85rem}.deliverable-header-input{font-weight:600}.deliverable-item-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.deliverable-item-row input[type=checkbox]{flex-shrink:0}.deliverable-item-row .deliverable-input{flex:1}.hint{font-size:.7rem;color:#9ca3af}.hint code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.task-builder{margin-top:8px;display:flex;flex-direction:column;gap:8px}.task-builder-header{display:flex;gap:6px}.task-list{display:flex;flex-direction:column;gap:8px}.task-block{border-radius:10px;border:1px solid #1f2937;padding:8px;background:#020617}.task-title{font-size:.85rem;font-weight:600;margin-bottom:4px}.task-items{display:flex;flex-direction:column;gap:4px}.task-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;border:1px dashed transparent}.task-item[draggable=true]{cursor:grab}.task-item label{display:flex;align-items:center;gap:6px;font-size:.8rem}.task-item-add{align-self:flex-start;margin-top:4px}.reward-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.link-button{background:none;border:none;padding:0;margin:0;color:#38bdf8;font:inherit;cursor:pointer;text-decoration:underline}.link-button:hover{color:#7dd3fc}.agreement-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172abf;display:flex;align-items:center;justify-content:center;z-index:50}.agreement-modal{background:#020617;border-radius:16px;border:1px solid #1f2937;max-width:720px;width:100%;max-height:80vh;padding:16px 20px;box-shadow:0 24px 60px #000000d9;display:flex;flex-direction:column;gap:8px}.agreement-modal-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.agreement-modal-title{font-size:1rem;font-weight:600}.agreement-modal-body{margin-top:4px;padding:8px;border-radius:8px;border:1px solid #1f2937;background:#020617;font-size:.8rem;line-height:1.4;overflow-y:auto;white-space:pre-wrap}.agreement-hr{border:none;border-top:1px solid rgba(148,163,184,.25);margin:10px 0}.agreement-term{position:relative;font-weight:600;cursor:help}.agreement-term--amber{color:#fbbf24}.agreement-term--green{color:#22c55e}.agreement-term--blue{color:#38bdf8}.agreement-term--highlight{color:#22d3ee}.agreement-term:after{content:attr(data-definition);position:absolute;inset-inline-start:0;bottom:100%;transform:translateY(-4px);padding:6px 8px;max-width:260px;border-radius:8px;background:#020617;border:1px solid #1f2937;color:#e5e7eb;font-size:.7rem;line-height:1.3;opacity:0;pointer-events:none;white-space:normal;z-index:60}.agreement-term:hover:after{opacity:1}.kanban-board{display:grid;gap:8px;font-size:.8rem}.kanban-board--fit{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}.kanban-board--scroll{display:flex;gap:12px;overflow-x:auto;padding:6px 2px;scroll-snap-type:x proximity}.kanban-column{background:#020617;border-radius:10px;border:1px solid #1f2937;display:flex;flex-direction:column;min-width:0;min-height:320px;max-height:calc(100vh - 260px)}.kanban-board--fit .kanban-column{flex:1 1 0}.kanban-column-header{padding:6px 8px;border-bottom:1px solid #1f2937;font-weight:600;font-size:.8rem}.kanban-column-body{padding:6px 8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}@media (max-width: 980px){.overlay-root--dashboard{padding:18px 12px}.board-layout{grid-template-columns:1fr}.timeline-list{max-height:none;overflow-y:visible;padding-right:0}.kanban-column{max-height:420px}}.kanban-card{border-radius:8px;border:1px solid #111827;padding:6px 8px;background:#020617}.kanban-card-title{font-size:.85rem;font-weight:600;margin-bottom:2px}.kanban-card-body{font-size:.75rem;color:#e5e7eb;margin-bottom:2px}.kanban-card-meta{font-size:.7rem;color:#9ca3af}.kanban-card--dragging{opacity:.6;cursor:grabbing}.kanban-card[draggable=true]{cursor:grab}.kanban-card[draggable=true]:active{cursor:grabbing}.kanban-column--droppable{border-color:#22c55e99;background:#22c55e0f}.toggle-row{display:flex;gap:8px;margin-bottom:8px;font-size:.8rem}.toggle-option{display:inline-flex;align-items:center;gap:4px}.toggle-option input[type=radio]{accent-color:#22c55e}
