:root{color:#292b25;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#f8f5ef;--surface:#fffdf8;--surface-low:#f0ebe2;--surface-high:#e5dfd3;--ink:#292b25;--muted:#777568;--outline:#d7d0c2;--primary:#5f6f52;--primary-ink:#fff;--secondary:#ead7ce;--warning:#b9822c;--danger:#b95b52;--radius:8px;background:#f8f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{border:1px solid var(--outline);background:var(--surface);width:100%;min-width:0;color:var(--ink);border-radius:6px;outline:none}input,select{height:38px;padding:0 11px}textarea{resize:vertical;padding:10px 11px}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #5f6f5224}label{min-width:0;color:var(--muted);gap:5px;font-size:12px;font-weight:700;display:grid}.app-shell{min-height:100vh}.topbar{z-index:10;border-bottom:1px solid var(--outline);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf8d6;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:18px;min-height:64px;padding:0 20px;display:grid;position:sticky;top:0}.wordmark{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:800;text-decoration:none}.topnav{gap:6px;height:64px;display:flex;overflow-x:auto}.topnav-link{min-width:max-content;color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:0 10px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.topnav-link.active{border-color:var(--primary);color:var(--ink)}.top-actions{align-items:center;gap:8px;display:flex}.top-search{border:1px solid var(--outline);background:var(--surface);border-radius:4px;grid-template-columns:none;align-items:center;gap:8px;width:220px;height:36px;padding:0 10px;display:flex}.top-search input{background:0 0;border:0;height:auto;padding:0;font-size:12px}.operator-avatar,.icon-button{border:1px solid var(--outline);background:var(--surface);width:36px;height:36px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.workspace{padding:14px}.panel{border:1px solid var(--outline);border-radius:var(--radius);background:var(--surface);min-width:0}.panel:not(.table-panel,.timeline-main,.document-list-panel,.template-panel){padding:14px}.panel-heading{border-bottom:1px solid var(--outline);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.panel:not(.table-panel,.timeline-main,.document-list-panel,.template-panel) .panel-heading{border-bottom:0;padding:0 0 12px}.section-label{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0;font-size:11px;font-weight:900}.panel-meta,.inline-state{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.spin{animation:.9s linear infinite spin}.skeleton-page{gap:12px;width:100%;display:grid}.skeleton-line{background-color:#d7d0c273;background-image:linear-gradient(90deg,#0000,#fffdf8b3,#0000),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:220% 100%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #292b2514;border-radius:6px;height:52px;animation:1.15s linear infinite skeleton-shimmer;display:block;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{to{background-position:-220% 0}}.dashboard-layout{grid-template-columns:minmax(0,1.2fr) 360px;gap:14px;display:grid}.metric-grid{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{border:1px solid var(--outline);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:center;min-height:98px;padding:14px;display:flex}.metric-card span,.money-stack span{color:var(--muted);font-size:11px;font-weight:800;display:block}.metric-card strong,.money-stack strong{color:var(--ink);margin-top:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px;line-height:1.1;display:block}.metric-icon{color:var(--primary)}.metric-primary{border-color:#5f6f5273}.metric-warning{border-color:#b9822c73}.metric-danger{border-color:#b95b5273}.flow-panel,.activity-panel{min-height:260px}.settlement-preview,.checks-panel,.overdue-panel{min-height:180px}.flow-steps,.money-stack,.activity-list,.project-tree,.right-stack,.stack-form,.compact-form,.entity-summary,.summary-stack{gap:10px;display:grid}.flow-panel>.flow-steps,.settlement-preview>.money-stack,.overdue-panel>.overdue-list,.checks-panel>.check-item,.activity-panel>.activity-list{padding:14px}.muted-line{color:var(--muted);margin:0;padding:14px;font-size:13px;font-weight:700}.overdue-list{gap:9px;display:grid}.overdue-item{background:#b95b5214;border:1px solid #b95b5247;border-radius:7px;gap:3px;padding:10px;display:grid}.overdue-item strong{font-size:13px}.overdue-item span{color:var(--muted);font-size:11px;font-weight:800}.flow-step{background:var(--surface-low);border-radius:8px;gap:8px;padding:12px;display:grid}.flow-step>div:first-child{justify-content:space-between;gap:12px;font-size:13px;display:flex}.track{background:var(--surface-high);border-radius:999px;height:8px;overflow:hidden}.track i{border-radius:inherit;background:var(--primary);height:100%;display:block}.flow-warning .track i{background:var(--warning)}.flow-danger .track i{background:var(--danger)}.check-item{color:var(--ink);grid-template-columns:none;align-items:center;gap:10px;padding:10px 14px;display:flex}.check-item input{width:16px;height:16px}.activity-item{border-bottom:1px solid #292b2514;grid-template-columns:10px 1fr;align-items:start;gap:10px;padding:10px 0;display:grid}.activity-item span{background:var(--primary);border-radius:999px;width:8px;height:8px;margin-top:6px}.activity-item p{color:var(--ink);margin:0;font-size:13px}.timeline-layout{grid-template-columns:286px minmax(0,1fr) 362px;align-items:start;gap:14px;display:grid}.timeline-canvas-layout{grid-template-columns:280px minmax(620px,1fr)}.directory-layout{grid-template-columns:230px minmax(0,1fr) 362px;align-items:start;gap:14px;display:grid}.documents-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.75fr) 362px;align-items:start;gap:14px;display:grid}.crud-layout,.settlement-layout,.me-layout{grid-template-columns:minmax(0,1fr) 362px;align-items:start;gap:14px;display:grid}.settlement-layout .metric-grid{grid-column:1/-1}.tree-panel,.table-panel,.timeline-main,.document-list-panel,.template-panel,.right-stack,.profile-panel{min-height:calc(100vh - 92px)}.compact-form,.filter-rail .stack-form{border-bottom:1px solid var(--outline);padding:14px}.tree-toolbar{border-bottom:1px solid var(--outline);justify-content:flex-end;padding:12px 14px;display:flex}.project-tree{gap:8px;padding:14px;display:grid}.project-tree-item{padding-left:calc(var(--tree-level,0) * 18px);grid-template-columns:24px minmax(0,1fr);align-items:stretch;gap:4px;display:grid;position:relative}.project-tree-item:before{left:calc(var(--tree-level,0) * 18px + 11px);content:"";background:#292b251f;width:1px;position:absolute;top:-8px;bottom:-8px}.project-tree-item[style*="--tree-level: 0"]:before{display:none}.tree-disclosure{z-index:1;width:24px;min-height:58px;color:var(--muted);background:0 0;border:0;place-items:center;display:grid;position:relative}.tree-disclosure.placeholder{cursor:default}.project-node,.task-bar{border:1px solid var(--outline);background:var(--surface);width:100%;color:var(--ink);text-align:left}.project-node{z-index:1;border-left-width:5px;border-radius:6px;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:58px;padding:10px;display:grid;position:relative}.project-detail-button{border:1px solid var(--outline);background:var(--surface-low);min-width:42px;height:26px;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:900;display:inline-flex}.project-node.project-type-group{background:#f7f3eb;font-weight:900}.project-node-icon{color:var(--primary);place-items:center;display:grid}.project-node.active,.project-node:hover,.task-bar.active,.task-bar:hover{background:var(--surface-low)}.project-node-copy,.project-node-copy strong,.project-node-copy small,.task-bar span,.task-bar small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.project-node-copy small,.task-bar small{color:var(--muted);margin-top:4px;font-size:11px}.canvas-panel{overflow:hidden}.timeline-controls,.preset-palette{border-bottom:1px solid var(--outline);align-items:center;gap:8px;padding:12px 14px;display:flex}.timeline-controls{flex-wrap:wrap}.segmented-control{border:1px solid var(--outline);background:var(--surface);border-radius:6px;grid-template-columns:repeat(3,38px);height:34px;display:inline-grid;overflow:hidden}.segmented-control button{border:0;border-right:1px solid var(--outline);color:var(--muted);background:0 0;font-size:12px;font-weight:900}.segmented-control button:last-child{border-right:0}.segmented-control button.active{background:var(--primary);color:var(--primary-ink)}.toggle-chip{border:1px solid var(--outline);background:var(--surface);height:34px;color:var(--ink);border-radius:6px;grid-template-columns:none;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.toggle-chip input,.checklist-box input{width:auto;height:auto}.timeline-tool-button{border:1px solid var(--outline);background:var(--surface);height:36px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 11px;font-size:12px;font-weight:900;display:inline-flex}.timeline-tool-button.active{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.preset-palette{background:var(--surface-low);flex-wrap:wrap}.preset-palette small{color:var(--muted);flex:260px;font-size:11px}.preset-token{border:1px solid var(--outline);background:var(--surface);height:34px;color:var(--ink);border-radius:6px;align-items:center;gap:7px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.preset-token strong{color:var(--muted);font-size:11px}.preset-manager-modal{width:min(720px,100vw - 32px)}.preset-create-form{border-bottom:1px solid var(--outline);padding-bottom:14px}.preset-manager-list{gap:10px;margin-top:14px;display:grid}.preset-manager-item{border:1px solid var(--outline);background:var(--surface-low);border-radius:6px;gap:10px;padding:12px;display:grid}.preset-summary{grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;display:grid}.preset-summary strong,.preset-summary small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.preset-summary small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:800}.preset-color-chip{border:1px solid var(--outline);border-radius:50%;width:18px;height:18px}.preset-olive{border-color:#9ba783}.preset-rose{border-color:#d7a89c}.preset-blue{border-color:#8ca7bd}.preset-amber{border-color:#d5ad69}.timeline-canvas{--timeline-cell:64px;overscroll-behavior:contain;scrollbar-width:none;background:#fbf8f1;max-width:100%;min-height:160px;overflow:auto hidden}.timeline-canvas::-webkit-scrollbar{display:none}.timeline-sheet{min-width:100%;position:relative}.timeline-sheet.is-empty{width:100%}.timeline-date-header{z-index:3;grid-auto-columns:var(--timeline-cell);border-bottom:1px solid var(--outline);background:var(--surface);grid-auto-flow:column;display:grid;position:sticky;top:0}.date-cell{height:54px;color:var(--ink);border-right:1px solid #292b251a;align-content:center;padding:7px 6px;display:grid}.date-cell strong,.date-cell small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.date-cell strong{font-size:12px}.date-cell small{color:var(--muted);font-size:10px}.date-cell.is-weekend,.drop-column.is-weekend{background:#ead7ce59}.date-cell.is-holiday,.drop-column.is-holiday{background:#b95b5214}.date-cell.is-today{color:var(--danger)}.timeline-grid{grid-auto-columns:var(--timeline-cell);min-height:var(--timeline-row-height,44px);grid-auto-flow:column;display:grid;position:relative}.timeline-sheet.is-empty .timeline-grid{min-width:100%;display:block}.drop-column{background-image:linear-gradient(#d7d0c273 1px,#0000 1px);background-size:100% var(--timeline-row-height,44px);border-right:1px solid #292b2514;min-height:100%}.timeline-canvas.compact .drop-column,.timeline-canvas.compact .timeline-grid{background-size:100% var(--timeline-row-height,44px)}.drop-column:hover{background-color:#5f6f5214}.today-line{z-index:2;background:var(--danger);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.selection-rectangle{z-index:5;pointer-events:none;background:#5f6f5224;border:1px solid #5f6f52ad;position:absolute}.timeline-empty{z-index:1;width:min(520px,100vw - 320px);height:var(--timeline-row-height,44px);text-align:center;place-items:center;min-height:92px;padding:16px;display:grid;position:absolute;top:0;left:0}.timeline-task-bar{z-index:4;min-width:58px;height:var(--task-bar-height,28px);border:1px solid var(--outline);background:var(--surface);color:var(--ink);text-align:left;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform, width;border-radius:6px;align-content:center;padding:4px 16px;display:grid;position:absolute;overflow:hidden;box-shadow:0 8px 20px #292b2514}.timeline-task-bar.active,.timeline-task-bar:hover{border-color:var(--primary);background:#f5f7ef}.timeline-task-bar.multi-selected{outline-offset:2px;outline:2px solid #5f6f526b}.timeline-task-bar.dragging{z-index:6;border-color:var(--danger);cursor:grabbing;box-shadow:0 12px 28px #292b2529}.timeline-task-bar.save-pending{border-style:dashed}.timeline-task-bar strong,.timeline-task-bar small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.timeline-task-bar strong{font-size:12px}.timeline-task-bar small{color:var(--muted);font-size:10px}.timeline-task-bar .resize-handle{cursor:ew-resize;background:#5f6f5229;width:10px;position:absolute;top:0;bottom:0}.timeline-task-bar .resize-handle.left{left:0}.timeline-task-bar .resize-handle.right{right:0}.task-doing,.task-in_progress,.task-waiting{border-color:var(--primary)}.task-review,.task-revision,.task-hold{border-color:var(--warning)}.task-done,.task-canceled{opacity:.72}.inspector-modal{width:min(520px,100vw - 32px);max-height:calc(100vh - 80px);overflow-y:auto}.task-inspector-modal{width:min(620px,100vw - 32px)}.detail-block{border:1px solid var(--outline);background:var(--surface-low);border-radius:6px;justify-content:space-between;align-items:center;min-height:40px;padding:10px;font-size:12px;display:flex}.detail-block span{color:var(--muted);font-weight:800}.inspector-section{gap:4px;padding:2px 0;display:grid}.inspector-kicker{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:900}.inspector-divider{background:#292b251a;height:1px;margin:4px 0}.nested-task-panel{padding-top:2px}.checklist-box{border:1px solid var(--outline);border-radius:6px;gap:8px;padding:10px;display:grid}.checklist-box label{color:var(--ink);align-items:center;gap:8px;display:flex}.detail-placeholder{color:var(--muted);gap:8px;padding:16px;display:grid}.detail-placeholder strong{color:var(--ink)}.modal-scrim{z-index:20;background:#292b2538;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.project-create-modal{border:1px solid var(--outline);background:var(--surface);border-radius:8px;gap:10px;width:min(420px,100%);padding:14px;display:grid;box-shadow:0 24px 80px #292b2533}.modal-heading{justify-content:space-between;align-items:center;display:flex}.create-modal{border:1px solid var(--outline);background:var(--surface);border-radius:8px;gap:10px;width:min(460px,100%);padding:14px;display:grid;box-shadow:0 24px 80px #292b2533}.editor-actions{justify-content:flex-end;gap:8px;display:flex}.entity-summary{padding:14px}.summary-row{border:1px solid var(--outline);background:var(--surface-low);border-radius:6px;justify-content:space-between;align-items:center;gap:16px;min-height:38px;padding:10px;font-size:12px;display:flex}.summary-row span{color:var(--muted);font-weight:800}.summary-row strong{color:var(--ink);text-align:right;word-break:break-word}.data-table-wrap{max-width:100%;overflow:auto}.data-table{border-spacing:0;border-collapse:separate;width:100%;min-width:720px;font-size:13px}.data-table th,.data-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #292b2514;padding:11px 12px}.data-table th{z-index:1;background:var(--surface);color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:900;position:sticky;top:0}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover,.data-table tbody tr.selected{background:#5f6f5214}.status-badge{max-width:100%;min-height:24px;color:var(--primary);white-space:nowrap;background:#5f6f521a;border:1px solid #5f6f5252;border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.status-review,.status-watch,.status-requested,.status-ready,.status-draft,.status-planned{color:var(--warning);background:#b9822c1a;border-color:#b9822c61}.status-risk{color:var(--danger);background:#b95b521a;border-color:#b95b5261}.editor-panel{overflow:hidden}.editor-panel .panel-heading,.editor-panel .stack-form{padding:14px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.field{gap:4px;min-width:0;display:grid}.field>span{color:var(--muted);font-size:11px;font-weight:500}.tree-heading-meta{align-items:center;gap:8px;display:flex}.tree-note{max-width:150px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.action-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.action-button{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 13px;font-size:13px;font-weight:900;display:inline-flex}.action-primary{background:var(--primary);color:var(--primary-ink)}.action-secondary{border-color:var(--outline);background:var(--surface);color:var(--ink)}.action-danger{color:var(--danger);background:0 0;border-color:#b95b527a}.empty-state{text-align:center;min-height:150px;color:var(--muted);place-items:center;gap:10px;padding:24px;display:grid}.empty-state strong{color:var(--ink);font-size:20px;font-weight:500}.empty-state p{max-width:320px;margin:0;font-size:13px}.error-state{color:var(--danger);align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex}.rail-stats{border-bottom:1px solid var(--outline);justify-content:space-between;align-items:center;padding:14px;display:flex}.rail-stats span{color:var(--muted);font-size:12px}.profile-head{border-bottom:1px solid var(--outline);align-items:center;gap:12px;padding:14px;display:flex}.profile-head strong,.profile-head span{display:block}.profile-head span{color:var(--muted);font-size:12px}.token-grid{gap:8px;padding:14px;display:grid}.token-row{border:1px solid var(--outline);background:var(--surface);border-radius:6px;grid-template-columns:180px minmax(120px,1fr) 80px;align-items:center;gap:12px;padding:10px;display:grid}.token-row span{color:var(--muted);font-size:12px;font-weight:800}.token-row code{color:var(--primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.settings-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;display:grid}@media (width<=1180px){.dashboard-layout,.timeline-layout,.directory-layout,.documents-layout,.crud-layout,.settlement-layout,.settings-layout{grid-template-columns:1fr}.tree-panel,.table-panel,.timeline-main,.document-list-panel,.template-panel,.right-stack,.profile-panel{min-height:auto}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.topbar{grid-template-columns:1fr auto;min-height:auto;padding:10px}.wordmark{grid-column:1}.topnav{order:3;grid-column:1/-1;height:42px}.top-actions{grid-column:2}.top-search{display:none}.workspace{padding:10px}.metric-grid,.metric-grid.compact,.form-row,.action-row,.token-row{grid-template-columns:1fr}.data-table{min-width:640px}.task-bar{max-width:100%}}.auth-container{background:var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--outline);border-radius:var(--radius);background:var(--surface);width:100%;max-width:420px;padding:32px}.auth-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.brand-logo{background:var(--primary);width:48px;height:48px;color:var(--primary-ink);border-radius:50%;place-items:center;margin-bottom:12px;display:grid}.auth-brand h1{color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:800}.auth-brand p{color:var(--muted);margin:4px 0 0;font-size:13px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.input-with-icon{align-items:center;width:100%;display:flex;position:relative}.input-with-icon svg{color:var(--muted);position:absolute;left:12px}.input-with-icon input{padding-left:36px}.field-error{color:var(--danger);margin:0;font-size:12px;font-weight:800;line-height:1.4}.btn-auth-primary{background:var(--primary);width:100%;min-height:42px;color:var(--primary-ink);border:none;border-radius:6px;justify-content:center;align-items:center;margin-top:8px;padding:0 16px;font-size:14px;font-weight:900;display:inline-flex}.btn-auth-primary:hover{opacity:.9}.btn-auth-primary:disabled{cursor:not-allowed;opacity:.52}.auth-links{justify-content:space-between;gap:12px;margin-top:20px;display:flex}.auth-links button{color:var(--muted);background:0 0;border:none;padding:0;font-size:12px;font-weight:800;text-decoration:underline}.auth-links button:hover{color:var(--ink)}.auth-alert{border:1px solid #0000;border-radius:6px;align-items:start;gap:8px;margin-bottom:18px;padding:10px 12px;font-size:12px;line-height:1.4;display:flex}.alert-error{color:var(--danger);background:#b95b5214;border-color:#b95b5261}.alert-info{color:var(--primary);background:#5f6f5214;border-color:#5f6f5261}.alert-debug{color:var(--warning);background:#b9822c14;border-color:#b9822c61;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
