:root{
  --paper:#fcfaf6; --paper2:#fdfbf7; --card:#fdfbf7e8; --ink:#2f2a24;
  --muted:#6e655a; --line:#e9e1d4; --blue:#6d98c7; --orange:#d7a15a;
  --green:#6c9b78; --violet:#9482b8; --shadow:0 8px 24px rgba(76,63,44,.045);
}
*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:linear-gradient(135deg,#fcfaf6,#fcfaf6 52%,#f7f3ec)}
body{position:relative}.paper-grain{position:fixed;inset:0;pointer-events:none;opacity:.025;background-image:radial-gradient(#8e806b .45px,transparent .55px);background-size:6px 6px;mix-blend-mode:multiply}
.shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr;position:relative}
.sidebar{padding:24px 16px;border-right:1px solid #e9e1d4;background:#f8f4eed9;backdrop-filter:blur(2px)}
.brand{display:flex;gap:11px;align-items:center;padding:4px 10px 26px;font-size:15px}.brand-mark{width:34px;height:34px;border-radius:9px;background:#405f48;color:#fff;display:grid;place-items:center;font-weight:800}
nav{display:grid;gap:5px}nav a{color:#3e3932;text-decoration:none;padding:11px 13px;border-radius:9px;display:flex;gap:12px;align-items:center;font-size:14px}
nav a.active{background:#f4ebdd;border:1px solid #e3d4bd;font-weight:700}
main{min-width:0}.topbar{height:76px;border-bottom:1px solid #e9e1d4;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#fcfaf6e6}
.search{width:min(440px,45vw);padding:11px 14px;border:1px solid #dfcca4;background:#fdfbf8e6;border-radius:11px;color:#8b7d65;font-size:14px}
.user{display:flex;align-items:center;gap:10px;font-size:12px}.user small{display:block;color:var(--muted)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#8a6c4a;color:#fff;font-weight:700}.bell{font-size:20px;color:#5f5952}
.content{padding:28px 32px 44px;max-width:1450px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.page-head h1{font-family:Georgia,serif;font-size:34px;margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}
.period{display:flex;gap:4px;border:1px solid var(--line);border-radius:9px;padding:3px;background:#fbf8f3}.period button{border:0;background:transparent;padding:8px 14px;border-radius:7px;color:#625b53}.period .selected{background:#f3eadc;box-shadow:inset 0 0 0 1px #e1d3bd}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:16px}.stats article,.panel{background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}
.stats article{padding:17px;display:flex;align-items:center;gap:14px}.stats strong{display:block;font-size:27px;font-family:Georgia,serif}.stats small{color:var(--muted)}.ico{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800}.ico.blue{background:#d8e8f8;color:#3973ad}.ico.orange{background:#f3dec0;color:#b77418}.ico.violet{background:#e6dcf3;color:#735aa1}.ico.green{background:#dbead9;color:#41805a}
.grid-two{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}.grid-two.bottom{grid-template-columns:1fr 1fr}.panel{padding:18px}.panel h3{margin:0 0 16px;font-family:Georgia,serif;font-size:18px}
.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.time-grid strong{font-size:28px;font-family:Georgia,serif;display:block}.time-grid small{color:var(--muted);display:block;margin:4px 0 9px}.bar,.project-progress{display:block;height:8px;background:#eee7dc;border-radius:10px;overflow:hidden}.bar i,.project-progress i{display:block;height:100%;background:var(--blue);border-radius:10px}.bar.fact i{background:var(--green)}
.focus{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border:1px dashed #d7c5a8;border-radius:10px;background:#faf5ed}.focus b{color:#4d7196}.focus em{font-style:normal;font-size:12px;padding:5px 9px;border-radius:30px;background:#d9e8f6;color:#35688f}
.projects{display:grid;gap:12px}.project-row{display:grid;grid-template-columns:36px 1.2fr 1fr 45px 42px;gap:9px;align-items:center;font-size:13px}.project-icon{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:#f3eadb;font-weight:700}.project-row small{color:var(--muted);text-align:right}
.activity{display:grid;gap:11px}.activity>div{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;border-bottom:1px dashed #e5dccf;padding-bottom:9px}.activity p{margin:0;font-size:13px}.activity small{color:var(--muted);font-size:11px}.dot{color:#699170;font-size:20px}
@media(max-width:900px){.shell{grid-template-columns:74px 1fr}.sidebar{padding:18px 10px}.brand strong,nav span{display:none}.brand{padding-left:5px}.brand-mark{width:38px;height:38px}.topbar{padding:0 15px}.user span:last-child{display:none}.content{padding:20px 16px}.stats{grid-template-columns:1fr 1fr}.grid-two,.grid-two.bottom{grid-template-columns:1fr}.page-head{align-items:start;gap:14px;flex-direction:column}.period{overflow:auto;max-width:100%}.search{width:65vw}.project-row{grid-template-columns:34px 1fr 1fr 40px}.project-row small{display:none}}
@media(max-width:560px){.stats{grid-template-columns:1fr}.time-grid{grid-template-columns:1fr}.focus{grid-template-columns:auto 1fr}.focus em{grid-column:2}.period button{padding:7px 10px}.page-head h1{font-size:29px}}

/* Этап 2: проекты, задачи, канбан */
a{color:inherit}
.search{display:flex;gap:8px;align-items:center}.search input{border:0;outline:0;background:transparent;width:100%;font:inherit;color:var(--ink)}
.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:9px;padding:10px 15px;font-weight:700;font-size:14px;white-space:nowrap}
.primary-btn{background:#6f8f74;color:#fff;border:1px solid #5f7d65;box-shadow:0 4px 12px rgba(63,91,68,.11)}
.secondary-btn{background:#fdfbf8;border:1px solid var(--line);color:var(--ink)}
.crumbs{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:14px}.crumbs a{text-decoration:none}.crumbs b{color:var(--ink)}
.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:-3px 0 18px}.tabs a{text-decoration:none;padding:11px 3px;color:var(--muted);font-size:14px}.tabs a.active{color:var(--ink);font-weight:700;border-bottom:2px solid #b89b6c}
.project-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px;text-decoration:none;transition:.18s transform,.18s box-shadow}.project-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(76,63,44,.07)}
.project-card-head{display:flex;gap:14px;align-items:flex-start}.project-icon.large{width:44px;height:44px;border-radius:10px;flex:0 0 44px}.project-card h3{font:700 20px Georgia,serif;margin:1px 0 4px}.project-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.project-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.project-metrics span{background:#faf6ef;border:1px solid #ece4d8;border-radius:10px;padding:10px 12px}.project-metrics b{display:block;font-size:20px}.project-metrics small{color:var(--muted)}
.project-card-foot{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.project-card-foot b{font-size:13px}.largebar{height:9px}
.mini-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:17px}.mini-stats span{background:#faf7f1;border:1px solid #ece4d8;border-radius:10px;padding:11px}.mini-stats b{display:block;font-size:22px}.mini-stats small{color:var(--muted);font-size:11px}
.progress-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:10px 0 7px}
.component-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.component-grid span{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fcfaf6}.component-grid b,.component-grid small{display:block}.component-grid small{color:var(--muted);margin-top:3px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-head h3{margin:0}.panel-head a{font-size:13px;text-decoration:none;color:#58779a}
.compact-tasks{display:grid}.compact-tasks>a{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto;gap:10px;align-items:center;text-decoration:none;padding:10px 4px;border-bottom:1px dashed #e5dccf;font-size:13px}.compact-tasks>a:last-child{border-bottom:0}.compact-tasks>a>b{color:#557b9d}
.status,.priority{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-style:normal;white-space:nowrap;border:1px solid transparent}
.status.backlog{background:#eee9e1;color:#6e655a}.status.ready{background:#e8e1f1;color:#6d5a91}.status.in_progress{background:#dfeaf4;color:#426f96}.status.testing{background:#f4e6cf;color:#9b691c}.status.blocked{background:#f3dddd;color:#a14b4b}.status.done{background:#dfece2;color:#4c7a59}
.priority.low{background:#e5eee7;color:#55745d}.priority.medium{background:#f3e7cf;color:#9a6d27}.priority.high{background:#f3ded7;color:#a55642}.priority.critical{background:#ead4d4;color:#913b3b;font-weight:700}
.filters{display:flex;gap:9px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.filters select,.kanban-actions select,.filters button{border:1px solid var(--line);background:#fcfaf6;border-radius:8px;padding:9px 11px;color:var(--ink)}.filters button{font-weight:700;cursor:pointer}.filters a{font-size:13px;color:var(--muted);text-decoration:none}
.table-wrap{overflow:auto;padding:0}.task-table{width:100%;border-collapse:collapse;font-size:12px;min-width:980px}.task-table th{text-align:left;color:var(--muted);font-weight:600;padding:12px;border-bottom:1px solid var(--line);background:#faf7f1}.task-table td{padding:12px;border-bottom:1px solid #eee7dc}.task-table tr{cursor:pointer}.task-table tbody tr:hover{background:#faf6ef}.task-table td:first-child{color:#557b9d}
.kanban-content{max-width:none}.kanban-actions{display:flex;gap:9px}.kanban-board{display:grid;grid-template-columns:repeat(5,minmax(235px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:15px}.kanban-column{background:#f7f3ec;border:1px solid var(--line);border-radius:13px;min-width:235px}.kanban-column>header{padding:12px 13px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);font-size:13px}.kanban-column>header span{min-width:24px;height:24px;border-radius:99px;background:#eee7dc;display:grid;place-items:center}
.kanban-drop{min-height:390px;padding:9px;transition:.15s background}.kanban-drop.over{background:#f2eadf}.task-card{background:#fdfbf7;border:1px solid #e8dfd2;border-radius:10px;padding:11px;margin-bottom:9px;box-shadow:0 3px 10px rgba(75,61,40,.04);cursor:grab}.task-card.dragging{opacity:.45}.task-card-top{display:flex;justify-content:space-between;gap:7px;align-items:center}.task-card-top>a{font-size:11px;font-weight:800;color:#557b9d;text-decoration:none}.task-card h4{font-size:13px;line-height:1.3;margin:8px 0}.task-card h4 a{text-decoration:none}.task-card p{font-size:11px;color:var(--muted);margin:0 0 10px}.task-card footer{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.add-card{display:block;text-decoration:none;text-align:center;padding:9px;border:1px dashed #ddcfba;border-radius:9px;color:#6d675e;font-size:12px;background:#fbf8f3}
.form-grid{display:grid;grid-template-columns:1fr 1.25fr .75fr;gap:14px;align-items:start}.task-form label{display:block;font-size:12px;color:var(--muted);font-weight:600;margin:12px 0 5px}.task-form input,.task-form select,.task-form textarea,.inline-form input,.worklog-form input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fdfbf8;padding:10px 11px;font:inherit;color:var(--ink);outline:none}.task-form textarea{resize:vertical;min-height:110px}.task-form textarea.textarea-lg{min-height:220px}.task-form textarea.textarea-md{min-height:140px}.task-form textarea.textarea-sm{min-height:90px}.ready-note{font-size:9px;font-weight:600;color:var(--muted);background:#f0ece5;border-radius:999px;padding:2px 6px;margin-left:4px;white-space:nowrap}.task-form input:focus,.task-form select:focus,.task-form textarea:focus{border-color:#b8a78d;box-shadow:0 0 0 3px rgba(191,169,131,.1)}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.time-inputs{display:grid;grid-template-columns:1fr auto 1fr auto;gap:7px;align-items:center}.form-actions{display:flex;gap:14px;align-items:center;margin-top:16px}.form-actions button{cursor:pointer}.form-actions>a{text-decoration:none;color:var(--muted)}
.task-title>div{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.task-title h1{grid-column:2;margin:0}.task-code{grid-row:1;grid-column:1;background:#eee3d4;border:1px solid #e1d4c2;border-radius:8px;padding:7px 9px;color:#597898;font-weight:800}
.task-detail-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}.task-meta{position:sticky;top:92px}.task-meta dl{display:grid;grid-template-columns:95px 1fr;gap:10px 8px;font-size:12px;margin:0 0 20px}.task-meta dt{color:var(--muted)}.task-meta dd{margin:0}.task-main{display:grid;gap:14px}.description{white-space:pre-wrap;line-height:1.55;font-size:14px;min-height:60px}.link-box{margin-top:15px;padding:10px;border-radius:8px;background:#faf6ef;font-size:12px;overflow-wrap:anywhere}.link-box a{color:#52779c}
.subtasks{display:grid;gap:7px}.subtasks form{display:flex;gap:9px;align-items:center}.check{width:23px;height:23px;border:1px solid #cfc3b1;border-radius:6px;background:#fdfbf8;color:#fff;cursor:pointer}.check.done{background:#6f9b79;border-color:#6f9b79}.done-text{text-decoration:line-through;color:var(--muted)}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:13px}.inline-form button,.worklog-form button{border:1px solid #d6c8b3;background:#f2e8da;border-radius:8px;padding:8px 11px;cursor:pointer;color:var(--ink)}
.worklogs{display:grid}.worklogs>div{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed #e5dccf;font-size:12px}.worklogs p{margin:0}.worklogs span{color:var(--muted);font-size:11px}.worklog-form{display:grid;grid-template-columns:60px auto 60px auto minmax(160px,1fr) auto;gap:6px;align-items:center;margin-top:13px}.empty{color:var(--muted);font-size:13px}
.focus{text-decoration:none}
@media(max-width:1100px){.form-grid{grid-template-columns:1fr 1fr}.form-grid article:last-child{grid-column:1/-1}.project-cards{grid-template-columns:1fr}.kanban-board{grid-template-columns:repeat(5,250px)}}
@media(max-width:900px){.task-detail-grid{grid-template-columns:1fr}.task-meta{position:static}.mini-stats{grid-template-columns:1fr 1fr}.compact-tasks>a{grid-template-columns:62px minmax(150px,1fr) auto auto}.form-grid{grid-template-columns:1fr}.form-grid article:last-child{grid-column:auto}.worklog-form{grid-template-columns:52px auto 52px auto 1fr}.worklog-form button{grid-column:1/-1}.kanban-actions{width:100%;justify-content:space-between}.project-title{flex-direction:row}}
@media(max-width:600px){.project-metrics{grid-template-columns:1fr}.compact-tasks>a{grid-template-columns:55px 1fr}.compact-tasks .priority,.compact-tasks .status{display:none}.task-title>div{grid-template-columns:1fr}.task-title h1{grid-column:1}.task-code{grid-row:auto}.mini-stats{grid-template-columns:1fr 1fr}.worklogs>div{grid-template-columns:1fr auto}.worklogs p{grid-column:1/-1}}

/* Планшетная полировка v0.1 */
.task-title h1{
  font-size:30px;
  line-height:1.12;
  letter-spacing:-.01em;
}
.task-code{
  padding:6px 8px;
  font-size:13px;
}
.task-detail-grid{
  grid-template-columns:255px minmax(0,1fr);
  gap:12px;
}
.task-meta{padding:16px}
.task-main{gap:12px}
.task-main .panel{padding:16px}
.task-main .panel h3,.task-meta h3{font-size:17px}
.subtasks{gap:6px}
.description{font-size:13px;line-height:1.5}
.kanban-content{
  padding-left:22px;
  padding-right:22px;
}
.kanban-content .page-head{
  margin-bottom:16px;
}
.kanban-content .page-head h1{
  font-size:31px;
}
.kanban-content .page-head p{
  font-size:13px;
}
.kanban-board{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  overflow:visible;
}
.kanban-column{
  min-width:0;
}
.kanban-column>header{
  padding:10px 10px;
  font-size:12px;
  gap:6px;
}
.kanban-column>header b{
  line-height:1.15;
}
.kanban-column>header span{
  min-width:21px;
  width:21px;
  height:21px;
  font-size:11px;
}
.kanban-drop{
  min-height:500px;
  padding:7px;
}
.task-card{
  padding:9px;
  margin-bottom:7px;
  border-radius:9px;
}
.task-card-top>a{font-size:10px}
.task-card .priority{
  font-size:9px;
  padding:3px 6px;
}
.task-card h4{
  font-size:12px;
  line-height:1.25;
  margin:7px 0;
}
.task-card p{
  font-size:10px;
  line-height:1.25;
  margin-bottom:8px;
}
.task-card footer{
  font-size:9px;
  gap:5px;
}
.add-card{
  padding:8px 5px;
  font-size:11px;
}
.kanban-actions{
  gap:8px;
}
.kanban-actions select{
  padding:8px 9px;
  font-size:12px;
}
.kanban-actions .primary-btn{
  padding:9px 12px;
  font-size:12px;
}

@media (min-width:1100px) and (max-width:1700px){
  .kanban-content{
    padding-left:18px;
    padding-right:18px;
  }
  .kanban-board{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
  }
}

@media (max-width:1200px){
  .task-title h1{font-size:28px}
  .task-detail-grid{grid-template-columns:240px minmax(0,1fr)}
}

@media (max-width:900px){
  .task-title h1{font-size:27px}
  .task-detail-grid{grid-template-columns:1fr}
  .kanban-board{
    grid-template-columns:repeat(5,220px);
    overflow-x:auto;
  }
}

/* Защищённый вход */
.logout-link{font-size:12px;text-decoration:none;color:var(--muted);padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fdfbf8}
.logout-link:hover{color:var(--ink);background:#faf6ef}
.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#fcfaf6,#faf7f1 52%,#f7f3ec)}
.auth-shell{width:min(100%,720px);padding:28px;position:relative}
.auth-card{background:#fdfbf7f2;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(76,63,44,.07);padding:30px}
.auth-brand{display:flex;gap:12px;align-items:center;padding-bottom:22px;border-bottom:1px solid #eee7dc}
.auth-brand>div{display:grid;gap:2px}.auth-brand b{font-size:15px}.auth-brand small{font-size:11px;color:var(--muted)}
.auth-copy{padding:24px 0 8px}.auth-kicker{display:inline-block;font-size:11px;color:#6c7f69;background:#e8eee6;border:1px solid #d8e4d6;border-radius:999px;padding:5px 8px;margin-bottom:10px}
.auth-copy h1{font-family:Georgia,serif;font-size:32px;margin:0 0 8px}.auth-copy p{margin:0;color:var(--muted);line-height:1.55;font-size:13px;max-width:560px}
.auth-form{display:grid;gap:8px;margin-top:18px}.auth-form label{font-size:12px;color:var(--muted);font-weight:600;margin-top:7px}
.auth-form input{border:1px solid var(--line);border-radius:10px;background:#fffefa;padding:12px 13px;font:inherit;color:var(--ink);outline:none}
.auth-form input:focus{border-color:#b8a78d;box-shadow:0 0 0 3px rgba(191,169,131,.1)}
.auth-submit{margin-top:12px;border:1px solid #5f7d65;border-radius:10px;background:#6f8f74;color:#fff;padding:12px 14px;font-weight:700;font-size:14px;cursor:pointer}
.auth-submit:hover{background:#66856b}
.auth-error{background:#f6e4df;border:1px solid #e8c8be;color:#8f4938;padding:10px 12px;border-radius:9px;font-size:12px}
.auth-note{margin-top:14px;padding:10px 12px;background:#faf6ef;border:1px dashed #ded2c0;border-radius:9px;color:var(--muted);font-size:11px;line-height:1.45}
@media(max-width:600px){.auth-shell{padding:15px}.auth-card{padding:22px}.auth-copy h1{font-size:27px}}

/* Этап 4: поиск и компоненты */
.filter-search{min-width:270px;flex:1;border:1px solid var(--line);background:#fcfaf6;border-radius:8px;padding:9px 11px;color:var(--ink);font:inherit}
.component-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.component-project-title{display:flex;align-items:center;gap:10px}.component-project-title h3{margin:0}.component-project-title small{color:var(--muted)}
.component-list{display:grid;gap:7px}.component-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #ece4d8;background:#fcfaf6;border-radius:10px;text-decoration:none}
.component-list>a:hover{background:#faf6ef}.component-list b,.component-list small{display:block}.component-list small{color:var(--muted);margin-top:3px;font-size:11px}
.component-counts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.component-counts em{font-style:normal;font-size:10px;padding:4px 7px;border-radius:999px;background:#eee7dc;color:#6e655a}
@media(max-width:1000px){.component-projects{grid-template-columns:1fr}.filter-search{min-width:100%}}

/* Защита от дублей */
.duplicate-warning{max-width:900px}
.draft-task{display:grid;gap:5px;padding:13px 14px;background:#faf6ef;border:1px dashed #d9ccb8;border-radius:10px;margin-bottom:20px}
.draft-task small{color:var(--muted)}
.duplicate-list{display:grid;gap:8px}.duplicate-list>a{display:flex;justify-content:space-between;gap:18px;align-items:center;text-decoration:none;border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:#fdfbf8}
.duplicate-list>a:hover{background:#faf6ef}.duplicate-list span{display:grid;gap:4px}.duplicate-list span:first-child{grid-template-columns:auto 1fr;align-items:center;column-gap:10px}.duplicate-list span:first-child b{color:#557b9d}.duplicate-list strong{font-size:13px}.duplicate-list span:last-child{justify-items:end}.duplicate-list small{color:var(--muted);font-size:10px}
.duplicate-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:20px}.duplicate-actions form{margin:0}
.danger-soft-btn{border:1px solid #e1bfb4;background:#f5e4df;color:#8e4939;border-radius:9px;padding:10px 13px;font-weight:700;cursor:pointer}
@media(max-width:700px){.duplicate-list>a{align-items:flex-start;flex-direction:column}.duplicate-list span:last-child{justify-items:start}.duplicate-actions{justify-content:flex-start;flex-wrap:wrap}}

/* Этап 6: управленческий слой */
.ico.red{background:#f3dddd;color:#a14b4b}
.management-focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.focus-panel{min-height:150px}.paper-label{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}
.blue-label{background:#e2ebf4;color:#537493}.green-label{background:#e5eee7;color:#56775f}
.management-task{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;text-decoration:none;padding:14px;border:1px solid #e7ded1;border-radius:11px;background:#fdfbf8}
.management-task.current{border-left:4px solid #6d98c7}.management-task.next{border-left:4px solid #6c9b78}
.management-code{font-weight:800;font-size:12px;color:#557b9d;background:#f0e8dc;border-radius:7px;padding:6px 7px}
.management-task-body{display:grid;gap:5px;min-width:0}.management-task-body strong{font-size:14px;line-height:1.25}.management-task-body small,.management-estimate{color:var(--muted);font-size:11px}
.management-task-side{display:grid;gap:9px;justify-items:end}.management-task-side>b{font-size:12px}
.task-progress-line{height:6px;background:#eee7dc;border-radius:10px;overflow:hidden;margin-top:3px}.task-progress-line i{display:block;height:100%;background:#6d98c7;border-radius:10px}
.management-empty{border:1px dashed #dfd4c3;border-radius:10px;padding:20px;color:var(--muted);font-size:12px;background:#fcfaf6}.management-empty.compact{padding:12px}
.management-middle{grid-template-columns:1.15fr .85fr}
.attention-list{display:grid;gap:7px}.attention-list>a{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-decoration:none;padding:9px;border-radius:9px;border:1px solid #eddfd9;background:#fdf9f6}
.attention-mark{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f3dddd;color:#9c493e;font-weight:800}.attention-list span:nth-child(2){display:grid;gap:2px}.attention-list b{font-size:12px}.attention-list small{font-size:10px;color:var(--muted)}
.management-time strong{font-size:25px}.report-link{display:inline-block;margin-top:17px;font-size:11px;color:#58779a;text-decoration:none}
.important-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.important-grid>a{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;padding:10px 11px;border:1px solid #eee5d9;border-radius:9px;background:#fdfbf8}.important-grid>a>div{display:grid;gap:3px}.important-grid>a>div:first-child{grid-template-columns:auto 1fr;column-gap:7px}.important-grid b{color:#557b9d;font-size:11px}.important-grid span{font-size:12px}.important-grid small{font-size:9px;color:var(--muted);text-align:right}
.management-projects .project-row{text-decoration:none}.management-projects .project-name{display:grid;gap:2px}.management-projects .project-name small{font-size:9px;color:var(--muted);text-align:left}
.report-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.report-controls select{border:1px solid var(--line);background:#fcfaf6;border-radius:9px;padding:9px 11px;color:var(--ink)}
.report-periods{display:flex;gap:4px;padding:3px;background:#f8f3eb;border:1px solid var(--line);border-radius:9px}.report-periods button{border:0;background:transparent;border-radius:7px;padding:8px 13px;color:var(--muted);cursor:pointer}.report-periods button.selected{background:#f3eadc;color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 1px #e1d3bd}
.report-summary{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:12px;margin-bottom:16px}.report-stat{display:grid;gap:6px}.report-stat small{color:var(--muted);font-size:11px}.report-stat strong{font:700 21px Georgia,serif}
.reports-grid{grid-template-columns:1fr 1fr}.report-task-list,.report-worklogs{display:grid;max-height:440px;overflow:auto}.report-task-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;padding:10px 4px;border-bottom:1px dashed #e5dccf}.report-task-list>a>span{display:grid;gap:3px}.report-task-list>a>span:first-child{grid-template-columns:auto 1fr;column-gap:7px}.report-task-list b{font-size:11px;color:#557b9d}.report-task-list strong{font-size:12px}.report-task-list small{font-size:10px;color:var(--muted)}
.report-worklogs>div{display:grid;grid-template-columns:120px 1fr auto;gap:9px;align-items:center;padding:9px 3px;border-bottom:1px dashed #e5dccf}.report-log-time{font-size:9px;color:var(--muted)}.report-worklogs p{margin:0;font-size:11px}.report-worklogs strong{font-size:10px;white-space:nowrap}
.workload-table-wrap{overflow:auto}.workload-table{width:100%;border-collapse:collapse;font-size:11px}.workload-table th,.workload-table td{padding:10px;border-bottom:1px solid #eee7dc;text-align:center}.workload-table th:first-child,.workload-table td:first-child{text-align:left}.workload-table a{text-decoration:none}.danger-text{color:#a14b4b;font-weight:800}.muted-note{color:var(--muted);font-size:10px}
@media(max-width:1100px){.management-focus-grid{grid-template-columns:1fr}.important-grid{grid-template-columns:1fr}.report-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.management-middle,.reports-grid{grid-template-columns:1fr}.report-summary{grid-template-columns:repeat(2,1fr)}.report-controls{align-items:stretch;flex-direction:column}.report-controls select{width:100%}}
@media(max-width:600px){.management-task{grid-template-columns:auto 1fr}.management-task-side{grid-column:2;display:flex;justify-content:flex-start}.report-summary{grid-template-columns:1fr 1fr}.report-worklogs>div{grid-template-columns:1fr auto}.report-worklogs p{grid-column:1/-1}.important-grid>a{align-items:flex-start;flex-direction:column}}

/* Этап 8: календарь и сроки */
.deadline-overdue{color:#a14b4b!important;font-weight:800}.deadline-today{color:#a06e21!important;font-weight:800}
.calendar-tabs{display:flex;gap:6px;margin-bottom:14px}.calendar-tabs a{display:flex;align-items:center;gap:7px;text-decoration:none;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:#fcfaf6;color:var(--muted);font-size:12px}.calendar-tabs a.active{background:#f1e8da;color:var(--ink);font-weight:700;border-color:#dacbb6}.calendar-tabs span{min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ebe3d6;display:grid;place-items:center;font-size:10px}
.calendar-panel{padding:0;overflow:hidden}.calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);background:#faf7f1}.calendar-head>div{text-align:center}.calendar-head h2{font:700 20px Georgia,serif;margin:0 0 3px}.calendar-head>div a{font-size:10px;color:var(--muted);text-decoration:none}.calendar-nav{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fdfbf8;text-decoration:none;display:grid;place-items:center;font-weight:800}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#fbf8f3;border-bottom:1px solid var(--line)}.calendar-weekdays span{text-align:center;padding:8px;color:var(--muted);font-size:10px;font-weight:700}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-cell{min-height:145px;padding:8px;border-right:1px solid #eee7dc;border-bottom:1px solid #eee7dc;background:#fdfbf8}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.outside{background:#faf8f3;color:#aea394}.calendar-cell.today{background:#fffaf0;box-shadow:inset 0 0 0 2px #dfc795}
.calendar-day{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.calendar-day b{font-size:12px}.calendar-day small{font-size:8px;color:#9b762d;background:#f2e4c5;border-radius:999px;padding:3px 5px}
.calendar-events{display:grid;gap:4px}.calendar-event{display:grid;grid-template-columns:auto 1fr;column-gap:5px;row-gap:2px;text-decoration:none;border-radius:7px;padding:5px 6px;background:#edf2f6;border-left:3px solid #7596b3;min-width:0}.calendar-event.due,.calendar-event.planned_due{background:#f4ead8;border-left-color:#c99950}.calendar-event.overdue{background:#f5e1dc;border-left-color:#b95f4f}.calendar-event b{font-size:8px;color:#557b9d}.calendar-event span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event em{grid-column:2;font-size:7px;font-style:normal;color:var(--muted)}.more-events{font-size:8px;color:var(--muted);padding-left:4px}
.calendar-legend{display:flex;gap:14px;margin-top:10px;color:var(--muted);font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend i{width:8px;height:8px;border-radius:50%}.planned-dot{background:#7596b3}.due-dot{background:#c99950}.overdue-dot{background:#b95f4f}
.agenda-panel{max-width:1050px}.danger-label{background:#f3dddd;color:#994b43}.agenda-list{display:grid;gap:7px}.agenda-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;text-decoration:none;padding:11px 12px;border:1px solid #ebe2d6;border-radius:10px;background:#fdfbf8}.agenda-list>a.overdue-row{border-color:#ead0c9;background:#fdf8f6}.agenda-code{font-size:10px;font-weight:800;color:#557b9d;background:#f0e8dc;border-radius:7px;padding:5px 7px}.agenda-main{display:grid;gap:3px}.agenda-main b{font-size:12px}.agenda-main small{font-size:10px;color:var(--muted)}.agenda-dates{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.agenda-dates em{font-size:9px;font-style:normal;color:var(--muted);white-space:nowrap}.agenda-dates .due-text{color:#a14b4b;font-weight:700}
@media(max-width:1100px){.calendar-cell{min-height:125px;padding:6px}.calendar-event span{font-size:8px}.calendar-event{padding:4px}.calendar-page{padding-left:14px;padding-right:14px}}
@media(max-width:800px){.calendar-panel{overflow-x:auto}.calendar-weekdays,.calendar-grid{min-width:850px}.agenda-list>a{grid-template-columns:auto 1fr}.agenda-dates{grid-column:2;justify-content:flex-start}}

/* Этап 9: связи задач и блокировки */
.form-hint{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.4}
.block-reason-text{color:#8d4f43;font-weight:600;line-height:1.35}.block-reason-text small{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:400}
.relations-panel{overflow:hidden}.relation-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}.relation-group{min-width:0;border:1px solid #ece3d6;border-radius:10px;background:#fdfbf8;padding:10px}.relation-group h4{font-size:11px;margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.relation-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:7px 0;border-bottom:1px dashed #e8dfd2}.relation-row:last-of-type{border-bottom:0}.relation-row.pending{background:#fdf6f3;margin:0 -5px;padding:7px 5px;border-radius:7px}.relation-row>a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px;text-decoration:none;min-width:0}.relation-row>a b{font-size:9px;color:#557b9d}.relation-row>a span{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relation-state{font-size:8px!important;padding:3px 5px!important;white-space:nowrap}.relation-row form{margin:0}.relation-row form button{border:0;background:transparent;color:#a77a70;font-size:16px;line-height:1;cursor:pointer;padding:2px}
.empty.compact{font-size:9px;padding:5px 0;margin:0;color:var(--muted)}
.relation-add-form{display:grid;grid-template-columns:145px minmax(0,1fr) auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #ece3d6}.relation-add-form select{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fcfaf6;padding:8px 9px;color:var(--ink);font:inherit;font-size:10px}.relation-add-form button{border:1px solid #d7c9b5;border-radius:8px;background:#f4ecdf;padding:8px 10px;font-size:10px;font-weight:700;cursor:pointer}
@media(max-width:1150px){.relation-groups{grid-template-columns:1fr}.relation-add-form{grid-template-columns:1fr 1fr}.relation-add-form button{grid-column:1/-1}}
@media(max-width:700px){.relation-add-form{grid-template-columns:1fr}}

/* Заблокированные задачи над Канбаном */
.kanban-blocked-strip{margin-bottom:11px;border:1px solid #ead1ca;border-radius:11px;background:#fdf8f6;overflow:hidden}
.kanban-blocked-head{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid #eedbd5;color:#8c4e43;font-size:11px}
.kanban-blocked-head span{min-width:20px;height:20px;border-radius:999px;background:#f0dcd6;display:grid;place-items:center;font-size:9px}
.kanban-blocked-list{display:flex;gap:7px;overflow-x:auto;padding:8px}.kanban-blocked-list>a{flex:0 0 min(360px,80vw);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;text-decoration:none;border:1px solid #eadbd6;background:#fffaf8;border-radius:9px;padding:8px 9px}.blocked-code{font-size:9px;font-weight:800;color:#9b5a4d}.blocked-main{display:grid;gap:2px;min-width:0}.blocked-main b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blocked-main small{font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Этап 10: комментарии и история задачи */
.comment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:10px 0 14px}.comment-form textarea{resize:vertical;border:1px solid var(--line);border-radius:9px;background:#fcfaf6;padding:10px 11px;color:var(--ink);font:inherit;font-size:11px;min-height:62px}.comment-form button{align-self:end;border:1px solid #d7c9b5;border-radius:8px;background:#f4ecdf;padding:9px 11px;font-size:10px;font-weight:700;cursor:pointer}
.task-timeline{position:relative;display:grid;gap:0;max-height:520px;overflow:auto;padding-right:4px}.timeline-item{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding:8px 0}.timeline-item:before{content:"";position:absolute;left:8px;top:20px;bottom:-8px;width:1px;background:#e5dccf}.timeline-item:last-child:before{display:none}.timeline-dot{width:9px;height:9px;border-radius:50%;background:#b9aa96;margin-top:5px;z-index:1;box-shadow:0 0 0 3px #fdfbf8}.timeline-item.comment .timeline-dot{background:#6f8f74}.timeline-item.worklog .timeline-dot{background:#6d98c7}.timeline-item.event .timeline-dot{background:#b4966e}
.timeline-body{min-width:0;border-bottom:1px dashed #e7ded1;padding:0 0 9px}.timeline-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.timeline-head b{font-size:10px}.timeline-head em{font-style:normal;font-size:8px;color:var(--muted);background:#f1ebe2;border-radius:999px;padding:3px 6px}.timeline-head small{margin-left:auto;font-size:8px;color:var(--muted)}.timeline-body p{margin:5px 0 0;font-size:11px;line-height:1.45;white-space:pre-wrap}
.timeline-item.comment .timeline-body{background:#f8fbf7;border:1px solid #e0e9df;border-radius:8px;padding:8px 9px}.timeline-item.comment{padding-left:0}.timeline-worklog{margin-top:14px;padding-top:12px;border-top:1px solid #ece3d6}
@media(max-width:700px){.comment-form{grid-template-columns:1fr}.comment-form button{justify-self:start}.timeline-head small{width:100%;margin-left:0}}

/* Этап 11: настройки и backup */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.settings-desc{color:var(--muted);font-size:11px;line-height:1.55}.settings-desc code{font-size:10px;background:#f1ebe2;padding:2px 4px;border-radius:4px}.settings-kv{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px dashed #e7ded1;font-size:11px}.settings-kv span{color:var(--muted)}.settings-grid form .primary-btn{margin-top:14px;border:0}
.settings-form{display:grid;gap:8px}.settings-form label{font-size:11px;color:var(--muted);font-weight:700}.settings-form input{border:1px solid var(--line);border-radius:9px;background:#fcfaf6;padding:10px;color:var(--ink);font:inherit}.settings-form small{font-size:9px;color:var(--muted);line-height:1.4}.settings-form button{justify-self:start;border:1px solid #d7c9b5;border-radius:8px;background:#f4ecdf;padding:9px 12px;font-weight:700;cursor:pointer}
.settings-note{display:grid;grid-template-columns:100px 1fr;gap:10px;padding:10px 0;border-top:1px dashed #e7ded1;font-size:10px}.settings-note:first-of-type{margin-top:14px}.settings-note span{color:var(--muted)}
.settings-notice{padding:10px 12px;border-radius:9px;margin-bottom:14px;font-size:11px}.settings-notice.ok{background:#e8f1e9;color:#4f7158;border:1px solid #d6e6d8}.settings-notice.error{background:#f6e4df;color:#914b3d;border:1px solid #e8c8be}
.backup-list{display:grid}.backup-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) 90px 110px;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px dashed #e7ded1;font-size:10px}.backup-list>div>span:nth-child(2){display:grid;gap:2px;min-width:0}.backup-list b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backup-list small{color:var(--muted)}.backup-status{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800}.backup-status.ok{background:#e4eee6;color:#55785e}.backup-status.bad{background:#f2ded8;color:#9a4d40}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.backup-list>div{grid-template-columns:auto 1fr auto}.backup-list>div>span:last-child{grid-column:2/-1}}

/* Этап 12: рабочий режим Сегодня */
.today-workspace{display:grid;gap:12px}.today-section{padding:14px}.today-section .panel-head>div{display:grid;gap:2px}.today-section .panel-head h3{margin:0}.today-section .panel-head small{font-size:9px;color:var(--muted)}
.today-task-list{display:grid;gap:6px}.today-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #ebe2d6;border-radius:9px;background:#fdfbf8}.today-task-row.overdue-row{border-color:#ead0c9;background:#fdf8f6}.today-task-row.blocked-row{border-color:#ecd5cf;background:#fcf7f5}
.today-task-link{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;text-decoration:none;min-width:0}.today-meta{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}.today-meta em{font-style:normal;font-size:9px;white-space:nowrap}.today-meta>b{font-size:10px}
.quick-actions{display:flex;gap:5px;justify-content:flex-end}.quick-actions form{margin:0}.quick-actions button{border:1px solid #ddd2c2;background:#faf6ef;color:var(--ink);border-radius:7px;padding:6px 8px;font-size:9px;white-space:nowrap;cursor:pointer}.quick-actions .quick-start{background:#e7eee7;border-color:#d1dfd2;color:#526f58}.quick-actions .quick-done{background:#e7edf4;border-color:#d2deea;color:#52708d}.quick-actions button:hover{filter:brightness(.98)}
@media(max-width:1050px){.today-task-row{grid-template-columns:minmax(0,1fr) auto}.quick-actions{grid-column:1/-1;justify-content:flex-start;padding-left:38px}}
@media(max-width:650px){.today-task-row{grid-template-columns:1fr}.today-meta,.quick-actions{justify-content:flex-start;padding-left:0}}
.live-timer{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;font-weight:800!important;color:#4d718f!important;background:#e7eef5;border:1px solid #d2dfeb;border-radius:7px;padding:4px 6px}
.timer-paused{color:#8a8176!important;background:#f1ece4;border-radius:7px;padding:4px 6px}
.quick-actions .quick-pause{background:#f3e7cf;border-color:#e5d2ac;color:#8c6426}
.task-timer-box{display:grid;grid-template-columns:auto 1fr;gap:7px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px dashed #e2d8ca;font-size:10px}
.task-timer-box>span{color:var(--muted)}.task-timer-box>b{justify-self:end}.task-timer-box form{grid-column:1/-1;margin:0}.task-timer-box button{width:100%;border:1px solid #d7c9b5;border-radius:8px;background:#f4ecdf;padding:7px 9px;font-size:10px;font-weight:700;cursor:pointer}

/* Этап 15: технические исполнители */
.executor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.executor-card{display:grid;gap:12px}.executor-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.executor-avatar{width:38px;height:38px;border-radius:10px;background:#eee5d9;display:grid;place-items:center;font-weight:800;color:#5e554a}.executor-head h3{margin:0;font-size:14px}.executor-head p{margin:2px 0 0;font-size:10px;color:var(--muted)}.executor-live,.executor-idle{font-size:9px;border-radius:999px;padding:5px 7px}.executor-live{background:#e3eee6;color:#4f745a}.executor-idle{background:#f1ece4;color:#7f7568}
.executor-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.executor-meta>span{display:grid;gap:3px;padding:8px;border:1px solid #eee5d9;border-radius:8px;background:#fcfaf6}.executor-meta small,.executor-projects>small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.executor-meta b,.executor-meta code{font-size:10px}
.executor-projects{display:grid;gap:5px}.executor-projects>div{display:flex;gap:6px;flex-wrap:wrap}.executor-projects a,.executor-projects span{font-size:9px;text-decoration:none;background:#f2ebe1;border-radius:999px;padding:5px 7px}
.executor-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.executor-stats span{display:grid;gap:2px;text-align:center;padding:7px;border-top:1px dashed #e7ded1}.executor-stats b{font-size:14px}.executor-stats small{font-size:8px;color:var(--muted)}
.executor-current{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;text-decoration:none;border:1px solid #d9e4ee;background:#f4f8fb;border-radius:9px;padding:8px}.executor-current>span{display:grid}.executor-current b{font-size:9px;color:#52708d}.executor-current small{font-size:8px;color:var(--muted)}.executor-current strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executor-current em{font-size:9px;font-style:normal;font-family:ui-monospace,monospace}
@media(max-width:950px){.executor-grid{grid-template-columns:1fr}}

.executor-inline{text-decoration:none;font-weight:800;color:#4e708e}.executor-sub{display:block;color:var(--muted);font-size:8px;margin-top:2px}.project-executor{margin-top:8px;font-size:9px;color:#5f7181;background:#f0f3f5;border-radius:7px;padding:5px 7px;display:inline-block}.project-executor-badge{display:inline-block;margin-top:6px;text-decoration:none;font-size:9px;color:#55738e;background:#edf2f5;border-radius:999px;padding:5px 8px}
.readonly-status{display:flex;align-items:center;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#f7f3ec;font-size:10px;font-weight:700}
.approval-meta{display:block;margin-top:4px;font-size:8px;font-weight:700}.approval-meta.pending{color:#9b742f}.approval-meta.approved{color:#52745a}
.approval-panel{display:flex;align-items:center;justify-content:space-between;gap:16px}.approval-panel.pending{border-color:#ead8b4;background:#fffbf3}.approval-panel.approved{border-color:#d6e5d8;background:#f7fbf7}.approval-panel h3{margin:0 0 4px}.approval-panel p{margin:0;color:var(--muted);font-size:10px}.approval-actions{display:flex;gap:7px;flex-wrap:wrap}.approval-actions form{margin:0}.approval-actions button{border-radius:8px;padding:8px 10px;font-size:9px;font-weight:700;cursor:pointer}.approve-btn{border:1px solid #cbdccb;background:#e7f0e8;color:#4e6d55}.reject-btn{border:1px solid #e0c9c2;background:#f7ebe7;color:#8a5147}
@media(max-width:760px){.approval-panel{align-items:flex-start;flex-direction:column}}
.kanban-column>header>div{display:grid;gap:2px}.kanban-column>header small{font-size:8px;color:var(--muted);font-weight:400}.kanban-blocked-head small{font-size:8px;color:#8f6b63;font-weight:400}
.kanban-drop.allowed-drop{box-shadow:inset 0 0 0 2px #bdd4c2;background:#f8fcf8}.kanban-drop.forbidden-drop{opacity:.58}.kanban-drop.over{box-shadow:inset 0 0 0 2px #7ca486;background:#f3faf4}
.kanban-message{margin-bottom:10px;border-radius:9px;padding:9px 11px;font-size:10px;font-weight:700}.kanban-message.error{background:#f7e6e1;border:1px solid #e8c9c0;color:#904e42}.kanban-message.ok{background:#e7f1e8;border:1px solid #d0e1d2;color:#52715a}
.kanban-approval{margin:8px 0 2px;border-radius:7px;padding:5px 7px;font-size:8px;font-weight:700}.kanban-approval.pending{background:#f6ecd7;color:#8e6b2d}.kanban-approval.approved{background:#e5efe7;color:#507158}
.quick-actions .quick-test{background:#f2ebdb;border-color:#e1d3b6;color:#80662f}.quick-link{display:inline-flex;align-items:center;border:1px solid #ddd2c2;background:#faf6ef;color:var(--ink);border-radius:7px;padding:6px 8px;font-size:9px;text-decoration:none}
.workflow-card{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px dashed #e2d8ca}.workflow-card>small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.workflow-card p{margin:0;font-size:9px;color:var(--muted);line-height:1.4}.workflow-card form{margin:0}.workflow-card button{width:100%;border:1px solid #d7c9b5;border-radius:8px;background:#f4ecdf;padding:7px 9px;font-size:9px;font-weight:700;cursor:pointer}.workflow-card .workflow-primary{background:#e7f0e8;border-color:#ccddcf;color:#4f7158}.workflow-card .workflow-test{background:#f5eddd;border-color:#e4d4b7;color:#7e652f}.workflow-actions{display:grid;gap:6px}.workflow-timer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px}.workflow-warning{font-size:8px;color:#925447;background:#f8e8e3;border:1px solid #ebd0c8;border-radius:7px;padding:6px 7px}

/* CTL-17: Definition of Ready + acceptance/testing */
.dor-mini{height:5px;border-radius:99px;background:#ebe4d9;overflow:hidden}.dor-mini span{display:block;height:100%;background:#76927a;border-radius:99px}.workflow-card button:disabled{opacity:.45;cursor:not-allowed}
.dor-panel .panel-head>div{display:grid;gap:2px}.dor-panel .panel-head small,.criteria-panel .panel-head small{font-size:9px;color:var(--muted)}.dor-score{min-width:42px;text-align:center;border-radius:999px;background:#f3e7d8;color:#8b6736;padding:5px 8px;font-size:10px;font-weight:800}.dor-score.ready{background:#e4efe6;color:#51725a}.dor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.dor-grid>div{display:flex;gap:6px;align-items:center;border:1px solid #ece3d6;border-radius:8px;padding:8px;background:#fcfaf6;color:#887e71;font-size:9px}.dor-grid>div.done{background:#f5faf5;color:#526e58;border-color:#dce9de}
.expected-result{margin-top:14px;padding-top:12px;border-top:1px dashed #e7ded1}.expected-result small{display:block;margin-bottom:5px;font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.expected-result p{margin:0;font-size:11px;line-height:1.5;white-space:pre-wrap}
.criteria-list{display:grid;gap:7px;margin-top:10px}.criterion-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #ebe2d6;border-radius:9px;background:#fdfbf8;padding:8px}.criterion-row.pass{border-color:#d7e6da;background:#f6fbf7}.criterion-row.fail{border-color:#ebd0c8;background:#fdf7f5}.criterion-order{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#eee6da;color:#766c60;font-size:8px;font-weight:800}.criterion-main{display:grid;gap:3px;min-width:0}.criterion-main b{font-size:10px}.criterion-main small{font-size:8px;color:#8a5b51}.criterion-result{font-size:8px;font-weight:800;border-radius:999px;padding:4px 6px}.criterion-result.pending{background:#eee9e1;color:#786f64}.criterion-result.pass{background:#dfede2;color:#4d7256}.criterion-result.fail{background:#f2ddd7;color:#924d40}
.criterion-test-form{grid-column:2/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px}.criterion-test-form input,.testing-return-form input{border:1px solid var(--line);border-radius:7px;background:#fffdfa;padding:7px 8px;font:inherit;font-size:9px}.criterion-test-form button{border-radius:7px;padding:6px 8px;font-size:8px;font-weight:800;cursor:pointer}.criterion-test-form .pass{border:1px solid #cadfce;background:#e5f0e7;color:#4f7358}.criterion-test-form .fail{border:1px solid #e1c6be;background:#f5e5e0;color:#8b4e42}.criterion-delete{border:0;background:transparent;color:#a7786e;font-size:16px;cursor:pointer}.criterion-add-form{margin-top:10px}.test-score{font-size:10px;font-weight:800;color:#58735f;background:#e7efe8;border-radius:999px;padding:5px 8px}.testing-return-form{display:grid;gap:6px}
@media(max-width:760px){.dor-grid{grid-template-columns:1fr 1fr}.criterion-test-form{grid-template-columns:1fr 1fr}.criterion-test-form input{grid-column:1/-1}}

/* CTL-17: executor queues on Kanban */
.executor-work-strip{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:7px;margin-bottom:11px;overflow-x:auto}.executor-work-strip article{min-width:180px;border:1px solid #e7ded1;background:#fdfbf8;border-radius:10px;padding:8px;display:grid;gap:6px}.executor-work-strip article.busy{border-color:#ccdce8;background:#f5f9fc}.executor-work-strip article.ready{border-color:#d7e5d9;background:#f7fbf7}.executor-work-head{display:flex;justify-content:space-between;gap:7px;align-items:center}.executor-work-head b{font-size:9px}.executor-work-head span{font-size:7px;color:var(--muted)}.executor-work-strip a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;text-decoration:none;min-width:0}.executor-work-strip a strong{font-size:8px;color:#57758e}.executor-work-strip a span{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executor-work-strip small,.executor-no-task{font-size:7px;color:var(--muted)}
.ready-executor-group{border:1px solid #e7ded1;border-radius:9px;background:#fbf8f2;margin-bottom:8px;overflow:hidden}.ready-executor-head{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;padding:6px 7px;background:#f3ede4;border-bottom:1px solid #e7ded1}.ready-executor-head>span{font-size:10px}.ready-executor-head>div{display:grid}.ready-executor-head b{font-size:8px}.ready-executor-head small{font-size:7px;color:var(--muted)}.ready-queue{display:grid;gap:6px;padding:6px}.ready-queue .task-card{margin:0}.task-card.queue-target{box-shadow:0 -3px 0 #6c9275,0 0 0 1px #bcd1c0}
.kanban-queue-meta,.kanban-dor,.kanban-test-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:7px 0 2px;border-radius:7px;padding:5px 6px;font-size:7px}.kanban-queue-meta{background:#edf2f5;color:#587087}.queue-number{font-weight:900;font-size:9px}.kanban-dor{background:#f4ebe0;color:#806c53}.kanban-dor.ready{background:#e6efe7;color:#527059}.kanban-test-meta{background:#eef0e5;color:#687044}.kanban-test-meta.failed{background:#f4e2dd;color:#8e5145}
.kanban-empty{font-size:8px;color:var(--muted);padding:10px}
@media(max-width:1100px){.executor-work-strip{grid-template-columns:repeat(5,190px)}}
.settings-section-title{margin-top:12px;padding-top:11px;border-top:1px dashed #e4dace;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#665c50}.settings-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.settings-unit span{font-size:9px;color:var(--muted)}

/* CTL-18: flow age / SLA / returns */
.flow-health-strip{display:grid;grid-template-columns:minmax(230px,1fr) repeat(3,110px);gap:7px;align-items:stretch;margin-bottom:10px;border:1px solid #e4ddd2;background:#fbf8f3;border-radius:10px;padding:7px}.flow-health-strip.has-alerts{border-color:#e4c9bd;background:#fff9f6}.flow-health-strip>div{display:grid;gap:2px;align-content:center}.flow-health-strip>div b{font-size:10px}.flow-health-strip>div small{font-size:8px;color:var(--muted)}.flow-health-strip>span{display:grid;place-items:center;border-left:1px dashed #e2d8ca;padding:2px}.flow-health-strip>span b{font-size:15px}.flow-health-strip>span small{font-size:7px;color:var(--muted)}
.task-card.flow-stale{box-shadow:inset 3px 0 0 #c67a64;border-color:#e1bfb5}.flow-age-row{display:flex;align-items:center;gap:5px;margin:6px 0 1px;font-size:7px;color:var(--muted)}.flow-age-row span{margin-right:auto}.flow-age-row b{font-size:7px;color:#9a5545;background:#f5e4de;border-radius:999px;padding:3px 5px}.flow-age-row em{font-size:7px;font-style:normal;font-weight:800;color:#775f45;background:#f0e7da;border-radius:999px;padding:3px 5px}.flow-age-row.stale span{color:#925244;font-weight:700}.flow-stale-text{color:#985344}.flow-stale-text small{display:block;color:#a05c4c;font-size:8px;margin-top:2px}
@media(max-width:760px){.flow-health-strip{grid-template-columns:1fr repeat(3,1fr)}.flow-health-strip>div{grid-column:1/-1}.flow-health-strip>span{border-left:0;border-top:1px dashed #e2d8ca;padding-top:6px}}
.flow-report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.flow-report-stat{display:grid;gap:4px}.flow-report-stat small{font-size:8px;color:var(--muted)}.flow-report-stat strong{font-size:18px}.flow-report-stat span{font-size:8px;color:var(--muted)}.flow-report-stat.alert{border-color:#e1bbb0;background:#fff8f5}.flow-attention-panel{margin-bottom:10px}.flow-attention-list{display:grid}.flow-attention-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;text-decoration:none;padding:8px 0;border-top:1px dashed #e7ddd0}.flow-attention-list>a:first-child{border-top:0}.flow-attention-list>a>span{display:grid;gap:2px}.flow-attention-list>a>span:first-child{grid-template-columns:auto 1fr}.flow-attention-list>a>span:first-child small{grid-column:1/-1}.flow-attention-list b,.flow-attention-list strong{font-size:9px}.flow-attention-list small{font-size:8px;color:var(--muted)}.flow-attention-list em{font-style:normal;font-size:8px}.flow-attention-list>a>span:last-child{text-align:right}
@media(max-width:850px){.flow-report-summary{grid-template-columns:1fr 1fr}}

/* Workflow vs implementation progress */
.progress-dual{display:grid;gap:9px}.implementation-bar i{opacity:.58}.task-progress-secondary{color:var(--muted);font-size:8px;margin-left:2px}.management-task-side small{display:block;font-size:7px;color:var(--muted);text-align:right;margin-top:2px}

.ai-chat-panel{display:grid;gap:14px}.ai-chat-tools{display:flex;gap:8px;flex-wrap:wrap}.ai-chat-tools form{display:flex;gap:6px;flex:1;min-width:240px}.ai-chat-tools input,.ai-chat-tools select{min-width:0;flex:1}.ai-chat-history{max-height:460px;overflow:auto;display:grid;gap:10px;padding:10px;background:rgba(0,0,0,.025);border-radius:12px}.ai-message{max-width:88%;padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:12px;background:#fff}.ai-message.user{margin-left:auto}.ai-message p{white-space:pre-wrap;margin:5px 0 0}.ai-chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px}.ai-chat-compose textarea{min-height:90px}.take-work-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line,#ddd)}.take-work-row div{display:grid}.take-work-row small{opacity:.7}@media(max-width:800px){.ai-chat-compose{grid-template-columns:1fr}.take-work-row{align-items:stretch;flex-direction:column}}

.orchestrator-strip{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(105px,1fr));gap:10px;align-items:stretch;margin:0 0 14px}.orchestrator-strip>div,.orchestrator-strip>span{border:1px solid #dfe3ea;border-radius:12px;padding:12px 14px;background:#fff}.orchestrator-strip>div{display:flex;flex-direction:column;justify-content:center}.orchestrator-strip>span{display:flex;flex-direction:column;text-align:center}.orchestrator-strip b{font-size:18px}.orchestrator-strip small{opacity:.65;margin-top:3px}@media(max-width:900px){.orchestrator-strip{grid-template-columns:1fr 1fr}.orchestrator-strip>div{grid-column:1/-1}}
/* CTL-24: центр управления использует визуальный язык блока контроля потока */
.orchestrator-strip{grid-template-columns:minmax(250px,1fr) repeat(4,minmax(105px,130px));margin-bottom:10px}
.orchestrator-strip>div,.orchestrator-strip>span{border:0;border-radius:0;padding:2px;background:transparent}
.orchestrator-strip>span{border-left:1px dashed #e2d8ca}
.orchestrator-strip>span b{font-size:15px;font-family:inherit}
.orchestrator-strip>span small{font-size:7px;color:var(--muted);margin-top:0}
@media(max-width:760px){.orchestrator-strip{grid-template-columns:1fr 1fr}.orchestrator-strip>div{grid-column:1/-1}.orchestrator-strip>span{border-left:0;border-top:1px dashed #e2d8ca;padding-top:6px}}
/* CTL-24: три основных показателя без дублирующего резерва внимания */
.orchestrator-strip{grid-template-columns:minmax(250px,1fr) repeat(3,minmax(120px,150px))}
@media(max-width:760px){.orchestrator-strip{grid-template-columns:1fr 1fr}.orchestrator-strip>div{grid-column:1/-1}.orchestrator-strip>span:last-child{grid-column:1/-1}}
.manual-start-btn{width:100%;margin:8px 0 2px;padding:8px 10px;border:1px solid #cfc2ae;border-radius:8px;background:#f8f4ed;color:#4f4a43;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.manual-start-btn:active{transform:translateY(1px)}
.manual-dispatch-state{margin:8px 0 2px;padding:7px 9px;border:1px dashed #cbbd9f;border-radius:8px;font-size:10px;color:var(--muted);background:#faf7f1}
.touch-dragging{opacity:.42}.touch-drag-ghost{position:fixed;z-index:9999;width:min(280px,72vw);pointer-events:none;opacity:.92;transform:rotate(1deg);box-shadow:0 14px 35px rgba(50,45,38,.18)}
@media(pointer:coarse){.task-card{touch-action:pan-y}.manual-start-btn{min-height:40px;font-size:12px}}
/* CTL-24 tablet layout: no horizontal runners on Kanban support strips */
.kanban-blocked-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));overflow:visible;gap:7px}.kanban-blocked-list>a{min-width:0;max-width:none;width:auto;flex:none}.executor-work-strip{grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}.executor-work-strip article{min-width:0}.kanban-content{overflow-x:hidden}
@media(max-width:1100px){.executor-work-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.kanban-board{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;overflow:visible}.kanban-column{min-width:0}.kanban-column>header{padding:8px 6px}.kanban-column>header small{font-size:7px}.kanban-drop{padding:5px}.task-card{padding:7px}.task-card h4{font-size:11px}.task-card p{font-size:9px}.ready-executor-head{padding:5px}.manual-start-btn{padding:7px 4px}}
@media(max-width:760px){.executor-work-strip{grid-template-columns:1fr 1fr}.kanban-board{grid-template-columns:1fr}.kanban-column{min-width:0}.kanban-drop{min-height:100px}.kanban-blocked-list{grid-template-columns:1fr}}
@media(pointer:coarse){.task-card{touch-action:pan-y;-webkit-user-select:none;user-select:none}.kanban-drop.allowed-drop{outline:2px solid #bdd4c2;outline-offset:-2px}}

/* Reliable touch DnD: normal page scrolling until long-press activates drag. */
.touch-dragging{opacity:.38}
.touch-drag-ghost{position:fixed!important;z-index:99999!important;width:min(280px,72vw)!important;pointer-events:none!important;opacity:.94!important;transform:rotate(1deg);box-shadow:0 12px 34px rgba(0,0,0,.22)}
@media(pointer:coarse){
  .task-card{touch-action:pan-y}
  .task-card.touch-dragging{touch-action:none}
  .kanban-drop.allowed-drop{outline:2px dashed currentColor;outline-offset:-3px}
  .kanban-drop.over{outline-style:solid}
  .task-card.queue-target{outline:2px solid currentColor;outline-offset:2px}
}

.touch-drag-handle{display:none;border:0;background:transparent;padding:2px 7px;margin:-4px -4px -4px 2px;font-size:20px;line-height:1;cursor:grab}
@media(pointer:coarse),(hover:none){
  .touch-drag-handle{display:inline-flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}
  .touch-drag-handle:active{cursor:grabbing}
  .task-card-top{gap:4px}
  .task-card-top .priority{margin-left:auto}
}

/* v28: pointer-captured handle; browser must not start pan/zoom/context menu. */
.touch-drag-handle{touch-action:none!important;-webkit-touch-callout:none}
body.kanban-drag-active{overscroll-behavior:none}

/* v29: ghost is offset above/left of the finger for right-handed touch use. */
@media(pointer:coarse),(hover:none){
  .touch-drag-ghost{width:min(220px,48vw)!important;max-height:42vh;overflow:hidden}
  .kanban-drop.over{box-shadow:inset 0 0 0 3px rgba(80,120,90,.35)}
}

/* v30: ghost is centered on the finger by its top edge and remains visible above it. */
@media(pointer:coarse),(hover:none){
  .touch-drag-ghost{width:min(220px,44vw)!important;max-height:38vh!important;transform:none!important}
}

/* v32: Kanban feedback must stay visible while the board is scrolled. */
.kanban-message:not([hidden]){
  position:fixed;z-index:100100;top:82px;left:50%;transform:translateX(-50%);
  width:min(680px,calc(100vw - 24px));margin:0;
  box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:13px;line-height:1.4;
}
@media(max-width:760px){.kanban-message:not([hidden]){top:66px;font-size:12px}}

/* Task detail v2: independent desktop/tablet sidebar scrolling. */
@media(min-width:901px){
  .task-detail-grid{align-items:start}
  .task-meta{
    position:sticky;
    top:12px;
    max-height:none;
    overflow:visible;
    overscroll-behavior:auto;
    scrollbar-gutter:auto;
    padding-right:16px;
  }
}
@media(max-width:900px){
  .task-meta{max-height:none;overflow:visible}
}

.chatgpt-context-panel{grid-column:1/-1}
.chatgpt-context-grid{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin:10px 0 14px}
.chatgpt-context-grid>div{display:grid;gap:3px;padding:10px 12px;background:#faf8f3;border:1px solid var(--line);border-radius:8px}
.chatgpt-context-grid small{color:var(--muted)}
@media(max-width:700px){.chatgpt-context-grid{grid-template-columns:1fr}}

.context-manager-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.inline-add-form{display:flex;gap:8px;margin:12px 0}.inline-add-form input{flex:1}
.stack-form{display:grid;gap:8px;margin-top:12px}
.context-list{display:grid;gap:6px}.context-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line)}
.context-row span{color:var(--muted)}
.context-table{display:grid}.context-chat-row{display:grid;grid-template-columns:1fr 2fr auto auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.context-chat-row span{display:grid;gap:2px}.context-chat-row small{color:var(--muted)}.muted-row{opacity:.55}
@media(max-width:800px){.context-manager-grid{grid-template-columns:1fr}.context-chat-row{grid-template-columns:1fr 1fr}.context-chat-row>a,.context-chat-row>form{justify-self:start}}

.context-journal{display:grid;gap:10px}.context-entry{padding:12px;border:1px solid var(--line);border-radius:8px;background:#faf8f3}
.context-entry-head{display:flex;justify-content:space-between;gap:12px}.context-entry p{margin:7px 0}.context-entry>small,.context-entry-head small{color:var(--muted)}
.context-add{margin-top:4px}.context-add summary{cursor:pointer;font-weight:700}.context-add .stack-form{margin-top:10px}

/* Context journal follows the existing compact task-card design. */
.compact-context-journal{gap:8px}.context-entry-compact{border-top:1px solid var(--line);padding:8px 0}
.context-entry-compact summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}
.context-entry-compact summary::-webkit-details-marker{display:none}.context-entry-compact summary>span{display:grid;gap:2px;min-width:0}
.context-entry-compact summary b{font-size:14px;line-height:1.3}.context-entry-compact summary small,.context-entry-compact summary em{color:var(--muted);font-size:12px;font-style:normal}
.context-entry-body{padding:8px 0 2px 12px;border-left:2px solid var(--line);margin-top:7px}.context-entry-body p{margin:4px 0;font-size:13px}.context-entry-body>small{color:var(--muted)}
.context-add-compact{margin-top:4px}.context-add-compact>summary{display:inline-flex;width:auto;list-style:none;cursor:pointer}.context-add-compact>summary::-webkit-details-marker{display:none}
.compact-context-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:10px}.compact-context-form label{display:grid;gap:4px;font-size:13px}.compact-context-form textarea{min-height:52px;resize:vertical}.compact-context-form button{justify-self:start}
@media(max-width:700px){.compact-context-form{grid-template-columns:1fr}}

.bridge-status-row{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;background:#faf8f3}
.bridge-status-row>div{display:grid;gap:2px;min-width:0}.bridge-status-row small{color:var(--muted);font-size:8px}.bridge-status-row b{font-size:9px}.bridge-status-row em{font-size:8px;color:#925447;font-style:normal;overflow-wrap:anywhere}
.bridge-status-dot{width:8px;height:8px;border-radius:50%;background:#a89b8a;margin-top:4px;flex:0 0 auto}.bridge-status-dot.running{background:#557d61}.bridge-status-dot.handshake,.bridge-status-dot.queued{background:#9a7a3a}.bridge-status-dot.completed{background:#557d61}.bridge-status-dot.failed{background:#a35f55}
.bridge-step{display:grid;gap:2px;padding:7px 9px;border:1px dashed var(--line);border-radius:8px;background:#faf8f3}.bridge-step small{font-size:8px;color:var(--muted)}.bridge-step b{font-size:9px;line-height:1.35}
.bridge-awaiting{color:#7e652f;background:#f8f2e5;border-color:#e5d5ae}
/* CTL-23: native Task Chat over persistent Chromium/CDP */
.task-chat-panel{display:grid;gap:10px;min-width:0}.task-chat-head>div{display:grid;gap:2px}.task-chat-head small{font-size:9px;color:var(--muted)}
.task-chat-context{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(160px,1.3fr);gap:8px;align-items:end}.task-chat-context>span{display:grid;gap:2px;min-width:0}.task-chat-context small{font-size:8px;color:var(--muted)}.task-chat-context b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-chat-toolbar{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.task-chat-toolbar button{cursor:pointer}
.task-chat-state{font-size:9px;color:#5f7464;background:#f4f8f4;border:1px solid #dbe6dc;border-radius:8px;padding:7px 9px}.task-chat-state.error{color:#925447;background:#f8e8e3;border-color:#ebd0c8}.task-chat-panel.busy .task-chat-state{font-weight:700}
.task-chat-messages{min-height:160px;max-height:430px;overflow-y:auto;overflow-x:hidden;display:grid;gap:8px;align-content:start;padding:10px;background:#faf8f3;border:1px solid var(--line);border-radius:10px;overscroll-behavior:contain}.task-chat-message{max-width:min(88%,680px);display:grid;gap:4px;padding:9px 11px;border:1px solid #e7ded1;border-radius:10px;background:#fff;min-width:0}.task-chat-message.user{justify-self:end;background:#f1eee7}.task-chat-message.assistant{justify-self:start}.task-chat-message small{font-size:8px;color:var(--muted);font-weight:800}.task-chat-message div{font-size:11px;line-height:1.48;white-space:pre-wrap;overflow-wrap:anywhere}
.task-chat-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:end}.task-chat-composer-main{display:grid;gap:6px;min-width:0}.task-chat-composer textarea{width:100%;min-width:0;resize:vertical;min-height:68px;border:1px solid var(--line);border-radius:9px;background:#fffdfa;padding:9px;font:inherit;font-size:11px}.task-chat-attachment-row{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.task-chat-attach{padding:6px 9px!important;font-size:9px!important}.task-chat-native-file{position:relative;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none}.task-chat-native-file input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:100px}.task-chat-native-file.disabled,.task-chat-native-file:has(input:disabled){opacity:.45;cursor:not-allowed}.task-chat-native-file:has(input:disabled) input{cursor:not-allowed}.task-chat-file-list{display:flex;gap:5px;min-width:0;flex:1;flex-wrap:wrap}.task-chat-file-chip{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:#f1eee7;font-size:9px;color:#5f5a52}.task-chat-files-clear{border:0!important;background:transparent!important;color:var(--muted)!important;padding:4px!important;font-size:9px!important;font-weight:600!important}.task-chat-composer button,.task-chat-form-task button{border:1px solid #cbdccb;background:#e7f0e8;color:#4e6d55;border-radius:8px;padding:9px 11px;font-size:9px;font-weight:800;cursor:pointer}.task-chat-composer button:disabled,.task-chat-toolbar button:disabled,.task-chat-form-task button:disabled{opacity:.45;cursor:not-allowed}
.task-chat-form-task{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:9px;border-top:1px dashed var(--line)}.task-chat-form-task>div{display:grid;gap:2px}.task-chat-form-task b{font-size:10px}.task-chat-form-task small{font-size:8px;color:var(--muted);line-height:1.4}
@media(max-width:700px){.task-chat-context{grid-template-columns:1fr}.task-chat-toolbar{grid-column:auto}.task-chat-composer{grid-template-columns:1fr}.task-chat-composer>.task-chat-send{width:100%}.task-chat-attachment-row{align-items:flex-start}.task-chat-file-list{flex-basis:100%}.task-chat-form-task{align-items:stretch;flex-direction:column}.task-chat-form-task button{width:100%}.task-chat-messages{max-height:55vh}.task-chat-message{max-width:94%}}

.task-chat-settings{display:grid;grid-template-columns:minmax(150px,auto) minmax(140px,1fr) minmax(130px,.7fr) auto;gap:8px;align-items:end;margin:8px 0 10px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#faf8f3}.task-chat-settings[hidden]{display:none}.task-chat-settings label{display:grid;gap:3px}.task-chat-settings small{color:var(--muted)}.task-chat-settings select{min-width:0;border:1px solid var(--line);border-radius:7px;background:#fffdfa;padding:7px 8px;font:inherit;font-size:10px}.task-chat-config-badge{align-self:center;font-size:10px;font-weight:800;white-space:nowrap}@media(max-width:700px){.task-chat-settings{grid-template-columns:1fr 1fr}.task-chat-config-badge{grid-column:1/-1}.task-chat-settings button{width:100%}}

/* CTL-36: мониторинг ресурсов нового VPS */
.monitor-head{align-items:center}.monitor-online{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:center;text-align:right}.monitor-online small{grid-column:1/-1;color:var(--muted)}.monitor-dot{width:10px;height:10px;border-radius:50%;background:#b65d51;box-shadow:0 0 0 4px rgba(182,93,81,.08)}.monitor-dot.online{background:#5f936d;box-shadow:0 0 0 4px rgba(95,147,109,.1)}
.monitor-stats{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;margin-bottom:14px}.monitor-stats article{display:grid;gap:5px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.monitor-stats small,.monitor-stats span{color:var(--muted);font-size:11px}.monitor-stats strong{font:700 24px Georgia,serif}.monitor-stats article.warning{border-color:#d5a07d;background:#fbf1e9}.monitor-stats article.warning strong{color:#a4593e}
.monitor-period{width:max-content;margin:0 0 14px auto}.monitor-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.monitor-chart{min-width:0}.monitor-chart canvas{display:block;width:100%;height:220px}.monitor-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.monitor-panel-head h3{margin:0}.monitor-panel-head small{color:var(--muted);font-size:11px}
.monitor-section{margin-bottom:14px}.monitor-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.monitor-project-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#faf7f1}.monitor-project-card.system-other{background:#f2efe9}.monitor-project-card>div:first-child{display:grid;gap:3px}.monitor-project-card small{color:var(--muted);font-size:10px}.monitor-meter{display:grid;gap:4px}.monitor-meter span{font-size:11px}.monitor-meter i{height:7px;background:#e8e2d8;border-radius:8px;overflow:hidden}.monitor-meter em{display:block;height:100%;background:var(--blue);border-radius:8px}
.monitor-bottom{display:grid;grid-template-columns:.8fr 1.2fr;gap:14px}.monitor-services{display:grid;gap:10px}.monitor-service-group{display:grid;gap:5px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#faf8f3}.monitor-service-group>b{font-size:12px}.monitor-service-group>span{display:grid;grid-template-columns:9px 1fr auto;gap:7px;align-items:center}.monitor-service-group i{width:8px;height:8px;border-radius:50%;background:#a35f55}.monitor-service-group i.ok{background:#5f936d}.monitor-service-group code{font-size:10px;overflow:hidden;text-overflow:ellipsis}.monitor-service-group small{font-size:10px;color:var(--muted)}
.monitor-table{width:100%;border-collapse:collapse;font-size:11px}.monitor-table th,.monitor-table td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.monitor-table th{color:var(--muted);font-weight:600}.monitor-table td small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
@media(max-width:1200px){.monitor-stats{grid-template-columns:repeat(4,1fr)}.monitor-projects{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.monitor-chart-grid,.monitor-bottom{grid-template-columns:1fr}.monitor-stats{grid-template-columns:1fr 1fr}.monitor-projects{grid-template-columns:1fr}.monitor-period{margin-left:0}}
@media(max-width:520px){.monitor-stats{grid-template-columns:1fr}.monitor-online{text-align:left}.monitor-head{align-items:flex-start}}

.monitor-legend{display:flex;gap:12px;flex-wrap:wrap;margin:-4px 0 8px;font-size:10px;color:var(--muted)}.monitor-legend span{display:inline-flex;align-items:center;gap:5px}.monitor-legend i{width:9px;height:9px;border-radius:50%;background:#6d98c7}.monitor-legend span:nth-child(2) i{background:#6c9b78}.monitor-legend span:nth-child(3) i{background:#d7a15a}.monitor-legend span:nth-child(4) i{background:#9482b8}.monitor-legend span:nth-child(5) i{background:#a56b6b}.monitor-legend span:nth-child(6) i{background:#77736c}

.task-chat-live-badge{transition:background .18s ease,color .18s ease,border-color .18s ease}
.task-chat-live-badge.connecting{background:#f3ead8;color:#806a42;border-color:#ddcfad}
.task-chat-live-badge.live{background:#e4efe6;color:#4d7054;border-color:#c9ddcd}
.task-chat-live-badge.error{background:#f5e3de;color:#94584b;border-color:#e5c9c0}

/* CTL-52 canonical executor runtime registry */
.executor-refresh{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--muted);font-family:ui-monospace,monospace}
#executor-live-dot{color:#5d8a66;font-size:11px}#executor-live-dot.error{color:#a75a4f}
.executor-state{font-size:9px;border-radius:999px;padding:5px 8px;font-weight:800;white-space:nowrap}
.executor-state-working,.executor-state-online{background:#e3eee6;color:#4f745a}
.executor-state-verified{background:#edf2f5;color:#55738e}
.executor-state-error{background:#f6e5e1;color:#985448}
.executor-state-unknown{background:#f1ece4;color:#7f7568}
.executor-chain{display:grid;gap:6px}
.executor-chain-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:2px 8px;padding:7px 8px;border:1px solid #eee5d9;border-radius:8px;background:#fcfaf6}
.executor-chain-row>span{grid-row:1 / span 2;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-self:center}
.executor-chain-row>b{font-size:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.executor-chain-row>small{font-size:8px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.executor-chain-row code{font-size:8px}
.executor-current.is-idle{pointer-events:none;border-color:#eee5d9;background:#faf7f2;color:var(--muted)}
@media(max-width:560px){
  .executor-chain-row{grid-template-columns:72px minmax(0,1fr)}
  .executor-head{grid-template-columns:auto 1fr}.executor-state{grid-column:1 / -1;justify-self:start}
}


/* CTL-44: live ChatGPT activity */
.task-chat-activity{
  margin:12px 0 10px;
  padding:12px 14px;
  border:1px solid rgba(84,77,65,.18);
  border-radius:14px;
  background:rgba(255,255,255,.42);
  display:grid;
  gap:4px;
}
.task-chat-activity[hidden]{display:none}
.task-chat-activity-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.task-chat-activity-head small{color:var(--muted,#7a7368)}
.task-chat-activity>b{font-size:15px;line-height:1.35}
.task-chat-activity>span{font-size:13px;line-height:1.4;color:var(--muted,#7a7368)}
.task-chat-activity-dot{width:9px;height:9px;border-radius:999px;background:currentColor;opacity:.55}
.task-chat-activity[data-state="reasoning"] .task-chat-activity-dot,
.task-chat-activity[data-state="tool"] .task-chat-activity-dot,
.task-chat-activity[data-state="syncing"] .task-chat-activity-dot,
.task-chat-activity[data-state="settings"] .task-chat-activity-dot{opacity:1;animation:task-chat-activity-pulse 1.2s ease-in-out infinite}
.task-chat-activity[data-state="error"] .task-chat-activity-dot,
.task-chat-activity[data-state="warning"] .task-chat-activity-dot{opacity:1}
@keyframes task-chat-activity-pulse{0%,100%{transform:scale(.8);opacity:.45}50%{transform:scale(1.15);opacity:1}}
@media (max-width: 760px){
  .task-chat-activity{padding:11px 12px;border-radius:12px}
  .task-chat-activity>b{font-size:14px}
}

.task-chat-apps{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:10px 0;padding:10px;border:1px solid var(--line,#ddd);border-radius:10px}
.task-chat-apps label{min-width:220px;flex:1}.task-chat-apps select{width:100%}.task-chat-apps [data-chat-app-state]{width:100%;font-size:12px;opacity:.75}
@media(max-width:720px){.task-chat-apps{align-items:stretch}.task-chat-apps label,.task-chat-apps button{width:100%;min-width:0}.task-chat-settings{grid-template-columns:1fr}.task-chat-composer{grid-template-columns:1fr}.task-chat-send{width:100%}}

.task-chat-file-chip{display:inline-flex;align-items:center;gap:6px}
.task-chat-file-remove{border:0;background:transparent;font:inherit;cursor:pointer;line-height:1;padding:0 2px}

/* Qwen learning review */
.learning-panel{overflow:hidden}
.learning-list{display:grid;gap:12px}
.learning-row{border:1px solid var(--line,#ded6c9);border-radius:12px;padding:14px;background:rgba(255,255,255,.5)}
.learning-row.candidate{border-style:dashed}
.learning-row.verified{border-color:#b8d8c5;background:#f4fbf6}
.learning-row.rejected{opacity:.72;background:#faf7f3}
.learning-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.learning-state{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.05em;background:#eee7db;color:#6f6254}
.learning-state.verified{background:#dff3e6;color:#176b45}
.learning-state.rejected{background:#f2e3e3;color:#8c4141}
.learning-finding{display:block;line-height:1.45;margin-bottom:10px}
.learning-review-form textarea{width:100%;resize:vertical;min-height:58px}
.learning-review-form .workflow-actions{margin-top:8px}
.learning-rule{margin:8px 0 4px;white-space:pre-wrap}
.learning-rule small{display:block;color:#7b7064;margin-bottom:3px}
.learning-reviewed{color:#81786e}
@media(max-width:760px){.learning-meta{align-items:flex-start;flex-direction:column}.learning-review-form .workflow-actions{display:grid;grid-template-columns:1fr}}
