/* ============================================================
   base.css — сброс, оболочка приложения, сайдбар, топбар, чат,
   дашборд. Перенесено из ref/prototype-v4.html без изменения
   визуальных решений.
============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;}
body{min-height:100dvh;line-height:var(--lh-body);font-family:var(--font-body);font-size:var(--fs-16);color:var(--fg-default);background:var(--bg-page);overflow:hidden;}
button,input,textarea,select{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:none;}
:focus-visible{outline:2px solid var(--color-accent-red);outline-offset:2px;}
::selection{background:var(--color-border-2);}
a{color:var(--fg-link);text-decoration:none;border-bottom:1px solid transparent;}
a:hover{border-bottom-color:currentColor;}
h1,h2,h3{font-family:var(--font-heading);font-weight:var(--fw-semibold);line-height:var(--lh-heading);color:var(--fg-default);}
a,button,[role="button"],input,textarea,select{transition:background-color .15s ease,color .15s ease,border-color .15s ease;}
p,li,td,th,span,div{overflow-wrap:break-word;word-break:normal;hyphens:none;}

/* Layout shell */
.app-shell{display:grid;grid-template-columns:264px 1fr;height:100dvh;}
@media (max-width:1024px){.app-shell{grid-template-columns:72px 1fr;}}
@media (max-width:768px){.app-shell{grid-template-columns:1fr;}}

/* Sidebar */
.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-default);display:flex;flex-direction:column;padding:var(--space-4);gap:var(--space-5);overflow-y:auto;}
@media (max-width:768px){.sidebar{position:fixed;inset:0 auto 0 0;width:264px;z-index:50;transform:translateX(-100%);transition:transform .2s ease;}
.sidebar.open{transform:translateX(0);}}
.brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);}
.angstrem-logo{display:inline-block;color:var(--color-graphite);flex-shrink:0;}
[data-theme="dark"] .angstrem-logo{color:var(--color-white);}
.brand-text{display:none;}
.brand-tag{font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-12);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em;margin-left:var(--space-2);}
@media (max-width:1024px){.brand-tag{display:none;}}

.new-chat-btn{display:flex;align-items:center;gap:var(--space-2);background:var(--color-accent-red);color:var(--color-white);height:44px;padding:0 var(--space-4);border-radius:var(--radius);font-weight:var(--fw-semibold);font-size:var(--fs-14);justify-content:center;}
.new-chat-btn:hover{background:var(--color-accent-red-dark);}
@media (max-width:1024px){.sidebar .new-chat-btn span{display:none;}}

.nav-group{display:flex;flex-direction:column;gap:var(--space-1);}
.nav-label{font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);padding:var(--space-2) var(--space-2) var(--space-1);font-weight:var(--fw-semibold);}
@media (max-width:1024px){.nav-label{display:none;}}
.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--fs-14);color:var(--fg-muted);border-left:2px solid transparent;text-align:left;}
.nav-item svg{width:18px;height:18px;flex-shrink:0;}
.nav-item:hover{background:var(--bg-surface-alt);color:var(--fg-default);}
.nav-item.active{background:var(--bg-surface-alt);color:var(--color-accent-red);font-weight:var(--fw-semibold);border-left-color:var(--color-accent-red);}
@media (max-width:1024px){.nav-item span{display:none;}.nav-item{justify-content:center;border-left:none;}}

.chat-history{display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto;max-height:170px;}
.history-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--fs-12);color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;}
.history-item:hover{background:var(--bg-surface-alt);color:var(--fg-default);}
.history-item.active{background:var(--bg-surface-alt);color:var(--fg-default);font-weight:var(--fw-medium);}
@media (max-width:1024px){.chat-history{display:none;}}

.sidebar-footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-4);border-top:1px solid var(--border-default);margin-top:auto;gap:var(--space-2);}
.user-chip{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-12);min-width:0;}
.user-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.avatar{width:28px;height:28px;border-radius:var(--radius);background:var(--color-graphite);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-size:var(--fs-12);flex-shrink:0;}
[data-theme="dark"] .avatar{background:var(--color-white);color:var(--color-graphite);}
@media (max-width:1024px){.user-chip span{display:none;}}
.icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);color:var(--fg-muted);flex-shrink:0;}
.icon-btn:hover{background:var(--bg-surface-alt);color:var(--fg-default);}
.icon-btn svg{width:16px;height:16px;}

/* Main area */
.main{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--bg-page);min-width:0;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border-default);flex-shrink:0;gap:var(--space-3);flex-wrap:wrap;}
.topbar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0;}
.topbar-right{display:flex;align-items:center;gap:var(--space-3);min-width:0;}
@media (max-width:768px){.topbar{padding:var(--space-3) var(--space-4);}}
.hamburger{display:none;}
@media (max-width:768px){.hamburger{display:flex;}}
.model-select{display:flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--fs-14);font-weight:var(--fw-medium);background:var(--bg-page);}
.model-select:hover{border-color:var(--color-graphite);}
.model-select svg{width:14px;height:14px;color:var(--fg-muted);flex-shrink:0;}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--color-success);flex-shrink:0;}
.status-text{font-size:var(--fs-12);color:var(--fg-muted);display:flex;align-items:center;gap:var(--space-2);}
@media (max-width:1100px){.status-text{display:none;}}

/* Views */
.view{display:none;flex:1;overflow:hidden;flex-direction:column;min-width:0;}
.view.active{display:flex;}

/* Chat view */
.chat-scroll{flex:1;overflow-y:auto;padding:var(--space-8) var(--space-6);}
@media (max-width:640px){.chat-scroll{padding:var(--space-5) var(--space-4);}}
.chat-inner{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6);}
.msg{display:flex;gap:var(--space-3);animation:msgIn .25s ease;}
@keyframes msgIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.msg-avatar{width:28px;height:28px;border-radius:var(--radius);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:var(--fw-bold);}
.msg.user .msg-avatar{background:var(--color-beige);color:var(--fg-default);border:1px solid var(--border-strong);}
.msg.assistant .msg-avatar{background:var(--color-graphite);color:var(--color-white);}
[data-theme="dark"] .msg.assistant .msg-avatar{background:var(--color-white);color:var(--color-graphite);}
.msg-body{flex:1;min-width:0;padding-top:var(--space-1);}
.msg-name{font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--fg-muted);margin-bottom:var(--space-1);}
.msg-content{font-size:var(--fs-16);line-height:var(--lh-body);color:var(--fg-default);}
.msg-content p{margin-bottom:var(--space-3);max-width:75ch;}
.msg-content p:last-child{margin-bottom:0;}
.msg-content code{font-family:var(--font-mono);font-size:.9em;background:var(--color-beige);padding:.1em .4em;}
.msg-content pre{background:var(--color-graphite);color:var(--color-white);border-radius:var(--radius);padding:var(--space-4);overflow-x:auto;margin:var(--space-3) 0;}
[data-theme="dark"] .msg-content pre{background:var(--color-graphite-2);border:1px solid var(--border-default);}
.msg-content pre code{background:none;padding:0;font-size:var(--fs-14);}
.msg-actions{display:flex;gap:var(--space-1);margin-top:var(--space-2);opacity:0;transition:opacity .15s ease;flex-wrap:wrap;}
.msg:hover .msg-actions,.msg:focus-within .msg-actions{opacity:1;}
.msg-actions button{display:flex;align-items:center;gap:var(--space-1);font-size:var(--fs-12);color:var(--fg-placeholder);padding:var(--space-1) var(--space-2);border-radius:var(--radius);}
.msg-actions button:hover{background:var(--color-beige);color:var(--fg-muted);}
.msg-actions button.rated{color:var(--fg-success);}
.msg-actions svg{width:13px;height:13px;}

.typing-dots{display:flex;gap:4px;padding:var(--space-2) 0;}
.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--fg-placeholder);animation:tdot 1.2s infinite ease-in-out;}
.typing-dots span:nth-child(2){animation-delay:.15s;}
.typing-dots span:nth-child(3){animation-delay:.3s;}
@keyframes tdot{0%,60%,100%{transform:scale(1);opacity:.4;}30%{transform:scale(1.3);opacity:1;}}

.empty-chat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8) 0;gap:var(--space-4);}
.empty-chat-icon{color:var(--color-graphite);}
[data-theme="dark"] .empty-chat-icon{color:var(--color-white);}
.empty-chat h2{font-size:var(--fs-28);font-weight:var(--fw-semibold);}
.empty-chat p{color:var(--fg-muted);max-width:44ch;font-size:var(--fs-14);}
.suggestion-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-top:var(--space-4);max-width:640px;width:100%;}
@media (max-width:640px){.suggestion-grid{grid-template-columns:1fr;}}
.suggestion-card{text-align:left;padding:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-page);font-size:var(--fs-14);}
.suggestion-card strong{display:block;margin-bottom:var(--space-1);font-weight:var(--fw-semibold);font-family:var(--font-body);}
.suggestion-card span{color:var(--fg-muted);font-size:var(--fs-12);}
.suggestion-card:hover{border-color:var(--color-accent-red);}

.composer-wrap{padding:var(--space-4) var(--space-6) var(--space-6);flex-shrink:0;}
@media (max-width:640px){.composer-wrap{padding:var(--space-3) var(--space-4) var(--space-4);}}
.composer{max-width:820px;margin:0 auto;background:var(--bg-page);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);}
.composer:focus-within{border-color:var(--color-graphite);}
.composer textarea{width:100%;resize:none;border:none;background:none;outline:none;font-size:var(--fs-16);max-height:160px;line-height:1.5;font-family:var(--font-body);}
.composer textarea::placeholder{color:var(--fg-placeholder);}
.composer-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);}
.composer-tools{display:flex;gap:var(--space-1);}
.composer-tool-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);color:var(--fg-muted);}
.composer-tool-btn:hover{background:var(--color-beige);color:var(--fg-default);}
.composer-tool-btn svg{width:17px;height:17px;}
.send-btn{width:32px;height:32px;border-radius:var(--radius);background:var(--color-accent-red);color:var(--color-white);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.send-btn:hover{background:var(--color-accent-red-dark);}
.send-btn:disabled{background:var(--color-border-2);color:var(--fg-placeholder);cursor:not-allowed;}
.send-btn svg{width:16px;height:16px;}
.composer-hint{text-align:center;font-size:var(--fs-12);color:var(--fg-placeholder);margin-top:var(--space-2);max-width:820px;margin-left:auto;margin-right:auto;}

/* Dashboard / общая прокручиваемая область экранов */
.dash-scroll{flex:1;overflow-y:auto;padding:var(--space-6);}
@media (max-width:640px){.dash-scroll{padding:var(--space-4);}}
.dash-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-3);}
.dash-title{font-family:var(--font-heading);font-size:var(--fs-28);font-weight:var(--fw-semibold);line-height:var(--lh-heading);}
@media (max-width:480px){.dash-title{font-size:var(--fs-22);}}
.dash-sub{color:var(--fg-muted);font-size:var(--fs-14);margin-top:var(--space-1);font-family:var(--font-body);}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-6);}
@media (max-width:1024px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.kpi-grid{grid-template-columns:1fr;}}
.kpi-card{background:var(--bg-page);border:1px solid var(--border-default);border-radius:var(--radius);padding:var(--space-5);position:relative;min-width:0;}
.kpi-label{font-size:var(--fs-12);color:var(--fg-muted);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);padding-right:56px;}
.kpi-value{font-family:var(--font-mono);font-size:var(--fs-28);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;color:var(--color-graphite);}
[data-theme="dark"] .kpi-value{color:var(--color-white);}
.kpi-delta{font-size:var(--fs-12);margin-top:var(--space-2);display:flex;align-items:center;gap:var(--space-1);font-weight:var(--fw-semibold);}
.kpi-delta.up{color:var(--fg-success);}
.kpi-delta.down{color:var(--fg-danger);}
.kpi-delta.flat{color:var(--fg-muted);}
.kpi-delta svg{width:12px;height:12px;flex-shrink:0;}

.dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-4);align-items:start;}
@media (max-width:1024px){.dash-grid{grid-template-columns:1fr;}}
.panel{background:var(--bg-page);border:1px solid var(--border-default);border-radius:var(--radius);padding:var(--space-5);position:relative;min-width:0;}
@media (max-width:640px){.panel{padding:var(--space-4);}}
.panel-title{font-size:var(--fs-18);font-weight:var(--fw-semibold);margin-bottom:var(--space-4);font-family:var(--font-body);padding-right:96px;}
.panel-title.no-pad{padding-right:0;}
.agent-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);}
.agent-row:last-child{border-bottom:none;}
.agent-icon{width:36px;height:36px;border-radius:var(--radius);background:var(--color-beige);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.agent-icon svg{width:18px;height:18px;color:var(--color-graphite);}
[data-theme="dark"] .agent-icon svg{color:var(--color-white);}
.agent-info{flex:1;min-width:0;}
.agent-name{font-size:var(--fs-14);font-weight:var(--fw-semibold);}
.agent-task{font-size:var(--fs-12);color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);font-weight:var(--fw-semibold);padding:4px 10px;border-radius:var(--radius);flex-shrink:0;text-transform:uppercase;letter-spacing:.05em;color:var(--color-white);white-space:nowrap;line-height:1.3;}
.badge.running{background:var(--color-link);}
.badge.review,.badge.progress{background:var(--color-warning);}
.badge.done{background:var(--color-success);}
.badge.error{background:var(--color-accent-red);}
.badge.neutral{background:var(--color-graphite);}
.pr-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius);margin-bottom:var(--space-2);flex-wrap:wrap;}
.pr-row:last-child{margin-bottom:0;}
.pr-meta{flex:1;min-width:180px;}
.pr-title{font-size:var(--fs-14);font-weight:var(--fw-semibold);}
.pr-sub{font-size:var(--fs-12);color:var(--fg-muted);font-family:var(--font-mono);overflow-wrap:break-word;}
.approve-btn{height:32px;padding:0 var(--space-3);border-radius:var(--radius);font-size:var(--fs-12);font-weight:var(--fw-semibold);background:var(--color-graphite);color:var(--color-white);flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-2);justify-content:center;}
.approve-btn:hover{background:var(--color-graphite-2);}
[data-theme="dark"] .approve-btn{background:var(--color-white);color:var(--color-graphite);}
[data-theme="dark"] .approve-btn:hover{background:var(--color-beige);}

::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:var(--border-strong);}
::-webkit-scrollbar-track{background:transparent;}

.sidebar-overlay{display:none;}
@media (max-width:768px){.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(26,23,23,.4);z-index:40;}}

/* Project selector */
.project-select-wrap{padding:0 var(--space-2) var(--space-2);position:relative;}
.project-select{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:40px;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-page);font-size:var(--fs-14);font-weight:var(--fw-semibold);text-align:left;}
.project-select:hover{border-color:var(--color-graphite);}
.project-select svg{width:14px;height:14px;color:var(--fg-muted);flex-shrink:0;}
.project-select-label{display:flex;align-items:center;gap:var(--space-2);min-width:0;}
.project-select .pname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.project-dot{width:8px;height:8px;flex-shrink:0;background:var(--color-accent-red);}
@media (max-width:1024px){.project-select span.pname{display:none;}.project-select{justify-content:center;}}
.project-menu{position:absolute;z-index:60;margin-top:var(--space-1);width:300px;max-height:60vh;overflow-y:auto;background:var(--bg-page);border:1px solid var(--border-strong);display:none;}
.project-menu.open{display:block;}
.project-menu-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--border-default);width:100%;text-align:left;}
.project-menu-item:last-child{border-bottom:none;}
.project-menu-item:hover{background:var(--color-beige);}
.project-menu-dot{width:8px;height:8px;flex-shrink:0;}
.project-menu-info{flex:1;min-width:0;}
.project-menu-name{font-size:var(--fs-14);font-weight:var(--fw-semibold);display:block;}
.project-menu-meta{font-size:var(--fs-12);color:var(--fg-muted);display:block;}
.project-menu-lane{font-size:var(--fs-12);font-weight:var(--fw-semibold);padding:2px 8px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-white);flex-shrink:0;}
.project-menu-lane.fast{background:var(--color-link);}
.project-menu-lane.core{background:var(--color-graphite);}
[data-theme="dark"] .project-menu-lane.core{background:var(--color-graphite-2);border:1px solid var(--border-strong);}

/* Roadmap kanban */
.roadmap-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;}
.lane-filter{display:flex;gap:var(--space-1);border:1px solid var(--border-strong);padding:2px;flex-wrap:wrap;}
.lane-filter button{height:32px;padding:0 var(--space-3);font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--fg-muted);}
.lane-filter button.active{background:var(--color-graphite);color:var(--color-white);}
[data-theme="dark"] .lane-filter button.active{background:var(--color-white);color:var(--color-graphite);}
.kanban-board{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-2);}
@media (max-width:1200px){.kanban-board{grid-template-columns:repeat(5,240px);}}
.kanban-col{background:var(--bg-surface);border:1px solid var(--border-default);min-width:220px;display:flex;flex-direction:column;}
.kanban-col-header{padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);}
.kanban-col-title{font-size:var(--fs-12);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);}
.kanban-col-count{font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--fg-placeholder);}
.kanban-cards{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);flex:1;}
.kanban-card{background:var(--bg-page);border:1px solid var(--border-default);padding:var(--space-3);cursor:default;}
.kanban-card:hover{border-color:var(--color-graphite);}
.kc-sprint{font-family:var(--font-mono);font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--color-accent-red);margin-bottom:var(--space-1);}
[data-theme="dark"] .kc-sprint{color:var(--fg-danger);}
.kc-title{font-size:var(--fs-14);font-weight:var(--fw-semibold);margin-bottom:var(--space-2);line-height:1.3;}
.kc-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;}
.kc-lane{font-size:var(--fs-12);font-weight:var(--fw-semibold);padding:2px 8px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-white);white-space:nowrap;}
.kc-lane.fast{background:var(--color-link);}
.kc-lane.core{background:var(--color-graphite);}
[data-theme="dark"] .kc-lane.core{background:var(--color-graphite-2);border:1px solid var(--border-strong);}
.kc-gate{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-muted);}

.roadmap-timeline{margin-top:var(--space-8);}
.timeline-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);}
.timeline-row:last-child{border-bottom:none;}
.timeline-phase{width:150px;flex-shrink:0;font-size:var(--fs-14);font-weight:var(--fw-semibold);}
.timeline-bar-wrap{flex:1;height:24px;background:var(--color-beige);position:relative;min-width:80px;}
.timeline-bar{position:absolute;top:0;bottom:0;background:var(--color-graphite);display:flex;align-items:center;padding:0 var(--space-2);overflow:hidden;}
.timeline-bar.fast{background:var(--color-link);}
.timeline-bar span{font-size:var(--fs-12);color:var(--color-white);font-weight:var(--fw-semibold);white-space:nowrap;}
.timeline-kpi{width:190px;flex-shrink:0;font-size:var(--fs-12);color:var(--fg-muted);text-align:right;}
@media (max-width:900px){
  .timeline-row{flex-wrap:wrap;gap:var(--space-2);}
  .timeline-phase{width:100%;}
  .timeline-bar-wrap{flex:1 1 100%;}
  .timeline-kpi{width:100%;text-align:left;}
}

/* ADR coverage gauge */
.adr-gauge{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;}
.adr-gauge-value{font-family:var(--font-mono);font-size:var(--fs-28);font-weight:var(--fw-semibold);color:var(--color-graphite);}
[data-theme="dark"] .adr-gauge-value{color:var(--color-white);}
.adr-gauge-bar{flex:1;min-width:140px;height:8px;background:var(--color-beige);position:relative;}
.adr-gauge-fill{position:absolute;top:0;left:0;bottom:0;background:var(--color-success);}
.adr-gauge-target{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--color-accent-red);}

/* Agents catalog */
.agents-toolbar{margin-bottom:var(--space-4);}
.agents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);}
@media (max-width:400px){.agents-grid{grid-template-columns:1fr;}}
.agent-card{background:var(--bg-page);border:1px solid var(--border-default);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);min-width:0;}
.agent-card:hover{border-color:var(--color-graphite);}
.agent-card-head{display:flex;align-items:center;gap:var(--space-3);}
.agent-card-icon{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg-surface-alt);color:var(--color-graphite);}
[data-theme="dark"] .agent-card-icon{color:var(--color-white);}
.agent-card-num{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-muted);}
.agent-card-name{font-size:var(--fs-14);font-weight:var(--fw-semibold);}
.agent-card-role{font-size:var(--fs-12);color:var(--fg-muted);line-height:1.4;}
.agent-card-foot{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2);border-top:1px solid var(--border-default);}
.agent-tag{font-family:var(--font-mono);font-size:var(--fs-12);padding:2px 8px;background:var(--bg-surface-alt);color:var(--fg-muted);}
.agent-tag.lane-fast{color:var(--fg-link);}
.agent-tag.lane-core{color:var(--color-graphite);font-weight:var(--fw-semibold);}
[data-theme="dark"] .agent-tag.lane-core{color:var(--color-white);}

/* Request form */
.request-form{display:flex;flex-direction:column;gap:var(--space-4);}
.form-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1;font-size:var(--fs-14);min-width:0;}
.form-field > span{font-size:var(--fs-12);color:var(--fg-muted);font-weight:var(--fw-medium);}
.form-field input,.form-field textarea,.form-field select{border:1px solid var(--border-strong);background:var(--bg-page);padding:var(--space-2) var(--space-3);font-size:var(--fs-14);color:var(--fg-default);border-radius:var(--radius);width:100%;}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--color-graphite);}
.form-field input:disabled,.form-field select:disabled{background:var(--bg-surface-alt);color:var(--fg-placeholder);cursor:not-allowed;}
.form-row{display:flex;gap:var(--space-4);flex-wrap:wrap;}
.form-row .form-field{min-width:200px;}
.checkbox-field{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--fs-14);color:var(--fg-default);line-height:1.35;}
.checkbox-field input{width:16px;height:16px;flex-shrink:0;margin-top:2px;}
.lane-preview{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-surface-alt);flex-wrap:wrap;border:1px solid var(--border-default);}
.lane-preview-label{font-size:var(--fs-12);color:var(--fg-muted);}
.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;}
.request-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);flex-wrap:wrap;}
.request-row:last-child{border-bottom:none;}
.request-meta{min-width:0;flex:1;}
.request-title{font-size:var(--fs-14);font-weight:var(--fw-semibold);}
.request-sub{font-size:var(--fs-12);color:var(--fg-muted);margin-top:2px;}
.request-badges{display:flex;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap;}
