:root{--color-sky-50:#f0f7ff;--color-sky-100:#e0efff;--color-sky-200:#b9ddff;--color-sky-300:#7cc4ff;--color-sky-400:#36a9ff;--color-sky-500:#0090f0;--color-sky-600:#0072cd;--color-sky-700:#005aa6;--color-sky-800:#004d89;--color-sky-900:#003f71;--color-gray-50:#f8fafc;--color-gray-100:#f1f5f9;--color-gray-200:#e2e8f0;--color-gray-300:#cbd5e1;--color-gray-400:#94a3b8;--color-gray-500:#64748b;--color-gray-600:#475569;--color-gray-700:#334155;--color-gray-800:#1e293b;--color-gray-900:#0f172a;--color-status-active:#0090f0;--color-status-recommended:#0d9488;--color-status-on-hold:#f59e0b;--color-status-completed:#475569;--color-tier-1:#0d9488;--color-tier-2:#0090f0;--color-tier-3:#f59e0b;--color-tier-4:#94a3b8;--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);color:var(--color-gray-800);background:var(--color-gray-50);min-height:100vh;line-height:1.6}#app{min-height:100vh}.loading{min-height:100vh;color:var(--color-gray-500);flex-direction:column;justify-content:center;align-items:center;display:flex}.loading h1{font-size:var(--font-size-2xl);color:var(--color-sky-600);margin-bottom:var(--space-2);font-weight:700}.sign-in-page{min-height:100vh;padding:var(--space-4);background:linear-gradient(135deg, var(--color-sky-50) 0%, var(--color-gray-100) 100%);justify-content:center;align-items:center;display:flex}.sign-in-card{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-10);text-align:center;background:#fff;width:100%;max-width:420px}.sign-in-logo img{height:64px;margin-bottom:var(--space-6)}.sign-in-card h1{font-size:var(--font-size-2xl);color:var(--color-gray-900);margin-bottom:var(--space-2);font-weight:700}.sign-in-subtitle{color:var(--color-gray-500);font-size:var(--font-size-sm);margin-bottom:var(--space-8);line-height:1.5}.sign-in-subtitle a{color:var(--color-sky-600);text-decoration:none}.sign-in-subtitle a:hover{text-decoration:underline}.sign-in-providers{gap:var(--space-3);flex-direction:column;display:flex}.sign-in-btn{justify-content:center;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-gray-700);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;background:#fff;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.sign-in-btn:hover{background:var(--color-gray-50);border-color:var(--color-gray-300);box-shadow:var(--shadow-sm)}.sign-in-btn:active{background:var(--color-gray-100)}.sign-in-btn:disabled{opacity:.6;cursor:not-allowed}.sign-in-btn svg{flex-shrink:0}.sign-in-divider{align-items:center;gap:var(--space-4);margin:var(--space-6) 0;color:var(--color-gray-400);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;display:flex}.sign-in-divider:before,.sign-in-divider:after{content:"";background:var(--color-gray-200);flex:1;height:1px}.sign-in-email-form{gap:var(--space-3);flex-direction:column;display:flex}.sign-in-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-800);background:#fff;transition:border-color .15s,box-shadow .15s}.sign-in-input:focus{border-color:var(--color-sky-400);outline:none;box-shadow:0 0 0 3px #0090f01a}.sign-in-input::placeholder{color:var(--color-gray-400)}.sign-in-email-btn{background:var(--color-sky-600);color:#fff;border-color:var(--color-sky-600);margin-top:var(--space-1)}.sign-in-email-btn:hover{background:var(--color-sky-700);border-color:var(--color-sky-700)}.sign-in-error{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:#991b1b;font-size:var(--font-size-sm);text-align:left;background:#fef2f2;border:1px solid #fecaca}.portal-shell{background:var(--color-gray-50);min-height:100vh}.portal-header{border-bottom:1px solid var(--color-gray-200);padding:var(--space-4) var(--space-6);background:#fff}.portal-header-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.portal-logo{height:36px}.portal-user{align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);display:flex}.portal-user-name{color:var(--color-gray-700);font-weight:600}.portal-user-role{color:var(--color-gray-400);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em}.portal-sign-out{border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--color-gray-500);cursor:pointer;background:0 0;transition:background .15s,border-color .15s}.portal-sign-out:hover{background:var(--color-gray-50);border-color:var(--color-gray-300)}.portal-main{max-width:1200px;padding:var(--space-10) var(--space-6);margin:0 auto}.portal-main h2{font-size:var(--font-size-2xl);color:var(--color-gray-900);margin-bottom:var(--space-2);font-weight:700}.portal-main p{color:var(--color-gray-500);margin-bottom:var(--space-4)}.portal-debug{font-size:var(--font-size-xs);color:var(--color-gray-400);margin-top:var(--space-8);padding:var(--space-3) var(--space-4);background:var(--color-gray-100);border-radius:var(--radius-md);font-family:monospace}@media (width<=640px){.portal-header{padding:var(--space-3) var(--space-4)}.portal-user-name,.portal-user-role{display:none}.portal-main{padding:var(--space-6) var(--space-4)}}.roadmap-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.roadmap-header-left{flex:1;min-width:0}.roadmap-title{font-size:var(--font-size-2xl);color:var(--color-gray-900);margin:0;font-weight:700}.client-selector{font-family:var(--font-family);font-size:var(--font-size-lg);color:var(--color-gray-900);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;background:#fff;min-width:200px;font-weight:600}.client-selector:focus{border-color:var(--color-sky-400);outline:none;box-shadow:0 0 0 3px #0090f026}.roadmap-controls{align-items:center;gap:var(--space-3);display:flex}.view-toggle{background:var(--color-gray-100);border-radius:var(--radius-md);padding:2px;display:flex}.view-btn{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-500);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer;background:0 0;border:none;font-weight:500;transition:all .15s}.view-btn:hover{color:var(--color-gray-700)}.view-btn-active{color:var(--color-gray-900);box-shadow:var(--shadow-sm);background:#fff}.seed-btn,.seed-roadmap-btn,.reseed-btn{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-sky-600);background:var(--color-sky-50);border:1px solid var(--color-sky-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:500;transition:all .15s}.seed-btn:hover,.seed-roadmap-btn:hover,.reseed-btn:hover{background:var(--color-sky-100)}.seed-btn:disabled,.seed-roadmap-btn:disabled,.reseed-btn:disabled{opacity:.6;cursor:not-allowed}.roadmap-loading,.roadmap-empty,.roadmap-error{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-gray-400);font-size:var(--font-size-base)}.roadmap-error{color:var(--color-status-on-hold)}.roadmap-cards{gap:var(--space-3);flex-direction:column;display:flex}.tier-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.tier-count{font-size:var(--font-size-xs);color:var(--color-gray-400);background:var(--color-gray-100);margin-left:var(--space-1);border-radius:999px;padding:1px 8px;font-weight:500}.roadmap-card{border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background:#fff;transition:box-shadow .15s,border-color .15s;overflow:hidden}.roadmap-card:hover{border-color:var(--color-gray-300);box-shadow:var(--shadow-md)}.card-drag-handle{width:32px;color:var(--color-gray-300);cursor:grab;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;transition:color .15s;display:flex}.card-drag-handle:hover{color:var(--color-gray-500)}.card-drag-handle:active{cursor:grabbing}.card-header{align-items:center;gap:var(--space-3);padding:var(--space-4);padding-left:0;display:flex}.card-rank{width:28px;height:28px;font-size:var(--font-size-sm);color:var(--color-sky-600);background:var(--color-sky-50);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.card-title-group{flex:1;min-width:0}.card-title{font-size:var(--font-size-base);color:var(--color-gray-900);margin:0;font-weight:600;line-height:1.3}.card-summary{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:2px 0 0;line-height:1.4}.card-meta{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.card-score{font-size:var(--font-size-lg);color:var(--color-gray-800);font-weight:700}.card-tier{font-size:var(--font-size-xs);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 8px;font-weight:600}.card-status{font-size:var(--font-size-xs);white-space:nowrap;border-radius:999px;padding:2px 8px;font-weight:500}.status-recommended{color:var(--color-status-recommended);background:#f0fdfa}.status-active{color:var(--color-status-active);background:var(--color-sky-50)}.status-completed{color:var(--color-status-completed);background:var(--color-gray-100)}.status-paused{color:#92400e;background:#fffbeb}.status-killed{color:var(--color-gray-500);background:var(--color-gray-100)}.card-expand-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-gray-400);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.card-expand-btn:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.card-expanded .card-expand-btn svg{transform:rotate(180deg)}.card-details{border-top:1px solid var(--color-gray-100);padding:var(--space-6);background:var(--color-gray-50)}.card-details-grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}.card-detail-section h4{font-size:var(--font-size-sm);color:var(--color-gray-700);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.card-description{font-size:var(--font-size-sm);color:var(--color-gray-600);line-height:1.6}.card-kpis{gap:var(--space-4);flex-wrap:wrap;display:flex}.card-kpi{flex-direction:column;gap:2px;min-width:140px;display:flex}.kpi-label{font-size:var(--font-size-xs);color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.03em}.kpi-value{font-size:var(--font-size-sm);color:var(--color-gray-800);font-weight:600}.score-breakdown{gap:var(--space-3);flex-direction:column;display:flex}.score-row{align-items:center;gap:var(--space-2);grid-template-columns:80px 1fr 40px;display:grid}.score-label{font-size:var(--font-size-xs);color:var(--color-gray-500);font-weight:500}.score-track{background:var(--color-gray-200);border-radius:999px;height:6px;overflow:hidden}.score-fill{background:var(--color-sky-500);border-radius:999px;height:100%;transition:width .3s}.score-value{font-size:var(--font-size-xs);color:var(--color-gray-700);text-align:right;font-weight:600}.score-justification{font-size:var(--font-size-xs);color:var(--color-gray-400);grid-column:1/-1;margin-top:-4px;padding-left:80px;line-height:1.4}@media (pointer:coarse){.kanban-card{padding:var(--space-4)}.view-btn{min-height:44px}.card-expand-btn,.detail-panel-close{width:44px;height:44px}}.card-ghost{opacity:.4}.card-chosen{box-shadow:var(--shadow-lg);border-color:var(--color-sky-300)}.kanban-board{gap:var(--space-4);grid-template-columns:repeat(4,1fr);min-height:400px;display:grid}.kanban-column{background:var(--color-gray-100);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.kanban-column-header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--color-gray-200);background:#fff;display:flex}.kanban-column-title{font-size:var(--font-size-sm);color:var(--color-gray-700);flex:1;font-weight:600}.kanban-column-body{gap:var(--space-2);padding:var(--space-3);flex-direction:column;flex:1;min-height:80px;display:flex;overflow-y:auto}.kanban-card{border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-3);cursor:grab;background:#fff;transition:box-shadow .15s,border-color .15s}.kanban-card:hover{border-color:var(--color-gray-300);box-shadow:var(--shadow-md)}.kanban-card:active{cursor:grabbing}.kanban-card-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.kanban-card-header .card-score{font-size:var(--font-size-sm);color:var(--color-gray-800);font-weight:700}.kanban-card-header .card-status{font-size:10px}.kanban-card-title{font-size:var(--font-size-sm);color:var(--color-gray-900);margin:0 0 4px;font-weight:600;line-height:1.3}.kanban-card-summary{font-size:var(--font-size-xs);color:var(--color-gray-500);margin:0 0 var(--space-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.kanban-card-kpis{gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.kanban-kpi{flex-direction:column;flex:1;min-width:0;display:flex}.kanban-kpi-label{color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.03em;font-size:9px;font-weight:600}.kanban-kpi-value{font-size:var(--font-size-xs);color:var(--color-gray-600);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.kanban-card-roi{margin-bottom:var(--space-2);flex-direction:column;display:flex}.kanban-card-roi .kanban-kpi-label{color:var(--color-status-recommended);margin-bottom:1px;font-size:9px}.kanban-roi-value{font-size:var(--font-size-xs);color:var(--color-gray-600);font-weight:400;line-height:1.4}.detail-panel-wrapper{z-index:1000;pointer-events:none;position:fixed;inset:0}.detail-panel-wrapper.detail-panel-open{pointer-events:auto}.detail-panel-backdrop{opacity:0;background:#0f172a66;transition:opacity .25s;position:absolute;inset:0}.detail-panel-open .detail-panel-backdrop{opacity:1}.detail-panel{width:520px;max-width:100vw;padding:var(--space-6);background:#fff;transition:transform .25s;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-8px 0 30px #00000026}.detail-panel-open .detail-panel{transform:translate(0)}.detail-panel-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.detail-panel-title-row{align-items:center;gap:var(--space-2);display:flex}.detail-panel-title-row .card-score{font-size:var(--font-size-xl);font-weight:700}.detail-panel-close{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-gray-400);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.detail-panel-close:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.detail-panel-name{font-size:var(--font-size-xl);color:var(--color-gray-900);margin:0 0 var(--space-1);font-weight:700}.detail-panel-summary{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 var(--space-6);line-height:1.5}.detail-panel-section{margin-bottom:var(--space-6)}.detail-panel-section h4{font-size:var(--font-size-sm);color:var(--color-gray-700);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-gray-100);font-weight:600}.detail-panel-section p{font-size:var(--font-size-sm);color:var(--color-gray-600);line-height:1.6}.detail-panel-kpis{gap:var(--space-3);flex-direction:column;display:flex}.detail-kpi{padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-sm);justify-content:space-between;align-items:baseline;display:flex}.detail-kpi-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.03em}.detail-kpi-value{font-size:var(--font-size-sm);color:var(--color-gray-800);font-weight:600}.detail-field{margin-bottom:var(--space-4)}.detail-field-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-1);font-weight:600;display:block}.detail-input{width:100%;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-800);background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.detail-input:focus{border-color:var(--color-sky-400);background:#fff;outline:none;box-shadow:0 0 0 3px #0090f01f}.detail-input-sm{font-size:var(--font-size-sm);padding:var(--space-1) var(--space-2);font-weight:600}.detail-textarea{width:100%;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-600);background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);resize:vertical;box-sizing:border-box;line-height:1.6;transition:border-color .15s,box-shadow .15s}.detail-textarea:focus{border-color:var(--color-sky-400);background:#fff;outline:none;box-shadow:0 0 0 3px #0090f01f}.detail-status-select{font-family:var(--font-family);font-size:var(--font-size-xs);border:1px solid var(--color-gray-200);cursor:pointer;background:#fff;border-radius:999px;padding:2px 8px;font-weight:500}.detail-status-select:focus{border-color:var(--color-sky-400);outline:none}.score-row-editable{grid-template-columns:80px 1fr 48px}.score-select{font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--color-gray-700);text-align:center;border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:1px 2px;font-weight:600}.score-select:focus{border-color:var(--color-sky-400);outline:none}.score-justification-input{font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--color-gray-500);background:var(--color-gray-50);border-radius:var(--radius-sm);padding:2px var(--space-2);border:1px solid #0000;grid-column:1/-1;margin-top:-2px;transition:border-color .15s}.score-justification-input:focus{border-color:var(--color-sky-400);background:#fff;outline:none}.detail-panel-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-gray-100);display:flex}.detail-save-btn{font-family:var(--font-family);font-size:var(--font-size-sm);color:#fff;background:var(--color-sky-500);border-radius:var(--radius-md);padding:var(--space-2) var(--space-5);cursor:pointer;border:none;font-weight:600;transition:background .15s}.detail-save-btn:hover{background:var(--color-sky-600)}.detail-save-btn:disabled{opacity:.6;cursor:not-allowed}.detail-save-status{font-size:var(--font-size-xs);color:var(--color-gray-400)}.detail-save-status.save-success{color:var(--color-status-recommended)}.detail-save-status.save-error{color:#dc2626}.detail-changelog-list{max-height:200px;overflow-y:auto}.detail-changelog-loading{font-size:var(--font-size-xs);color:var(--color-gray-400)}.detail-changelog-empty{font-size:var(--font-size-xs);color:var(--color-gray-400);font-style:italic}.changelog-entry{font-size:var(--font-size-xs);padding:var(--space-2) 0;border-bottom:1px solid var(--color-gray-100)}.changelog-entry-header{justify-content:space-between;align-items:baseline;margin-bottom:2px;display:flex}.changelog-entry-field{color:var(--color-gray-700);font-weight:600}.changelog-entry-who{color:var(--color-gray-400);font-size:10px}.changelog-entry-diff{align-items:baseline;gap:var(--space-1);font-size:11px;line-height:1.4;display:flex}.changelog-old{color:var(--color-gray-400);text-decoration:line-through}.changelog-arrow{color:var(--color-gray-300);flex-shrink:0}.changelog-new{color:var(--color-gray-700);font-weight:500}.activity-feed{border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);margin-bottom:var(--space-6);background:#fff;overflow:hidden}.activity-feed-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-gray-100);background:var(--color-gray-50);justify-content:space-between;align-items:center;display:flex}.activity-feed-title{font-size:var(--font-size-sm);color:var(--color-gray-700);margin:0;font-weight:600}.activity-feed-dismiss{font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--color-gray-400);cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none}.activity-feed-dismiss:hover{color:var(--color-gray-600)}.activity-feed-list{max-height:240px;overflow-y:auto}.activity-entry{align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-gray-50);font-size:var(--font-size-xs);cursor:pointer;transition:background .1s;display:flex}.activity-entry:hover{background:var(--color-gray-50)}.activity-entry:last-child{border-bottom:none}.activity-project{color:var(--color-gray-800);white-space:nowrap;flex-shrink:0;min-width:120px;font-weight:600}.activity-detail{min-width:0;color:var(--color-gray-500);flex:1}.activity-field{color:var(--color-gray-600);font-weight:500}.activity-old{color:var(--color-gray-400);text-decoration:line-through}.activity-new{color:var(--color-gray-700);font-weight:500}.activity-meta{color:var(--color-gray-400);white-space:nowrap;flex-shrink:0;font-size:10px}.archive-section{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px dashed var(--color-gray-200)}.archive-toggle{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-400);cursor:pointer;padding:var(--space-2) 0;background:0 0;border:none;font-weight:500;transition:color .15s}.archive-toggle:hover{color:var(--color-gray-600)}.archive-list{gap:var(--space-3);margin-top:var(--space-3);opacity:.7;flex-direction:column;display:flex}.card-updated-indicator{font-size:var(--font-size-xs);color:var(--color-sky-500);white-space:nowrap;font-weight:500}.kanban-ghost{opacity:.3;background:var(--color-sky-50);border:2px dashed var(--color-sky-300)}.kanban-chosen{box-shadow:var(--shadow-lg);border-color:var(--color-sky-400);transform:rotate(2deg)}.kanban-drag{opacity:.9;box-shadow:var(--shadow-lg)}.admin-modal-wrapper{z-index:1100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal-backdrop{background:#0f172a80;position:absolute;inset:0}.admin-modal{border-radius:var(--radius-lg);padding:var(--space-6);background:#fff;width:440px;max-width:90vw;max-height:90vh;position:relative;overflow-y:auto;box-shadow:0 20px 60px #0003}.admin-modal-wide{width:600px}.admin-modal-title{font-size:var(--font-size-lg);color:var(--color-gray-900);margin:0 0 var(--space-5);font-weight:700}.admin-modal-form{gap:var(--space-4);flex-direction:column;display:flex}.admin-field{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.admin-field label{font-size:var(--font-size-xs);color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.admin-field input,.admin-field textarea,.admin-field select{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-800);background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);box-sizing:border-box}.admin-field input:focus,.admin-field textarea:focus,.admin-field select:focus{border-color:var(--color-sky-400);background:#fff;outline:none;box-shadow:0 0 0 3px #0090f01f}.admin-field textarea{resize:vertical}.admin-field-row{gap:var(--space-3);display:flex}.admin-modal-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);display:flex}.admin-modal-cancel{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-500);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);cursor:pointer;background:0 0;font-weight:500}.admin-modal-cancel:hover{background:var(--color-gray-50)}.admin-modal-submit{font-family:var(--font-family);font-size:var(--font-size-sm);color:#fff;background:var(--color-sky-500);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);cursor:pointer;border:none;font-weight:600}.admin-modal-submit:hover{background:var(--color-sky-600)}.admin-modal-submit:disabled{opacity:.6;cursor:not-allowed}.admin-modal-status{font-size:var(--font-size-xs);color:#dc2626;min-height:1em}.add-project-btn{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-sky-600);background:var(--color-sky-50);border:1px solid var(--color-sky-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:500;transition:all .15s}.add-project-btn:hover{background:var(--color-sky-100)}@media (width>=768px){.card-details-grid{grid-template-columns:1fr 1fr}.card-details-grid .card-detail-section:last-child{grid-column:1/-1}}@media (width<=960px){.kanban-board{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.kanban-board{grid-template-columns:1fr}.detail-panel{width:100vw;padding:var(--space-4)}.card-header{padding:var(--space-3);flex-wrap:wrap;padding-left:0}.card-meta{width:100%;margin-top:var(--space-1);padding-left:60px}.roadmap-header{flex-direction:column;align-items:stretch}.roadmap-controls{justify-content:space-between}.client-selector{width:100%;min-width:0}.view-toggle{width:100%}.view-btn{text-align:center;padding:var(--space-2);font-size:var(--font-size-xs);flex:1}.card-kpis{flex-direction:column}.card-details{padding:var(--space-4)}.score-row{grid-template-columns:70px 1fr 32px}.score-justification{padding-left:0}.kanban-card-kpis{flex-direction:column}.detail-panel-name{font-size:var(--font-size-lg)}.reseed-btn,.seed-btn,.seed-roadmap-btn{width:100%}}
