:root{
  --primary:#0B1F3A;
  --primary-2:#16385F;
  --secondary:#0F6B78;
  --accent:#F28C28;
  --success:#1F8A4C;
  --warning:#D99017;
  --danger:#C7353A;
  --info:#2D6CDF;
  --ink:#172033;
  --muted:#667085;
  --line:#DCE4EE;
  --soft:#F5F8FC;
  --panel:#FFFFFF;
  --sidebar-width:282px;
  --radius:18px;
  --shadow:0 18px 45px rgba(14,34,66,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#EEF3F8;color:var(--ink);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:var(--secondary)}
[hidden]{display:none!important}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
svg{width:20px;height:20px;fill:currentColor;display:block}
.eyebrow{display:block;font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--secondary);text-transform:uppercase}
.status{font-size:13px;color:var(--muted);min-height:20px}
.help{color:var(--muted);font-size:13px;line-height:1.55}

/* Login */
.login-view{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);background:var(--primary)}
.login-visual{position:relative;overflow:hidden;padding:48px 58px;color:#fff;background:
  radial-gradient(circle at 84% 16%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 30%),
  radial-gradient(circle at 14% 86%,color-mix(in srgb,var(--secondary) 55%,transparent),transparent 34%),
  linear-gradient(135deg,var(--primary),#102F56 58%,#0F5967)}
.login-visual:before,.login-visual:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.10);border-radius:50%}
.login-visual:before{width:540px;height:540px;right:-170px;top:-150px}.login-visual:after{width:360px;height:360px;left:-130px;bottom:-180px}
.login-brand,.sidebar-brand{display:flex;align-items:center;gap:13px;position:relative;z-index:2}
.brand-mark,.login-mini-logo,.brand-preview-logo{width:58px;height:58px;border-radius:16px;background:#fff;color:var(--primary);display:grid;place-items:center;font-size:17px;font-weight:900;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.brand-logo-frame img{width:100%;height:100%;object-fit:contain;background:#fff;padding:5px}
.login-brand>div:last-child,.sidebar-brand .brand-copy{display:flex;flex-direction:column;gap:2px}
.login-brand strong{font-size:18px}.login-brand span{font-size:12px;color:rgba(255,255,255,.72)}
.login-hero-copy{position:relative;z-index:2;max-width:720px;margin-top:13vh}
.login-hero-copy .eyebrow{color:#8FE4EC}.login-hero-copy h1{font-size:clamp(38px,5vw,68px);line-height:1.03;margin:15px 0 22px;letter-spacing:-.035em}
.login-hero-copy>p{font-size:18px;line-height:1.65;color:rgba(255,255,255,.78);max-width:680px}
.login-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.login-feature-grid article{padding:18px;border-radius:16px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px)}
.login-feature-grid svg{color:#8FE4EC;margin-bottom:14px}.login-feature-grid strong,.login-feature-grid span{display:block}.login-feature-grid strong{font-size:14px}.login-feature-grid span{margin-top:5px;color:rgba(255,255,255,.68);font-size:12px;line-height:1.45}
.login-tech{position:absolute;left:58px;bottom:28px;font-size:12px;color:rgba(255,255,255,.55);z-index:2}
.login-form-side{display:grid;place-items:center;padding:34px;background:#F4F7FB}
.login-card{width:min(440px,100%);background:#fff;border:1px solid #E4EAF1;border-radius:26px;padding:38px;box-shadow:var(--shadow)}
.login-mini-logo{width:66px;height:66px;margin-bottom:24px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}
.login-card h2{font-size:34px;margin:9px 0 5px}.login-card>p{color:var(--muted);margin:0 0 25px}
.login-card label{display:grid;gap:8px;font-size:13px;font-weight:700;margin-top:15px;color:#344054}
.login-card input{height:50px}

/* Controls */
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);padding:11px 12px;outline:none;transition:.18s border,.18s box-shadow}
input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--secondary) 70%,#fff);box-shadow:0 0 0 4px color-mix(in srgb,var(--secondary) 12%,transparent)}
textarea{resize:vertical;line-height:1.5}
button{border:0;border-radius:11px;font-weight:800;transition:.18s transform,.18s box-shadow,.18s background}
button:hover{transform:translateY(-1px)}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;padding:12px 17px;box-shadow:0 8px 18px rgba(11,31,58,.18)}
.btn-primary:hover{box-shadow:0 11px 23px rgba(11,31,58,.24)}
.btn-soft,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#EAF0F7;color:var(--primary);padding:10px 14px}
.btn-success{background:var(--success);color:#fff;padding:11px 16px;margin-top:14px}
.icon-button{width:40px;height:40px;display:grid;place-items:center;background:#EDF2F7;color:var(--primary);padding:0}
.link-button{background:transparent;color:var(--secondary);padding:5px;font-size:13px;text-decoration:none}
.help-chip{display:inline-flex;align-items:center;gap:7px;background:#E9F4F5;color:var(--secondary);padding:10px 13px}
.stack{display:grid;gap:13px}
.compact-form{display:grid;grid-template-columns:1fr auto;gap:10px}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;align-items:end}
.form-grid label{display:grid;gap:7px;color:#475467;font-size:12px;font-weight:800}
.form-grid .span-2{grid-column:span 2}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;align-items:end;min-height:44px}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.file-label{border:1px dashed color-mix(in srgb,var(--secondary) 50%,#cdd7e3);border-radius:13px;min-height:48px;display:flex!important;align-items:center!important;justify-content:center;gap:10px;background:#F6FAFC;color:var(--secondary)!important;cursor:pointer}.file-label input{display:none}.file-label svg{width:22px;height:22px}

/* App shell */
.app-layout{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--primary),#07172D 100%);color:#fff;padding:22px 16px 15px;display:flex;flex-direction:column;z-index:30;box-shadow:12px 0 30px rgba(7,23,45,.13)}
.sidebar-brand{padding:0 7px 20px;border-bottom:1px solid rgba(255,255,255,.10)}
.sidebar-brand .brand-mark{width:48px;height:48px;border-radius:13px;font-size:14px;box-shadow:none}
.sidebar-brand .brand-copy{min-width:0}.sidebar-brand strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-brand span{font-size:11px;color:rgba(255,255,255,.57)}
.project-switcher{padding:18px 7px 7px}.project-switcher label{display:block;font-size:10px;font-weight:800;letter-spacing:.1em;color:rgba(255,255,255,.48);text-transform:uppercase;margin-bottom:7px}.project-switcher select{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);color:#fff;font-size:12px}.project-switcher option{color:#182235;background:#fff}
.sidebar-nav{flex:1;overflow-y:auto;padding:4px 0 12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.nav-group{margin-top:15px}.nav-group>span{display:block;padding:0 12px 7px;font-size:9px;letter-spacing:.14em;font-weight:800;color:rgba(255,255,255,.38)}
.nav-item{position:relative;width:100%;display:flex;align-items:center;gap:11px;padding:10px 11px;margin:2px 0;background:transparent;color:rgba(255,255,255,.70);text-align:left;border-radius:10px;font-size:12px;font-weight:700}.nav-item svg{width:18px;height:18px;flex:0 0 auto}.nav-item span{flex:1}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.nav-item.active{background:linear-gradient(90deg,color-mix(in srgb,var(--secondary) 90%,#fff),color-mix(in srgb,var(--secondary) 65%,transparent));color:#fff;box-shadow:inset 3px 0 0 var(--accent)}
.nav-badge{font-size:9px;border-radius:99px;background:rgba(255,255,255,.14);padding:3px 6px;color:#fff}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.10);padding-top:12px}.sidebar-help,.logout-button{width:100%;display:flex;align-items:center;gap:11px;text-align:left;padding:10px 11px;color:rgba(255,255,255,.75);background:transparent}.sidebar-help span{display:flex;flex-direction:column}.sidebar-help strong{font-size:11px}.sidebar-help small{font-size:9px;color:rgba(255,255,255,.42)}.logout-button{font-size:11px;color:#F7B8BB}.sidebar-footer svg{width:18px;height:18px}
.workspace{min-width:0}.topbar{height:72px;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.topbar-title{display:flex;flex-direction:column}.topbar-title span{font-size:11px;font-weight:800;color:var(--secondary);text-transform:uppercase;letter-spacing:.08em}.topbar-title strong{font-size:16px;margin-top:3px}.topbar-actions{display:flex;align-items:center;gap:13px}.topbar-help{display:flex;align-items:center;gap:6px;background:#EEF5F6;color:var(--secondary);padding:9px 12px}.user-chip{display:flex;align-items:center;gap:9px;padding-left:13px;border-left:1px solid var(--line)}.user-chip>svg{width:35px;height:35px;padding:8px;border-radius:11px;background:#EAF0F7;color:var(--primary)}.user-chip div{display:flex;flex-direction:column}.user-chip strong{font-size:12px}.user-chip small{font-size:10px;color:var(--muted)}
.content-area{padding:28px;max-width:1740px;margin:0 auto}.tab-panel{display:none}.tab-panel.active{display:block;animation:fadeIn .22s ease}.project-nav .nav-item.disabled{opacity:.38;pointer-events:none}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* Headings and panels */
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.page-heading h1{font-size:31px;letter-spacing:-.025em;margin:7px 0 5px}.page-heading p{margin:0;color:var(--muted);line-height:1.55}.page-heading.compact h1{font-size:27px}.page-heading.compact{margin-bottom:19px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 8px 22px rgba(21,43,77,.045)}
.panel h3{margin:0 0 15px;font-size:17px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;margin-bottom:14px}.panel-heading h3{margin:3px 0 0}.panel-kicker{font-size:9px;letter-spacing:.12em;color:var(--muted);font-weight:900}
.form-panel{margin-bottom:17px}.table-panel{margin-top:17px}.two-columns{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:17px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.65fr);gap:17px}.dashboard-lower-grid,.roadmap-detail-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:17px}
.form-drawer{background:#fff;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between}.section-heading h2{margin:0}.section-heading p{color:var(--muted);margin:4px 0 17px}
.project-context-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;margin-bottom:22px;background:linear-gradient(110deg,#fff,#F7FAFD);border:1px solid var(--line);border-radius:16px}.project-context-title{display:flex;align-items:center;gap:12px}.project-context-title h2{margin:0;font-size:18px}.project-context-title small{color:var(--muted)}.project-status-dot{width:12px;height:12px;border-radius:50%;background:var(--success);box-shadow:0 0 0 6px color-mix(in srgb,var(--success) 12%,transparent)}.project-context-actions{display:flex;align-items:end;gap:10px}.project-context-actions label{display:grid;gap:5px;font-size:10px;font-weight:800;color:var(--muted)}.project-context-actions input{padding:8px 10px}

/* Portfolio */
.portfolio-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.portfolio-summary article{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.portfolio-summary article:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-25px;top:-25px;background:color-mix(in srgb,var(--secondary) 9%,transparent)}.portfolio-summary span,.portfolio-summary small{display:block}.portfolio-summary span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase}.portfolio-summary strong{display:block;font-size:24px;margin:7px 0 4px}.portfolio-summary small{font-size:11px;color:#98A2B3}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;cursor:pointer;transition:.2s transform,.2s box-shadow,.2s border}.project:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--secondary) 45%,var(--line));box-shadow:var(--shadow)}.project:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:0 6px 6px 0;background:var(--secondary)}.project strong,.project small{display:block}.project strong{font-size:15px;padding-left:4px}.project small{font-size:11px;color:var(--muted);line-height:1.55;margin:8px 0 13px;padding-left:4px}.project-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #EDF1F6;padding-top:12px}.project-method{font-size:10px;font-weight:800;color:var(--secondary);background:#E9F4F5;padding:5px 7px;border-radius:7px}.project-balance{font-size:11px;font-weight:800}.empty-state{grid-column:1/-1;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:18px;padding:45px;color:var(--muted)}

/* KPI */
.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 17px}.summary{position:relative;background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;overflow:hidden}.summary:after{content:"";position:absolute;right:-20px;bottom:-24px;width:72px;height:72px;border-radius:50%;background:color-mix(in srgb,var(--secondary) 7%,transparent)}.summary span{display:block;font-size:10px;letter-spacing:.04em;color:var(--muted);font-weight:800;text-transform:uppercase}.summary strong{position:relative;z-index:2;display:block;font-size:21px;margin-top:7px}.summary strong.status-green{color:var(--success)}.summary strong.status-yellow{color:var(--warning)}.summary strong.status-red{color:var(--danger)}
.status-green{color:var(--success)!important;font-weight:800}.status-yellow{color:var(--warning)!important;font-weight:800}.status-red{color:var(--danger)!important;font-weight:800}

/* Tables/cards */
.table-wrap{overflow:auto;border-radius:12px}table{width:100%;border-collapse:collapse}th,td{padding:11px 12px;border-bottom:1px solid #E8EDF3;text-align:left;white-space:nowrap;font-size:12px}th{font-size:9px;letter-spacing:.08em;color:#667085;text-transform:uppercase;background:#F8FAFC;position:sticky;top:0}tbody tr:hover{background:#FAFCFE}td button{padding:7px 9px;background:#EAF0F7;color:var(--primary);font-size:10px}.version-card,.history-card{border:1px solid var(--line);border-radius:13px;padding:13px;margin-top:10px;background:#fff}.version-card{cursor:pointer}.version-card:hover,.version-card.selected{border-color:var(--secondary);background:#F5FAFB}.version-card strong,.version-card small,.history-card strong,.history-card small{display:block}.version-card small,.history-card small{color:var(--muted);font-size:10px;margin-top:5px}.history-card p{white-space:pre-wrap;color:#475467;line-height:1.55;font-size:12px}

/* Dashboard */
.chart-panel canvas{width:100%;height:330px;display:block}.chart-legend{display:flex;gap:8px}.chart-legend span{font-size:9px;font-weight:900;padding:5px 8px;border-radius:7px}.chart-legend .pv{background:#FFF1E5;color:#C76518}.chart-legend .ev{background:#E9F2FF;color:#2D6CDF}.chart-legend .ac{background:#FCEBEC;color:#B52D32}
.alert{padding:12px 13px;border-radius:12px;margin:9px 0;border-left:4px solid;line-height:1.45}.alert strong{font-size:12px}.alert div{font-size:11px;color:#475467;margin-top:3px}.alert.red,.alert.critical{background:#FFF0F1;border-color:var(--danger)}.alert.yellow{background:#FFF7E8;border-color:var(--warning)}.alert.green{background:#ECF8F0;border-color:var(--success)}.alert.blue{background:#EDF4FF;border-color:var(--info)}
.next-actions{display:grid;gap:10px}.next-action{display:flex;gap:11px;align-items:flex-start;padding:11px;border-radius:11px;background:#F7F9FC}.next-action b{width:25px;height:25px;border-radius:8px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:10px}.next-action strong,.next-action span{display:block}.next-action strong{font-size:12px}.next-action span{font-size:10px;color:var(--muted);margin-top:3px}

/* Roadmap */
.roadmap-overall{min-width:160px;text-align:right}.roadmap-overall strong{display:block;font-size:31px;color:var(--primary)}.roadmap-overall span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:800}.roadmap-panel{overflow:auto}.roadmap-steps{display:flex;min-width:980px;gap:0;padding:18px 8px 10px}.roadmap-step{position:relative;flex:1;text-align:center;padding:0 8px}.roadmap-step:not(:last-child):before{content:"";position:absolute;top:24px;left:58%;right:-42%;height:4px;background:#DCE5EE;border-radius:99px}.roadmap-step.done:not(:last-child):before{background:var(--success)}.roadmap-step.current:not(:last-child):before{background:linear-gradient(90deg,var(--accent) 50%,#DCE5EE 50%)}.roadmap-node{position:relative;z-index:2;width:52px;height:52px;border-radius:16px;margin:0 auto 11px;display:grid;place-items:center;background:#EDF2F7;color:#98A2B3;border:2px solid #D6E0EA}.roadmap-node svg{width:24px;height:24px}.roadmap-step.done .roadmap-node{background:var(--success);border-color:var(--success);color:#fff}.roadmap-step.current .roadmap-node{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 15%,transparent)}.roadmap-step strong{display:block;font-size:11px}.roadmap-step span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.roadmap-step b{display:block;font-size:10px;margin-top:6px;color:var(--secondary)}
.roadmap-action-card{padding:16px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,#fff),#fff);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}.roadmap-action-card strong,.roadmap-action-card span{display:block}.roadmap-action-card strong{font-size:16px}.roadmap-action-card span{color:var(--muted);font-size:12px;line-height:1.5;margin-top:5px}.roadmap-action-card button{margin-top:13px}
.structure-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.structure-item{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:10px;background:#F7F9FC}.structure-item span{font-size:11px;color:#475467}.structure-item b{font-size:11px;color:var(--primary)}
.mini-roadmap{display:flex;align-items:center;gap:5px}.mini-roadmap span{height:8px;flex:1;border-radius:99px;background:#E2E8F0}.mini-roadmap span.done{background:var(--success)}.mini-roadmap span.current{background:var(--accent)}

/* Kanban */
.kanban-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.kanban-column{background:#EAF0F6;border-radius:16px;padding:13px;min-height:360px}.kanban-column header{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 12px}.kanban-column header strong{font-size:12px}.kanban-count{font-size:10px;background:#fff;border-radius:99px;padding:4px 7px;color:var(--muted)}.kanban-card{background:#fff;border:1px solid #DDE5EE;border-radius:13px;padding:13px;margin-bottom:10px;box-shadow:0 5px 13px rgba(17,39,70,.05)}.kanban-card .code{font-size:9px;color:var(--secondary);font-weight:900;letter-spacing:.06em}.kanban-card h4{font-size:12px;margin:5px 0 10px}.kanban-card .progress-line{height:6px;border-radius:99px;background:#E7EDF3;overflow:hidden}.kanban-card .progress-line span{display:block;height:100%;background:linear-gradient(90deg,var(--secondary),var(--accent))}.kanban-card footer{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:8px}

/* Reports, AI, brand, license */
.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.action-card{display:block;background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;text-decoration:none;color:var(--primary);transition:.2s}.action-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--secondary)}.action-card svg{width:25px;height:25px;color:var(--secondary);margin-bottom:14px}.action-card strong,.action-card span{display:block}.action-card strong{font-size:13px}.action-card span{font-size:10px;color:var(--muted);line-height:1.45;margin-top:5px}.notice{padding:12px 14px;background:#EDF4FA;border-radius:11px;color:#38506A;font-size:12px;margin:12px 0}.ai-answer{white-space:pre-wrap;padding:18px;background:#F7F9FC;border:1px solid var(--line);border-radius:13px;min-height:95px;margin-top:14px;line-height:1.6;font-size:12px}.license-box{display:grid;grid-template-columns:180px 1fr;gap:9px 14px;border:1px solid var(--line);border-radius:14px;padding:17px}.license-box span{color:var(--muted);font-size:11px}.license-box strong{font-size:12px;overflow-wrap:anywhere}.settings-grid{align-items:start}.brand-preview-panel{position:sticky;top:92px}.brand-preview{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#F1F5F9}.brand-preview-header{display:flex;align-items:center;gap:11px;padding:17px;color:#fff;background:var(--primary)}.brand-preview-logo{width:45px;height:45px;border-radius:11px;box-shadow:none}.brand-preview-header div:last-child{display:flex;flex-direction:column}.brand-preview-header small{color:rgba(255,255,255,.65)}.brand-preview-content{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px}.brand-preview-content span{height:65px;border-radius:11px;background:#fff;border:1px solid var(--line)}.brand-preview>button{margin:0 16px 16px;background:var(--accent);color:#fff;padding:9px 13px}

/* Tutor */
.tutor-fab{position:fixed;right:24px;bottom:22px;z-index:50;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--accent),#E16C15);color:#fff;padding:12px 16px;border-radius:999px;box-shadow:0 14px 35px rgba(217,106,21,.34)}.tutor-fab svg{width:21px;height:21px}.tutor-panel{position:fixed;right:22px;bottom:82px;width:min(410px,calc(100vw - 28px));max-height:74vh;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(7,23,45,.25);z-index:60;transform:translateY(18px) scale(.98);opacity:0;pointer-events:none;transition:.22s;overflow:hidden}.tutor-panel.open{transform:none;opacity:1;pointer-events:auto}.tutor-panel header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 18px 12px;background:linear-gradient(135deg,#F6F9FC,#EEF4F8)}.tutor-panel h2{font-size:19px;margin:5px 0 0}.tutor-content{padding:15px 18px;color:#475467;font-size:12px;line-height:1.6}.tutor-checklist{padding:0 18px 14px;display:grid;gap:8px}.tutor-check{display:flex;gap:9px;align-items:flex-start;padding:9px;border-radius:10px;background:#F7F9FC;font-size:11px}.tutor-check b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#E4EAF1;color:#667085;font-size:9px}.tutor-check.done b{background:var(--success);color:#fff}.tutor-panel footer{display:flex;justify-content:flex-end;gap:8px;padding:13px 18px;border-top:1px solid var(--line)}
.tour-overlay{position:fixed;inset:0;background:rgba(7,23,45,.72);backdrop-filter:blur(3px);z-index:100;display:grid;place-items:center;padding:20px}.tour-card{width:min(480px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:0 30px 100px rgba(0,0,0,.35)}.tour-card h2{font-size:25px;margin:8px 0}.tour-card p{color:var(--muted);line-height:1.65}.tour-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.toast-region{position:fixed;right:22px;top:86px;z-index:90;display:grid;gap:8px}.toast{min-width:280px;max-width:420px;padding:13px 15px;border-radius:12px;color:#fff;background:var(--primary);box-shadow:var(--shadow);font-size:12px}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}

hr{border:0;border-top:1px solid var(--line);margin:20px 0}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.mobile-only{display:none}

@media(max-width:1300px){.summary-grid{grid-template-columns:repeat(3,1fr)}.project-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(3,1fr)}.action-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1050px){.app-layout{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:.22s;width:min(var(--sidebar-width),88vw)}.sidebar.open{transform:none}.mobile-only{display:grid}.content-area{padding:21px}.dashboard-grid,.dashboard-lower-grid,.roadmap-detail-grid,.settings-grid,.two-columns{grid-template-columns:1fr}.brand-preview-panel{position:static}.topbar{padding:0 18px}.login-view{grid-template-columns:1fr}.login-visual{display:none}.project-nav .nav-item.disabled{display:none}}
@media(max-width:760px){.content-area{padding:15px}.page-heading,.project-context-bar{flex-direction:column;align-items:stretch}.page-heading h1{font-size:25px}.project-context-actions{align-items:stretch;flex-wrap:wrap}.portfolio-summary,.project-grid,.summary-grid,.form-grid,.compact-grid,.kanban-board,.action-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.topbar-actions .topbar-help span,.user-chip small{display:none}.topbar-title strong{max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-card{padding:28px 22px}.license-box{grid-template-columns:1fr}.structure-list{grid-template-columns:1fr}.tutor-fab span{display:none}.tutor-fab{width:52px;height:52px;padding:0;justify-content:center}.tutor-panel{right:14px;bottom:78px}.chart-panel canvas{height:270px}.project-context-bar{padding:14px}}


/* Gantt ejecutivo */
.panel-meta{color:var(--muted);font-size:12px;font-weight:700}.gantt-timeline{overflow:auto;padding-bottom:4px}.gantt-scale,.gantt-row{display:grid;grid-template-columns:minmax(180px,260px) minmax(620px,1fr);align-items:center}.gantt-scale{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line);min-width:830px}.gantt-scale-track{height:34px;position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--line) calc(25% - 1px),var(--line) 25%)}.gantt-scale-track span{position:absolute;top:9px;transform:translateX(-50%);font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase}.gantt-scale-track span:first-child{transform:none}.gantt-scale-track span:last-child{transform:translateX(-100%)}.gantt-row{min-width:830px;border-bottom:1px solid var(--line-soft)}.gantt-label{padding:11px 16px 11px 0;min-width:0}.gantt-label strong{display:block;font-size:11px;color:var(--secondary);letter-spacing:.05em}.gantt-label span{display:block;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{position:relative;height:42px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--line-soft) calc(25% - 1px),var(--line-soft) 25%)}.gantt-bar{position:absolute;top:10px;height:22px;min-width:14px;border:0;border-radius:999px;background:color-mix(in srgb,var(--secondary) 22%,white);overflow:hidden;padding:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--secondary) 35%,transparent);cursor:pointer}.gantt-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--secondary),color-mix(in srgb,var(--secondary) 70%,var(--accent)));border-radius:999px}.gantt-bar b{position:relative;z-index:1;display:block;color:var(--primary);font-size:9px;text-align:center;line-height:22px}.gantt-milestone{position:absolute;top:12px;width:18px;height:18px;transform:rotate(45deg) translateX(-50%);border:2px solid var(--surface);background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 10px #0b1f3a20;cursor:pointer}.gantt-today{position:absolute;z-index:1;top:0;bottom:0;width:2px;background:var(--danger);opacity:.55;pointer-events:none}@media(max-width:760px){.gantt-scale,.gantt-row{grid-template-columns:155px minmax(560px,1fr);min-width:715px}.gantt-label{padding-right:10px}}

/* Edición propietaria/licenciante: consola exclusiva de marca y licencias. */
body[data-package-edition="owner"] .project-switcher,
body[data-package-edition="owner"] .sidebar-nav .nav-group:first-child,
body[data-package-edition="owner"] .sidebar-nav .project-nav,
body[data-package-edition="owner"] #projectContextBar {
  display: none !important;
}
body[data-package-edition="owner"] .sidebar-nav {
  margin-top: 18px;
}
