:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--tg-theme-text-color,#17202a);background:var(--tg-theme-bg-color,#f4f6f8);letter-spacing:0;--accent:var(--tg-theme-button-color,#137c6b);--line:#dce2e5;--panel:var(--tg-theme-secondary-bg-color,#fff)}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.dev-banner{position:fixed;z-index:10;top:0;right:0;background:#ffda57;color:#211b00;font-weight:800;padding:5px 12px}aside{background:#172521;color:#f4fbf8;padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:18px;padding:8px 10px 24px}.brand svg{color:#5dd6b5}nav{display:grid;gap:4px}nav a{display:flex;gap:11px;align-items:center;color:#bcd0ca;text-decoration:none;padding:11px;border-radius:6px}nav a.active{background:#25443b;color:#fff}svg{width:20px;height:20px;flex:none}.profile{margin-top:auto;border-top:1px solid #355249;padding:16px 10px;display:grid;gap:4px}.profile span{font-size:12px;color:#a9bdb7}main{min-width:0}.page{max-width:1100px;margin:auto;padding:28px 30px 90px}.page>header{margin-bottom:24px}.page h1{font-size:28px;margin:0 0 6px}.page p,.section-title span,.row span,.toggle-row span{color:#657078;margin:0;font-size:14px}section,.metric,.row{background:var(--panel);border:1px solid var(--line);border-radius:7px}section{padding:20px;margin:16px 0}.metrics{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}.metric{padding:16px;display:grid;gap:9px}.metric span{font-size:13px;color:#657078}.metric strong{font-size:28px}.rows{display:grid;gap:8px}.row{min-height:64px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;color:inherit;text-decoration:none}.row>div{display:grid;gap:4px}.chat-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chat-grid section{margin:0}.section-title{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px}.section-title>div{flex:1}.section-title h2,section h2{font-size:17px;margin:0 0 3px}.info{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);font-size:14px}.toggle-row{display:flex;position:relative;align-items:center;gap:16px;padding:13px 0;border-top:1px solid var(--line);cursor:pointer}.toggle-row>div{display:grid;gap:3px;flex:1}.toggle-row input{position:absolute;opacity:0}.toggle-row i{width:42px;height:24px;background:#abb5b8;border-radius:12px;position:relative}.toggle-row i:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.18s}.toggle-row input:checked+i{background:var(--accent)}.toggle-row input:checked+i:after{left:21px}.warning,.status-line{display:flex;gap:9px;align-items:center;padding:12px;background:#fff5d8;color:#775b00;border-radius:6px;font-size:14px}.status-line{background:#e5f5ef;color:#155f4f}.empty{padding:28px;text-align:center;color:#6c777d}.badge{font-size:12px;font-weight:700;padding:4px 7px;border-radius:4px;background:#edf0f1}.badge.full,.badge.completed,.badge.generated{color:#12634e;background:#dff4ec}.badge.partial,.badge.high{color:#815c00;background:#fff0c3}.loading,.auth{min-height:70vh;display:flex;align-items:center;justify-content:center;gap:10px}.loading svg{animation:spin 1s linear infinite}.auth{flex-direction:column;text-align:center;padding:30px}.auth>svg{width:48px;height:48px;color:var(--accent)}.auth button{border:0;background:var(--accent);color:#fff;padding:11px 15px;border-radius:6px}.bottom-nav{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.app-shell{display:block}aside{display:none}.page{padding:18px 14px 90px}.page h1{font-size:23px}.metrics{grid-template-columns:1fr 1fr}.chat-grid{grid-template-columns:1fr}.bottom-nav{display:flex;position:fixed;z-index:9;bottom:0;left:0;right:0;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:var(--panel);border-top:1px solid var(--line);justify-content:space-around}.bottom-nav a{color:#68737a;text-decoration:none;display:grid;justify-items:center;gap:3px;font-size:10px;min-width:54px}.bottom-nav a.active{color:var(--accent)}}@media(max-width:360px){.metrics{grid-template-columns:1fr}.page{padding-left:10px;padding-right:10px}}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px}.toolbar button,.toolbar select,.pager button,.segments button,.calendar-item button,.notification button,.chat-actions button{min-height:38px;border:1px solid #cbd3d6;background:var(--panel);color:inherit;border-radius:6px;padding:8px 11px;display:inline-flex;align-items:center;gap:7px}.toolbar button:not(:disabled):hover,.chat-actions button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.48}.toolbar svg,.chat-actions svg,.calendar-item button svg,.notification button svg{width:17px;height:17px}.search{height:38px;display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid #cbd3d6;border-radius:6px;padding:0 10px;min-width:230px}.search svg{width:17px}.search input{border:0;outline:0;background:transparent;min-width:0;width:100%;color:inherit}.check{display:flex;align-items:center;gap:6px;font-size:14px}.segments{display:flex;border:1px solid #cbd3d6;border-radius:6px;overflow:hidden}.segments button{border:0;border-radius:0;border-right:1px solid #cbd3d6}.segments button:last-child{border-right:0}.segments button.active,.tabs button.active{background:#dff4ec;color:#12634e}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:7px;background:var(--panel)}table{border-collapse:collapse;width:100%;min-width:1120px;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}th{position:sticky;top:0;background:#eef2f2;color:#4e5a60;font-size:11px;text-transform:uppercase}tbody tr:hover{background:#f7f9f9}.pager{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:12px 0}.rows.compact .row{min-height:52px}.badge.on,.badge.ready,.badge.success{background:#dff4ec;color:#12634e}.badge.off,.badge.failed,.badge.forbidden{background:#fde6e3;color:#8e2e26}.badge.processing,.badge.pending,.badge.waiting{background:#e6f0fb;color:#235b8e}.kanban{display:grid;grid-template-columns:repeat(5,minmax(240px,1fr));gap:10px;overflow-x:auto;align-items:start;padding-bottom:12px}.kanban-column{margin:0;padding:10px;min-height:420px;background:#edf1f2}.kanban-column.drop{outline:2px solid var(--accent);background:#e2f3ed}.column-title{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 10px}.column-title span{background:#d5dcde;border-radius:10px;padding:2px 7px;font-size:12px}.task-card{display:flex;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 8px;margin-bottom:8px;cursor:grab;touch-action:none}.task-card.dragging{opacity:.68;z-index:20}.task-card>svg{width:15px;color:#8d989d}.task-card>div{display:grid;gap:4px;min-width:0}.task-card b{font-size:13px;overflow-wrap:anywhere}.task-card span,.task-card small{font-size:11px;color:#657078}.task-card .overdue{color:#a3342c;font-weight:700}.drop-zone{text-align:center;color:#8d989d;font-size:12px;padding:28px 5px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:6px;overflow:auto}.calendar-grid section{margin:0;padding:9px;min-height:130px}.calendar-grid.week section{min-height:380px}.calendar-item{display:flex;align-items:flex-start;gap:5px;background:#e4f2ee;border-left:3px solid var(--accent);padding:7px;margin-top:7px;border-radius:3px;min-width:0}.calendar-item.task{background:#e9eef6;border-color:#4b72a4}.calendar-item>div{display:grid;gap:2px;min-width:0;flex:1}.calendar-item b{font-size:11px;overflow-wrap:anywhere}.calendar-item span{font-size:10px;color:#657078}.calendar-item button{padding:3px;min-height:27px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin:18px 0 10px}.tabs button{border:0;background:transparent;padding:9px 12px;text-transform:capitalize}.metrics.small{grid-template-columns:repeat(4,minmax(140px,1fr))}.metrics.small .metric strong{font-size:18px;overflow-wrap:anywhere}.notification{justify-content:flex-start}.notification>div{flex:1}.notification>svg{color:var(--accent)}.notification button{padding:6px;min-height:32px}.diagnostic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.diagnostic-grid>div{border:1px solid var(--line);padding:12px;display:grid;gap:5px}.diagnostic-grid span{font-size:12px;color:#657078}.diagnostic-grid b{font-size:21px}.nav-count{margin-left:auto;background:#d55b50;color:#fff;border-radius:10px;font-size:10px;padding:2px 6px}.chat-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}.coverage-test{width:100%;display:grid;gap:7px;background:#eef3f4;padding:12px;border-radius:6px}.coverage-test code{font-size:18px;font-weight:800;letter-spacing:0;background:#fff;padding:9px;border:1px dashed #859397;-webkit-user-select:all;user-select:all}.coverage-test span{font-size:12px;color:#657078}.question-box{display:flex;gap:8px}.question-box textarea{flex:1;min-height:76px;resize:vertical;border:1px solid #cbd3d6;border-radius:6px;padding:10px;color:inherit;background:var(--panel)}.question-box button{align-self:flex-end;min-height:38px;border:0;border-radius:6px;background:var(--accent);color:#fff;padding:8px 12px}.preference-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.preference-row>div{display:grid;gap:3px}.preference-row span{font-size:12px;color:#657078}.preference-row select{min-height:36px;border:1px solid #cbd3d6;border-radius:6px;background:var(--panel);color:inherit}@media(max-width:1000px){.metrics.small,.diagnostic-grid{grid-template-columns:1fr 1fr}.calendar-grid{grid-template-columns:repeat(7,minmax(115px,1fr))}}@media(max-width:760px){.toolbar>*{flex:1}.toolbar button,.toolbar select{justify-content:center}.search{min-width:100%}.kanban{grid-template-columns:repeat(5,82vw);scroll-snap-type:x proximity}.kanban-column{scroll-snap-align:start}.calendar-grid{grid-template-columns:repeat(7,78vw);scroll-snap-type:x proximity}.calendar-grid section{scroll-snap-align:start}.metrics.small{grid-template-columns:1fr 1fr}.diagnostic-grid{grid-template-columns:1fr}.table-scroll{margin-left:-14px;margin-right:-14px;border-radius:0}.chat-actions button{flex:1;justify-content:center}.question-box{display:grid}.preference-row{align-items:flex-start}.preference-row select{max-width:48%}}.workspace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.page-topline{display:flex;align-items:center;gap:9px;margin-bottom:14px}.icon-command{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit}.breadcrumbs{display:flex;align-items:center;gap:5px;min-width:0;overflow:auto}.breadcrumbs span{display:flex;align-items:center;gap:5px;white-space:nowrap}.breadcrumbs svg{width:13px;height:13px}.breadcrumbs a{color:#657078;text-decoration:none;font-size:12px}.header-actions{display:flex;gap:8px}.clickable-metric{position:relative;color:inherit;text-decoration:none;min-height:106px;transition:border-color .16s,transform .16s,box-shadow .16s}.clickable-metric>svg{position:absolute;right:12px;bottom:12px;width:16px;color:#849096}.clickable-metric:hover,.clickable-metric:focus-visible{border-color:var(--accent);box-shadow:0 4px 14px #10231d14;transform:translateY(-1px);outline:none}.clickable-metric:active{transform:translateY(0)}.clickable-metric small{color:#657078}.dashboard-metrics{grid-template-columns:repeat(4,minmax(150px,1fr))}.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.project-card{display:grid;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:17px;color:inherit;text-decoration:none;transition:border-color .16s,box-shadow .16s}.project-card:hover,.project-card:focus-visible{border-color:var(--accent);box-shadow:0 5px 18px #10231d12;outline:none}.project-card-heading{display:flex;justify-content:space-between;gap:10px}.project-card h2{font-size:17px;margin:0 0 4px}.project-card-heading span,.project-health{font-size:12px;color:#657078}.project-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.project-stats span{border-left:2px solid #b8c4c2;padding-left:8px;font-size:12px;color:#657078}.project-stats b{font-size:16px;color:inherit}.project-health{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:11px}.route-tabs{overflow:auto}.route-tabs a{padding:9px 12px;color:#657078;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}.route-tabs a.active{color:#12634e;border-color:var(--accent);background:#e8f4f0}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-grid section{margin:0}.command-link,.command-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cbd3d6;border-radius:6px;padding:8px 12px;background:var(--panel);color:inherit;text-decoration:none}.command-button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.command-link:hover,.command-button:hover{border-color:var(--accent);color:var(--accent)}.command-button.primary:hover{color:#fff}.entity-row{justify-content:flex-start}.entity-row>div{flex:1;min-width:0}.entity-row>svg:last-child{color:#849096}.entity-row:hover,.entity-row:focus-visible{border-color:var(--accent);outline:none}.state-panel{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;border:1px dashed #bdc8ca;border-radius:7px;color:#657078}.state-panel h2{font-size:17px;color:inherit;margin:10px 0 3px}.state-panel p{margin:0;max-width:520px}.state-panel>svg{width:30px;height:30px}.error-state{color:#933a32;background:#fff8f6;border-color:#e7b8b2}.facts{display:grid;gap:0;margin:0}.facts>div{display:grid;grid-template-columns:minmax(130px,220px) 1fr;gap:16px;border-top:1px solid var(--line);padding:10px 0}.facts dt{font-size:12px;color:#657078}.facts dd{margin:0;min-width:0}.facts p{margin:0}.fact-list{display:grid;gap:7px}.digest-text,.long-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.owner-analysis{border-left:3px solid #8b5fb8}.timeline{display:grid;gap:12px}.timeline>div{display:flex;gap:10px}.timeline i{width:9px;height:9px;border-radius:50%;background:var(--accent);margin-top:5px}.timeline>div>div{display:grid;gap:2px}.timeline span{font-size:12px;color:#657078}.action-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.action-row button{min-height:38px;border:1px solid #cbd3d6;background:var(--panel);border-radius:6px;padding:8px 12px}.inline-error{color:#9b3028;background:#fff0ed;padding:10px;border-radius:6px}.edit-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.edit-form h2{grid-column:1/-1}.edit-form label{display:grid;gap:5px;font-size:12px;color:#657078}.edit-form input,.edit-form textarea,.edit-form select{min-height:40px;border:1px solid #cbd3d6;border-radius:6px;padding:9px;color:inherit;background:var(--panel)}.edit-form textarea{min-height:90px;resize:vertical}.edit-form .command-button{justify-self:start}.message-list{display:grid;gap:9px}.message-item{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:13px}.message-item header,.message-item footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.message-item time,.message-item footer{font-size:11px;color:#657078}.message-item footer{justify-content:flex-start}.message-item p{white-space:pre-wrap;overflow-wrap:anywhere}.version{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line)}.version span{font-size:12px;color:#657078}.permission-list{display:flex;flex-wrap:wrap;gap:6px}.permission-list code{font-size:11px;background:#eef2f2;border:1px solid #dbe2e3;border-radius:4px;padding:5px 7px}.task-card a{display:grid;gap:4px;min-width:0;color:inherit;text-decoration:none}.filter-bar{margin-top:10px}blockquote{border-left:3px solid #aebbb8;margin:10px 0;padding:9px 12px;background:#f6f8f8;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:1000px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(140px,1fr))}}@media(max-width:760px){.workspace-header{display:grid}.header-actions{width:100%}.dashboard-metrics{grid-template-columns:1fr 1fr}.project-list,.detail-grid{grid-template-columns:1fr}.project-health{display:grid}.route-tabs{margin-left:-14px;margin-right:-14px;padding:0 14px}.edit-form{grid-template-columns:1fr}.facts>div{grid-template-columns:1fr;gap:4px}.breadcrumbs{max-width:calc(100vw - 72px)}}.user-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.user-card{margin:0}.user-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.user-card h2{margin:0 0 3px}.user-card header span{font-size:12px;color:#657078}.user-card .permission-list button,.user-card .info button{border:1px solid #cbd3d6;border-radius:4px;background:var(--panel);padding:5px 7px;color:inherit}@media(max-width:760px){.user-list{grid-template-columns:1fr}}.pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;align-items:start}.pipeline>section{margin:0;background:#eef2f2}.permission-note{color:#657078;border-left:3px solid #8d989d;padding:8px 12px}.error-list{display:grid;gap:10px}.diagnostic-error{margin:0}.diagnostic-error>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.diagnostic-error>header span{color:#657078;font-size:12px}.diagnostic-error h2{font-size:16px}.filter-bar label:not(.check){display:grid;gap:4px;font-size:11px;color:#657078}.filter-bar label input{min-height:36px}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--panel);color:inherit;padding:10px 13px;border-radius:6px;cursor:pointer}.secondary-button:disabled{opacity:.55}.link-flow{display:grid;gap:10px;padding:13px;background:#eef6f3;border:1px solid #c7ded7;border-radius:6px}.link-flow p{margin:0}.link-flow code{display:block;overflow-wrap:anywhere;padding:10px;background:#172521;color:#fff;border-radius:5px;font-size:13px}
