:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-border: #e2e8f0;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-soft: #dbeafe;--color-success: #16a34a;--color-success-soft: #dcfce7;--color-warning: #d97706;--color-warning-soft: #fef3c7;--color-danger: #dc2626;--color-danger-soft: #fee2e2;--color-info: #0891b2;--color-info-soft: #cffafe;--radius-sm: 6px;--radius-md: 8px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .06);color:var(--color-text-primary);background:var(--color-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-card{display:grid;gap:18px;width:min(100%,520px);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:24px;box-shadow:var(--shadow-sm)}.app-shell{display:grid;min-height:100vh;grid-template-columns:240px minmax(0,1fr)}.desktop-sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--color-border);background:var(--color-surface);padding:20px 16px}.brand{margin-bottom:24px;font-size:18px;font-weight:800}nav{display:grid;gap:6px}nav button{min-height:38px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);padding:8px 10px;text-align:left}nav button:hover,nav button[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary-hover)}.app-main{min-width:0}.topbar{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,320px) auto;gap:12px;align-items:center;min-height:56px;border-bottom:1px solid var(--color-border);background:#fffffff5;padding:10px 24px}.topbar>div{display:grid;gap:3px}.content{display:grid;gap:18px;padding:24px}.screen{display:grid;gap:18px}.page-header,.project-header,.panel-header,.split-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.page-header div,.project-header div,.panel-header div,.split-header div{display:grid;gap:4px}.eyebrow{margin:0;color:var(--color-info);font-size:12px;font-weight:800;text-transform:uppercase}h1{margin:0;font-size:28px;line-height:1.15}.page-header span,.project-header span,.panel-header span,.split-header span,.muted,small{color:var(--color-text-secondary);font-size:12px}label{display:grid;gap:6px;color:var(--color-text-secondary);font-size:12px;font-weight:700}input,select{width:100%;border:1px solid #cbd5e1;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);padding:9px 10px}.login-panel,.inline-create,.external-party-create,.external-dependency-create,.schedule-form{display:grid;gap:10px}.login-panel{grid-template-columns:1fr}.inline-create{grid-template-columns:110px minmax(180px,1fr) auto}.primary-button,.ghost-button,.danger-button{min-height:38px;border-radius:var(--radius-sm);border:1px solid transparent;padding:8px 12px;font-weight:800}.primary-button{background:var(--color-primary);color:#fff}.primary-button:hover{background:var(--color-primary-hover)}.primary-button:disabled{cursor:wait;opacity:.65}.ghost-button{border-color:#cbd5e1;background:var(--color-surface);color:var(--color-text-secondary)}.danger-button{border-color:#fecaca;background:var(--color-danger-soft);color:var(--color-danger)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.metric-card{display:grid;gap:6px;min-height:82px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:14px;box-shadow:var(--shadow-sm)}.metric-card span{color:var(--color-text-secondary);font-size:12px}.metric-card strong{font-size:24px}.dashboard-grid,.admin-layout,.gantt-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.45fr);gap:14px}.admin-layout{grid-template-columns:220px minmax(0,1fr)}.panel,.gantt-timeline,.unscheduled-panel,.permission-box,.empty-state{display:grid;align-content:start;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:14px;box-shadow:var(--shadow-sm)}.project-tabs,.admin-nav{display:flex;gap:8px;overflow-x:auto;border-bottom:1px solid var(--color-border);padding-bottom:8px}.admin-nav{display:grid;align-content:start;border-right:1px solid var(--color-border);border-bottom:0;padding:0 12px 0 0}.project-tabs button,.admin-nav button{white-space:nowrap}.role-badge,.state-badge,.external-badge,.priority,.gantt-warning{display:inline-flex;width:fit-content;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}.role-owner,.role-admin,.state-active{background:var(--color-success-soft);color:var(--color-success)}.role-member,.state-completed{background:var(--color-primary-soft);color:var(--color-primary)}.role-viewer,.state-archived{background:var(--color-surface-muted);color:var(--color-text-secondary)}.priority-low{background:var(--color-surface-muted);color:#64748b}.priority-medium{background:var(--color-primary-soft);color:var(--color-primary)}.priority-high{background:var(--color-warning-soft);color:var(--color-warning)}.priority-critical,.external-badge.overdue,.gantt-warning.risk{background:var(--color-danger-soft);color:var(--color-danger)}.external-badge,.gantt-warning.warning{background:var(--color-warning-soft);color:var(--color-warning)}.member-table,.project-table,.external-report,.report-table,.audit-table{display:grid;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.member-row,.project-row,.external-row,.report-row,.audit-row{display:grid;gap:12px;align-items:center;border-top:1px solid var(--color-border);padding:10px 12px}.member-row{grid-template-columns:minmax(180px,1fr) 150px 104px}.project-row{grid-template-columns:minmax(180px,1fr) 70px 120px minmax(250px,auto)}.external-row{grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) 130px 110px}.report-row{grid-template-columns:minmax(180px,1fr) 110px 140px 150px 92px}.audit-row{grid-template-columns:minmax(180px,1fr) 120px 150px 190px}.member-row:first-child,.project-row:first-child,.external-row:first-child,.report-row:first-child,.audit-row:first-child{border-top:0}.member-head,.project-head,.external-head,.report-head,.audit-head{background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px;font-weight:800;text-transform:uppercase}.row-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:8px}.status-strip{display:flex;flex-wrap:wrap;gap:8px}.status-strip span,.mini-list span,.mini-list button,.unscheduled-list button{display:grid;gap:3px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:10px;color:var(--color-text-secondary);text-align:left}.mini-list{display:grid;gap:8px}.kanban-board{display:grid;grid-auto-columns:minmax(240px,1fr);grid-auto-flow:column;gap:12px;overflow-x:auto;padding-bottom:6px}.kanban-column{display:grid;align-content:start;gap:10px;min-height:300px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);padding:10px}.kanban-over{border-color:var(--color-primary);background:var(--color-primary-soft)}.kanban-column-header,.kanban-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.kanban-column-header span{border-radius:999px;background:var(--color-surface);padding:3px 7px;color:var(--color-text-secondary);font-size:12px;font-weight:800}.kanban-card-stack{display:grid;gap:8px}.kanban-card{display:grid;gap:10px;min-height:98px;touch-action:none;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:10px;box-shadow:var(--shadow-sm)}.kanban-card div{display:grid;gap:5px}.kanban-card span,.kanban-empty{color:var(--color-text-secondary);font-size:12px}.kanban-dragging{opacity:.75;z-index:5}.kanban-card-over{border-color:var(--color-primary)}.kanban-empty{border:1px dashed #cbd5e1;border-radius:var(--radius-md);padding:14px;text-align:center}.gantt-layout{grid-template-columns:minmax(240px,.32fr) minmax(0,1fr)}.gantt-head,.gantt-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,1fr) 180px;gap:10px;align-items:center}.gantt-head{color:var(--color-text-secondary);font-size:12px;font-weight:800;text-transform:uppercase}.gantt-row{min-height:84px;border-top:1px solid var(--color-border);padding-top:8px}.gantt-row-meta,.gantt-dates,.gantt-warnings,.unscheduled-list{display:grid;gap:4px}.gantt-track{min-height:34px;border-radius:var(--radius-sm);background:var(--color-surface-muted);padding:5px}.gantt-bar{display:inline-flex;align-items:center;justify-content:end;min-width:68px;height:24px;border-radius:5px;background:var(--color-primary);padding:0 8px;color:#fff;font-size:12px;font-weight:800}.gantt-warnings{grid-column:1 / -1}.schedule-form{grid-column:1 / -1;grid-template-columns:minmax(220px,1fr) repeat(3,150px) 110px;align-items:end}.report-controls{display:grid;grid-template-columns:minmax(160px,220px) minmax(180px,260px);gap:10px}.external-party-create{grid-template-columns:140px minmax(180px,1fr) minmax(180px,1fr) 110px;align-items:end}.external-dependency-create{grid-template-columns:minmax(190px,1fr) minmax(160px,1fr) minmax(150px,.7fr) minmax(180px,1fr) 140px 150px;align-items:end}.empty-report{grid-template-columns:1fr;color:var(--color-text-secondary);font-size:13px}.status-message{margin:0;border:1px solid #bbf7d0;border-radius:var(--radius-md);background:#f0fdf4;padding:12px 14px;color:#15803d}.status-error{border-color:#fecaca;background:#fef2f2;color:var(--color-danger)}.mobile-bottom-nav{display:none}@media(max-width:900px){.app-shell{grid-template-columns:1fr;padding-bottom:72px}.desktop-sidebar{display:none}.topbar{grid-template-columns:1fr auto;padding:10px 16px}.workspace-switcher{display:none}.content{padding:16px}.page-header,.project-header,.panel-header,.split-header{align-items:start;flex-direction:column}.inline-create,.dashboard-grid,.admin-layout,.gantt-layout,.member-row,.project-row,.external-row,.report-row,.audit-row,.schedule-form,.external-party-create,.external-dependency-create,.report-controls{grid-template-columns:1fr}.admin-nav{display:flex;border-right:0;border-bottom:1px solid var(--color-border);padding:0 0 8px}.row-actions{justify-content:start}.kanban-board{grid-auto-flow:row;grid-auto-columns:unset;grid-template-columns:1fr}.gantt-head,.gantt-row{grid-template-columns:1fr}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:5;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--color-border);background:var(--color-surface);padding:6px}.mobile-bottom-nav button{min-height:48px;border-radius:var(--radius-sm);text-align:center}h1{font-size:24px}}
