:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #1c2024;--muted: #6b7280;--primary: #2b6cb0;--primary-hover: #245a93;--danger: #c0392b;--radius: 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.topbar__brand{font-weight:700}.topbar__nav{display:flex;gap:1rem}.topbar__right{margin-left:auto;display:flex;align-items:center;gap:.75rem}.topbar__user{color:var(--muted);font-size:.9rem}.nav-link{color:var(--muted);font-weight:500}.nav-link--active{color:var(--text)}.content{flex:1;padding:1.5rem}.page{max-width:760px;margin:0 auto}.page--wide{max-width:1200px}.page__title{font-size:1.5rem;margin:0 0 1rem}.section-title{font-size:1.1rem;margin:1.5rem 0 .75rem}.breadcrumb{margin:0 0 .5rem;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.card--highlight{border-color:var(--primary);background:#f0f6fc}.card__title{font-size:1rem;margin:0 0 .75rem}.card__subtitle{font-size:.85rem;margin:.75rem 0 .25rem;color:var(--muted)}.field{display:block;margin-bottom:.75rem}.field__label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}.field__input{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:6px;font-size:.95rem;background:#fff}.field__input:focus{outline:2px solid var(--primary);outline-offset:-1px}.inline-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.inline-form .field__input{flex:1;min-width:200px}.task-form .field__input{margin-bottom:.75rem}.btn{padding:.55rem 1rem;border:1px solid transparent;border-radius:6px;font-size:.9rem;cursor:pointer;background:#eef1f5}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:#fff;border-color:var(--border)}.btn--ghost{background:transparent;color:var(--muted)}.btn-row{display:flex;gap:.5rem;flex-wrap:wrap}.list{list-style:none;margin:0;padding:0}.list__item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:.4rem}.list__item--col{flex-direction:column;align-items:flex-start;gap:.2rem}.list__link{font-weight:500}.list__primary{font-family:monospace;font-size:.85rem}.list__meta{color:var(--muted);font-size:.85rem}.badge{margin-left:auto;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:#eef1f5;color:var(--muted)}.list__item--col .badge{margin-left:0}.cockpit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;align-items:start}.cockpit-section{margin-bottom:0}.cockpit-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.cockpit-section__link{margin:0 0 .5rem;font-size:.85rem}.count-badge{padding:.1rem .55rem;border-radius:999px;font-size:.8rem;font-weight:600;background:#eef1f5;color:var(--text);white-space:nowrap}.cockpit-row__main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;width:100%}.cockpit-row__main .badge{margin-left:0}.cockpit-row__meta{display:flex;gap:.75rem;flex-wrap:wrap}.cockpit-row__tree-link{text-decoration:underline;color:var(--muted)}.badge--done{background:#def7e4;color:#1e7a3c}.badge--warn{background:#fdecdc;color:#b05c12}.badge--ready{background:#dcecfd;color:#1f5fa8}.badge--pa{background:#ece4fb;color:#5b3ea8}.badge--pa-dead{background:#fbe1de;color:var(--danger)}.badge--milestone{background:#fdf3d7;color:#8a6d1a}.list__item--surfaced{border-color:var(--primary);background:#f0f6fc}.list__item--pa-dead{border-color:var(--danger)}.list__item--milestone{border-left:3px solid #d9b93f}.due-overdue{color:var(--danger)}.btn--compact{padding:.25rem .6rem;font-size:.8rem}.list__item--tree{flex-direction:column;align-items:stretch;gap:.3rem}.tree-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.tree-row .badge{margin-left:0}.list__item--plan{opacity:.72;background:#fbfbfd;border-style:dashed}.tree-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:0 0 .75rem}.tree-toolbar__toggle{margin:0}.tree-crumbs{display:flex;align-items:baseline;gap:.15rem;flex-wrap:wrap}.btn--link{background:none;border:none;padding:0;color:var(--primary);cursor:pointer;font-size:inherit}.btn--link:hover{text-decoration:underline}.plan-outline .field__input{margin-bottom:.35rem}.plan-hint{margin:0;font-size:.8rem;color:var(--muted)}.node-actions{align-items:center}.badge--resp{background:#e4f0fb;color:#1f5fa8}.saved-zoom__open{padding:0;color:var(--primary);font-weight:500}.task-desc{white-space:pre-wrap;margin:0 0 .75rem}.topbar__locale{width:auto;padding:.3rem .5rem;font-size:.85rem}.comments{list-style:none;margin:0 0 .75rem;padding:0}.comments__item{padding:.5rem 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.15rem}.comments__meta{font-size:.75rem;color:var(--muted)}.autocomplete{position:relative;margin-bottom:.75rem}.autocomplete__menu{list-style:none;margin:.2rem 0 0;padding:0;position:absolute;z-index:10;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000014;max-height:220px;overflow-y:auto}.autocomplete__option{display:block;width:100%;text-align:left;padding:.5rem .7rem;border:none;background:none;cursor:pointer;font-size:.9rem}.autocomplete__option:hover{background:#eef1f5}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c202466;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{width:100%;max-width:480px;margin:0;max-height:90vh;overflow-y:auto}.modal__actions{margin-top:.75rem}.check-row{display:flex;align-items:center;gap:.5rem;margin:.35rem 0;font-size:.9rem;cursor:pointer}.check-row input{margin:0}.chain__row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.chain__type{margin-left:0}.chain__type--forward{background:#dcecfd;color:#1f5fa8}.chain__type--reassign{background:#ece4fb;color:#5b3ea8}.chain__type--return{background:#fdecdc;color:#b05c12}.chain__item--return{border-left:3px solid #b05c12;padding-left:.5rem}.chain__hidden{font-style:italic}.chain__reason{font-size:.85rem}.chain__depth,.chain__warning{margin:0 0 .5rem}.submission--latest{border-left:3px solid var(--primary);padding-left:.5rem}.submission--accepted{border-left:3px solid #1e7a3c;padding-left:.5rem;background:#f3fbf5}.submission__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.submission__head .badge{margin-left:0}.submission-status-submitted{background:#dcecfd;color:#1f5fa8}.submission-status-accepted{background:#def7e4;color:#1e7a3c}.submission-status-rejected{background:#fbe1de;color:var(--danger)}.submission__review{display:flex;flex-direction:column;gap:.4rem;margin-top:.35rem}.submission__reject-form{width:100%}.submission__attachments{margin-top:.25rem}.submission__attachment{display:inline-flex;align-items:center;gap:.4rem}.submission-form .field__input{margin-bottom:.5rem}.submission-form__hint{margin:.5rem 0 .25rem;font-size:.85rem}.submission-form__missing-title{margin:.5rem 0 .25rem}.req-list{margin:.25rem 0 .75rem;padding-left:1.25rem}.req-list__item{margin:.15rem 0}.badge--control{background:#e8f4ec;color:#22764a}.card--control{border-left:3px solid #22764a}.control__ready-badge{margin-left:.5rem}.control__note,.control-form .field__input{margin-bottom:.5rem}.control-form__scenarios{display:flex;gap:1rem;flex-wrap:wrap;margin:.25rem 0 .5rem}.cockpit-control-form{margin-top:1rem}.muted{color:var(--muted)}.error-text{color:var(--danger);font-size:.9rem;margin:.5rem 0 0}.token{display:block;padding:.5rem .7rem;background:#1c2024;color:#e2e8f0;border-radius:6px;font-size:.8rem;word-break:break-all}.loading{padding:2rem;text-align:center;color:var(--muted)}.login{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem}.login__card{width:100%;max-width:360px;margin:0}.login__title{font-size:1.3rem;margin:0 0 1rem}.login__card .btn{width:100%;margin-top:.5rem}
