/*
Theme Name: Nixi Project Workspace
Theme URI: https://nixi.local/
Author: Nixi
Description: Private, mobile-first project collaboration workspace.
Version: 1.77.6
Text Domain: nixi-workspace
*/
:root{--ink:#172033;--muted:#5a6779;--line:#dbe3ee;--paper:#fff;--wash:#f4f7fb;--field:#fff;--surface-2:#eaf0f7;--surface-3:#eef2f8;--count-bg:#d5dfeb;--card-line:#d9e2ec;--input-line:#bdc9d9;--btn-sec-line:#b9c8ea;--tint-blue:#eaf1ff;--tint-blue2:#e8f0ff;--mention-line:#c3d4f5;--danger-bg:#fff0ef;--danger-line:#f0c0bc;--warn-bg:#fff8e6;--warn-line:#f0dcb0;--ok-bg:#eef7ee;--ok-line:#cfe6cf;--ok-ink:#14632f;--pri-urgent-bg:#fdeceb;--pri-high-bg:#fff4e2;--dot:#5b7fdc;--on-accent:#fff;--backdrop:#07142680;--shadow-sm:#0d1e3810;--shadow-lg:#1d2d5414;--shadow-nav:#1d2d540f;--shadow-menu:#0c193c2e;--shadow-modal:#0c193c55;--blue:#2d5bd1;--blue2:#173c9b;--green:#15803d;--amber:#a16207;--red:#b42318;--on-red:#fff;--hatch:#ffffff4d;--radius:14px;--nixi-bulk-top:.5rem;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--wash);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.nixi-shell{max-width:1320px;margin:0 auto;padding:clamp(1rem,3vw,2.5rem)}.nixi-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.nixi-brand{display:inline-flex;flex-direction:column;gap:.05rem;line-height:1.15;font-weight:850;text-decoration:none;color:var(--ink);letter-spacing:-.03em}.nixi-brand-name{font-size:1.02rem;color:var(--ink)}.nixi-brand-by{font-size:.62rem;font-weight:600;letter-spacing:.04em;color:var(--muted);opacity:.75;text-transform:none}.nixi-user{display:flex;align-items:center;gap:.65rem;font-size:.9rem}.nixi-user a,.nixi-link{color:var(--blue);font-weight:700;text-decoration:none}.nixi-login{max-width:480px;margin:12vh auto;background:var(--paper);padding:2rem;border-radius:var(--radius);box-shadow:0 8px 35px var(--shadow-lg)}.nixi-login h1{margin-top:0}.nixi-login a{display:inline-block;background:var(--blue);color:var(--on-accent);padding:.8rem 1rem;border-radius:9px;text-decoration:none;font-weight:750}.nixi-app{display:grid;gap:1.25rem}.nixi-toolbar{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.nixi-kicker{margin:0 0 .25rem;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.nixi-title{margin:0;font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:-.045em}.nixi-select{min-width:230px}.nixi-label{display:block;font-size:.8rem;font-weight:750;margin:0 0 .4rem}.nixi-input,.nixi-textarea,.nixi-select select{width:100%;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--input-line);border-radius:9px;padding:.7rem}.nixi-textarea{resize:vertical}.nixi-button{appearance:none;border:0;border-radius:9px;background:var(--blue);color:var(--on-accent);font:inherit;font-weight:750;padding:.72rem 1rem;cursor:pointer}.nixi-button:hover{background:var(--blue2)}.nixi-button.secondary{background:var(--paper);color:var(--blue);border:1px solid var(--btn-sec-line)}.nixi-button.danger{background:var(--danger-bg);color:var(--red);border:1px solid var(--danger-line)}.nixi-button.small{font-size:.82rem;padding:.5rem .75rem;min-height:40px}.nixi-actions{display:flex;gap:.6rem;flex-wrap:wrap}.nixi-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:1rem}.nixi-panel summary{cursor:pointer;font-weight:800}.nixi-form{display:grid;gap:.85rem;margin-top:1rem}.nixi-form-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.85rem}.nixi-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}.nixi-column{background:var(--surface-2);border-radius:12px;padding:.8rem;min-height:240px}.nixi-column-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 .65rem}.nixi-column h2{font-size:.94rem;margin:0}.nixi-count{background:var(--count-bg);border-radius:99px;min-width:1.6rem;text-align:center;font-size:.75rem;padding:.15rem .4rem}.nixi-card{background:var(--paper);border:1px solid var(--card-line);border-radius:10px;padding:.85rem;margin:.65rem 0;box-shadow:0 1px 1px var(--shadow-sm)}.nixi-card h3{font-size:1rem;margin:0 0 .4rem}.nixi-card p{font-size:.88rem;line-height:1.45;margin:.35rem 0}.nixi-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;color:var(--muted);font-size:.76rem;margin-top:.55rem}.nixi-task-dates{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;color:var(--muted);font-size:.68rem;line-height:1.35;margin-top:.55rem}.nixi-task-dates time{font:inherit;color:inherit}.nixi-task-reference{display:inline-block;color:var(--blue);font-size:.72rem;font-weight:850;letter-spacing:.04em}.nixi-card-head{position:relative;min-height:20px}.nixi-select-hit{position:absolute;inset:0 auto auto 0;display:inline-grid;place-items:center;cursor:pointer}.nixi-select-hit .nixi-select-box{margin:0}.nixi-card-head .nixi-task-reference{margin-left:24px}.nixi-dot{width:7px;height:7px;background:var(--dot);border-radius:50%}.nixi-card-actions{display:flex;gap:.45rem;margin-top:.75rem}.nixi-empty{font-size:.88rem;color:var(--muted);padding:.5rem}.nixi-modal{border:0;background:var(--paper);color:var(--ink);border-radius:14px;box-shadow:0 15px 80px var(--shadow-modal);width:min(640px,calc(100% - 3rem));padding:0;max-height:94vh;overflow:hidden}/* Content-appropriate widths: a task form, a portfolio table and a Gantt chart have very different   space needs, and forcing all three through one 580px column was the main source of clutter. */.nixi-modal.wide{width:min(1280px,94vw);max-height:94vh}.nixi-modal.medium{width:min(900px,94vw)}.nixi-modal::backdrop{background:var(--backdrop)}.nixi-modal-main{padding:1.25rem}.nixi-modal-top{display:flex;justify-content:space-between;gap:1rem;align-items:center}.nixi-modal h2{margin:0;font-size:1.25rem}.nixi-close{border:0;background:transparent;font-size:1.4rem;cursor:pointer}.nixi-notes{border-top:1px solid var(--line);margin-top:1rem;padding-top:.8rem}.nixi-note{border-radius:8px;background:var(--surface-2);padding:.6rem;margin:.5rem 0;font-size:.85rem}.nixi-note strong{font-size:.78rem}.nixi-note p{margin:.2rem 0}.nixi-team{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.nixi-team-list{margin:0;padding:0;list-style:none}.nixi-team-list li{padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.88rem}.nixi-alert{padding:.75rem 1rem;border-radius:9px;font-weight:650}.nixi-alert.error{background:var(--danger-bg);color:var(--red)}.nixi-alert.success{background:var(--ok-bg);color:var(--ok-ink)}.nixi-badge{display:inline-block;min-width:1.35rem;padding:.05rem .4rem;margin-left:.35rem;border-radius:99px;background:var(--red);color:var(--on-red);font-size:.72rem;font-weight:850;text-align:center}.nixi-notification-list{list-style:none;margin:.5rem 0 0;padding:0;max-height:60vh;overflow:auto}.nixi-notification{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem;border-radius:9px;background:var(--surface-2);margin:.45rem 0;font-size:.85rem}.nixi-notification.unread{background:var(--tint-blue);border-left:3px solid var(--blue)}.nixi-notification time{color:var(--muted);font-size:.72rem}.nixi-notification-icon{font-size:1rem;line-height:1.2}.nixi-attachment-size{color:var(--muted);font-size:.75rem}.nixi-attachment-toggle{display:inline-block;margin-left:.6rem;font-size:.78rem;color:var(--muted)}#nixi-attachment-list{list-style:none;margin:.4rem 0;padding:0}#nixi-attachment-list li{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;padding:.35rem 0;border-bottom:1px solid var(--line);font-size:.85rem}.nixi-archived{opacity:.6}.nixi-scope-picker{display:grid;gap:.3rem;margin:.3rem 0;max-height:34vh;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:.55rem}.nixi-scope-option{display:flex;align-items:center;gap:.45rem;font-size:.85rem}.nixi-abilities{margin:.4rem 0;padding:.6rem}.nixi-abilities summary{font-size:.85rem}.nixi-ability-group{border:0;border-top:1px solid var(--line);margin:.5rem 0 0;padding:.5rem 0 0}.nixi-ability-group legend{font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0}.nixi-tools{display:grid;gap:.6rem}.nixi-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.nixi-filters .nixi-input{width:auto;min-width:130px;padding:.5rem .6rem;font-size:.95rem;min-height:40px}.nixi-search{flex:1 1 220px;min-width:180px!important}.nixi-stats{display:flex;flex-wrap:wrap;gap:.5rem}.nixi-stat{background:transparent;border:0;border-radius:0;padding:.15rem 0;font-size:.8rem;color:var(--muted)}.nixi-stat strong{color:var(--ink)}.nixi-stat.danger{background:var(--danger-bg);border-color:var(--danger-line);color:var(--red)}.nixi-stat.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--amber)}.nixi-tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.3rem}.nixi-tag{font-size:.7rem;font-weight:750;border-radius:99px;padding:.12rem .5rem;background:var(--surface-3);color:var(--muted)}.nixi-initiative-tag{background:var(--tint-blue2);color:var(--blue);border:1px solid var(--mention-line)}.nixi-pri-urgent{background:var(--pri-urgent-bg);color:var(--red)}.nixi-pri-high{background:var(--pri-high-bg);color:var(--amber)}.nixi-pri-low{background:var(--ok-bg);color:var(--green)}.nixi-card.nixi-overdue{border-left:3px solid var(--red)}.nixi-due-overdue{color:var(--red);font-weight:750}.nixi-due-soon{color:var(--amber);font-weight:700}.nixi-note-actions{display:flex;gap:.35rem;margin-top:.35rem}.nixi-thumb{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}.nixi-timeline{list-style:none;margin:.5rem 0 0;padding:0;max-height:50vh;overflow:auto}.nixi-timeline li{display:flex;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.82rem}.nixi-question{border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:10px;padding:.75rem;margin:.75rem 0}.nixi-question.answered{background:var(--ok-bg);border-color:var(--ok-line)}.nixi-question.declined{background:var(--danger-bg);border-color:var(--danger-line)}.nixi-question p{margin:.35rem 0;font-size:.9rem}.nixi-mention{background:var(--tint-blue2);color:var(--blue);border:1px solid var(--mention-line);border-radius:4px;padding:0 .25rem;font-weight:750;white-space:nowrap}.nixi-mention.unknown{background:var(--surface-3);color:var(--muted);border-color:var(--line)}.nixi-created-by{font-size:.72rem}.nixi-table{width:100%;border-collapse:collapse;margin-top:.75rem;font-size:.85rem}.nixi-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);padding:.4rem .5rem}.nixi-table td{padding:.45rem .5rem;border-bottom:1px solid var(--line)}.nixi-bad{color:var(--red);font-weight:750}.nixi-warn{color:var(--amber);font-weight:750}
.nixi-gantt-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;margin:.75rem 0 .3rem}.nixi-gantt{position:relative;max-height:60vh;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:.5rem}.nixi-gantt-row{display:flex;align-items:center;gap:.5rem;padding:.18rem 0}.nixi-gantt-label{flex:0 0 130px;font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nixi-gantt-track{position:relative;flex:1;height:20px;background:var(--surface-3);border-radius:5px}.nixi-gantt-bar{position:absolute;top:2px;height:16px;border:0;border-radius:5px;background:var(--blue);color:var(--on-accent);font-size:.62rem;font-weight:750;padding:0 .3rem;cursor:pointer;overflow:hidden;white-space:nowrap;text-align:left}.nixi-gantt-bar.s-done{background:var(--green)}.nixi-gantt-bar.s-doing{background:var(--amber)}.nixi-gantt-bar.overdue{outline:2px solid var(--red)}.nixi-gantt-bar.unplanned{opacity:.55;background-image:repeating-linear-gradient(45deg,var(--hatch),var(--hatch) 4px,transparent 4px,transparent 8px)}.nixi-gantt-today{position:absolute;top:0;bottom:0;width:2px;background:var(--red);opacity:.65;z-index:2}
.nixi-hidden{display:none!important}.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.nixi-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:.75rem}.nixi-table-wrap .nixi-table{margin-top:0;min-width:520px}.nixi-panel-filters{margin:.75rem 0 .25rem}.nixi-help{display:block;color:var(--muted);font-size:.72rem;margin-top:.3rem;line-height:1.3}.nixi-agent-chip{color:var(--blue);font-weight:700}.nixi-loading{opacity:.55;pointer-events:none;transition:opacity .15s}.nixi-modal-main{max-height:94vh;overflow-y:auto;overscroll-behavior:contain}.nixi-modal-top{position:sticky;top:0;background:var(--paper);z-index:3;padding-bottom:.5rem;margin:-.25rem 0 .25rem}.nixi-close{min-width:44px;min-height:44px;line-height:1}.nixi-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.6rem .8rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);position:sticky;top:.5rem;z-index:20;box-shadow:0 4px 18px var(--shadow-nav)}.nixi-nav-project{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;min-width:0;flex:1 1 auto;order:2;flex-wrap:wrap}.nixi-nav-picker{flex:0 1 300px;min-width:200px}.nixi-nav-picker select{font-weight:800;font-size:1rem;padding:.55rem .7rem;letter-spacing:-.01em}.nixi-nav-project .nixi-kicker{margin:0;white-space:nowrap}.nixi-kicker-external{color:var(--amber)}.nixi-nav-primary{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap;flex:0 0 auto;order:1}.nixi-iconbtn{white-space:nowrap}.nixi-menu{position:relative}.nixi-menu summary{list-style:none;display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;user-select:none}.nixi-menu summary::-webkit-details-marker{display:none}.nixi-menu[open]>summary{background:var(--tint-blue)}.nixi-menu:not([open])>.nixi-menu-panel{display:none}.nixi-menu-panel{position:absolute;right:0;top:calc(100% + .4rem);min-width:230px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px var(--shadow-menu);padding:.4rem;z-index:30;display:grid}.nixi-menu-heading{margin:.35rem .6rem .15rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}.nixi-menu-heading:not(:first-child){border-top:1px solid var(--line);padding-top:.5rem;margin-top:.3rem}.nixi-menu-item{appearance:none;border:0;background:transparent;font:inherit;color:var(--ink);text-align:left;padding:.55rem .7rem;border-radius:8px;cursor:pointer;min-height:40px;display:flex;align-items:center;gap:.5rem;width:100%}.nixi-menu-item:hover,.nixi-menu-item:focus-visible{background:var(--wash);outline:0}.nixi-tools-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.nixi-tools-row .nixi-stats{flex:1 1 auto}.nixi-filter-toggle{white-space:nowrap}.nixi-filter-toggle.active{background:var(--tint-blue)}.nixi-filter-toggle .nixi-badge{background:var(--blue)}#nixi-filter-area{margin-top:.5rem}
/* CTS-28 dark theme: token overrides only, so every existing component inherits it.
   html[data-theme] is set by the toggle; with no explicit choice we follow the OS. */
@media(prefers-color-scheme:dark){html:not([data-theme=light]){--ink:#e6ecf7;--muted:#9aa8bd;--line:#2b3648;--paper:#161d2b;--wash:#0f141e;--field:#1d2637;--surface-2:#1b2434;--surface-3:#232e42;--count-bg:#2f3b50;--card-line:#2b3648;--input-line:#3a4761;--btn-sec-line:#3a4c72;--tint-blue:#1c2942;--tint-blue2:#1c2942;--mention-line:#33507f;--danger-bg:#3a1d1c;--danger-line:#6d2f2b;--warn-bg:#3a2f16;--warn-line:#6b5524;--ok-bg:#16301f;--ok-line:#2c5738;--ok-ink:#8fd7a6;--pri-urgent-bg:#3a1d1c;--pri-high-bg:#3a2f16;--dot:#6b8fe0;--on-accent:#0d1219;--backdrop:#03070ec4;--shadow-sm:#0000004d;--shadow-lg:#00000073;--shadow-nav:#00000059;--shadow-menu:#00000080;--shadow-modal:#000000a6;--blue:#7aa2ff;--blue2:#9dbcff;--green:#4ade80;--amber:#fbbf24;--red:#ff8b80;--on-red:#2a0d0a;--hatch:#00000059;color-scheme:dark}}
html[data-theme=dark]{--ink:#e6ecf7;--muted:#9aa8bd;--line:#2b3648;--paper:#161d2b;--wash:#0f141e;--field:#1d2637;--surface-2:#1b2434;--surface-3:#232e42;--count-bg:#2f3b50;--card-line:#2b3648;--input-line:#3a4761;--btn-sec-line:#3a4c72;--tint-blue:#1c2942;--tint-blue2:#1c2942;--mention-line:#33507f;--danger-bg:#3a1d1c;--danger-line:#6d2f2b;--warn-bg:#3a2f16;--warn-line:#6b5524;--ok-bg:#16301f;--ok-line:#2c5738;--ok-ink:#8fd7a6;--pri-urgent-bg:#3a1d1c;--pri-high-bg:#3a2f16;--dot:#6b8fe0;--on-accent:#0d1219;--backdrop:#03070ec4;--shadow-sm:#0000004d;--shadow-lg:#00000073;--shadow-nav:#00000059;--shadow-menu:#00000080;--shadow-modal:#000000a6;--blue:#7aa2ff;--blue2:#9dbcff;--green:#4ade80;--amber:#fbbf24;--red:#ff8b80;--on-red:#2a0d0a;--hatch:#00000059;color-scheme:dark}
.nixi-theme{display:inline-flex;align-items:center;gap:.15rem;background:var(--surface-3);border-radius:99px;padding:.15rem;flex:0 0 auto}
.nixi-theme button{appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.95rem;line-height:1;padding:.4rem .55rem;border-radius:99px;cursor:pointer;min-width:40px;min-height:40px}
.nixi-theme button:hover{color:var(--ink)}
.nixi-theme button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px var(--shadow-sm)}
.nixi-theme button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
/* The alert must sit ABOVE an open <dialog>. A dialog renders in the browser's top layer, so a
   normally-positioned alert is visually behind it and cannot be clicked or dismissed - errors
   raised inside a modal (e.g. a rejected file) were unreachable. A fixed toast avoids that. */
.nixi-alert{position:fixed;top:1rem;left:50%;transform:translateX(-50%);z-index:2147483647;width:min(560px,calc(100% - 2rem));padding-right:2.4rem;box-shadow:0 10px 34px var(--shadow-menu);border:1px solid var(--line)}#nixi-modal .nixi-alert{position:sticky;top:0;left:auto;transform:none;width:auto;margin:0 0 .6rem}.nixi-alert-close{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);appearance:none;border:0;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;min-width:32px;min-height:32px;border-radius:6px}.nixi-alert-close:hover{background:#0000001a}#nixi-staged-list{list-style:none;margin:.5rem 0;padding:0}#nixi-staged-list li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.85rem}#nixi-staged-list li span:first-child{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.nixi-file-pick{display:inline-block;cursor:pointer}.nixi-staged-note{margin:.35rem 0 0;font-size:.78rem}.nixi-kicker-external{color:var(--amber)}.nixi-note-edit{display:grid;gap:.5rem;margin:.35rem 0}.nixi-note-edit .nixi-textarea{font-size:.9rem}.nixi-confirm{width:min(440px,calc(100% - 2rem));border:1px solid var(--line)}.nixi-confirm p{margin:.75rem 0 1rem;font-size:.92rem;line-height:1.5;color:var(--ink)}.nixi-confirm .nixi-modal-top{border:0;box-shadow:none;position:static}.nixi-confirm .nixi-actions{justify-content:flex-end}.nixi-label-tag{background:var(--tint-blue2);color:var(--blue);border:1px solid var(--mention-line)}.nixi-sub-tag{background:var(--surface-3)}.nixi-substatus-tag{background:var(--surface-3);color:var(--muted);font-weight:750}.nixi-substatus-tag.s-doing{background:var(--pri-high-bg);color:var(--amber)}.nixi-substatus-tag.s-done{background:var(--ok-bg);color:var(--ok-ink)}.nixi-history-list{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.45rem;max-height:40vh;overflow:auto}.nixi-history-list li{border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;background:var(--surface-2)}.nixi-history-head{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;font-size:.78rem;color:var(--muted)}.nixi-history-head strong{color:var(--ink);font-size:.82rem}.nixi-history-change{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-top:.25rem;font-size:.85rem}.nixi-history-field{font-weight:750;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.nixi-history-from{text-decoration:line-through;color:var(--muted);overflow-wrap:anywhere}.nixi-history-arrow{color:var(--muted)}.nixi-history-to{font-weight:650;overflow-wrap:anywhere}.nixi-stale-tag{background:var(--warn-bg);color:var(--amber);border:1px solid var(--warn-line);font-weight:750}.nixi-stale-tag.s-overdue{background:var(--danger-bg);color:var(--red);border-color:var(--danger-line)}.nixi-blocked-tag{background:var(--danger-bg);color:var(--red);border:1px solid var(--danger-line)}.nixi-rel-line{margin:.4rem 0;font-size:.85rem}.nixi-sub-list{list-style:none;margin:.35rem 0;padding:0;display:grid;gap:.3rem}.nixi-sub-list li{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.85rem}.nixi-sub-status{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:0 0 auto}.nixi-sub-status.s-doing{background:var(--amber)}.nixi-sub-status.s-done{background:var(--green)}.nixi-linkish{appearance:none;border:0;background:transparent;color:var(--blue);font:inherit;font-weight:650;cursor:pointer;padding:0;text-align:left;text-decoration:underline}.nixi-rel .nixi-form{margin-top:.5rem}/* Keyboard users must be able to see where they are. The browser default outline is removed by
   the reset on buttons, so restore an explicit high-contrast ring on keyboard focus only. */
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}.nixi-button:focus-visible,.nixi-input:focus-visible,.nixi-textarea:focus-visible,.nixi-menu summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.nixi-card:focus-within{box-shadow:0 0 0 2px var(--blue)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}/* Task dialog: description gets real room; every other field lives in a scannable sidebar.   Nothing is hidden - the fields are grouped rather than stacked into one narrow column. */.nixi-task-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:1.5rem;align-items:start}.nixi-task-main>.nixi-panel-block{margin-top:0}.nixi-task-main{min-width:0;display:grid;gap:1rem}.nixi-task-side{min-width:0;display:grid;gap:.9rem;align-content:start;align-self:start;overflow-wrap:anywhere}.nixi-side-group{border:1px solid var(--line);border-radius:12px;padding:.85rem;background:var(--surface-2);min-width:0;box-sizing:border-box}.nixi-side-group *{min-width:0;max-width:100%}.nixi-side-group>label{display:block}.nixi-side-group>label+label{margin-top:.7rem}.nixi-side-title{margin:0 0 .6rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}.nixi-side-pair{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.nixi-side-pair label{margin:0}.nixi-details{min-height:220px;resize:vertical;line-height:1.55}.nixi-task-actions{margin:.25rem 0 0;padding:0}.nixi-panel-block{border:1px solid var(--line);border-radius:12px;padding:.9rem;margin:0}.nixi-block-title{margin:0 0 .6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.nixi-link-row{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;gap:.5rem;align-items:center;margin-top:.6rem}.nixi-upload-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}/* The old rule bolted the notes/attachment sections together with a top border; the block   treatment above replaces it, so keep .nixi-notes purely for the note list itself. */.nixi-task-main .nixi-notes{border:0;margin:0;padding:0}.nixi-dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin:.9rem 0}.nixi-metric{border:1px solid var(--line);border-radius:12px;padding:.8rem;background:var(--surface-2)}.nixi-metric-value{font-size:1.55rem;font-weight:800;line-height:1.1;letter-spacing:-.02em}.nixi-metric-label{display:block;margin-top:.2rem;font-size:.76rem;color:var(--muted)}.nixi-metric.danger .nixi-metric-value{color:var(--red)}.nixi-metric.warn .nixi-metric-value{color:var(--amber)}.nixi-table th{position:sticky;top:0;background:var(--paper);z-index:1}.nixi-table tbody tr:hover{background:var(--surface-2)}.nixi-gantt{max-height:min(66vh,640px)}.nixi-gantt-label{flex:0 0 190px}.nixi-gantt-row:hover{background:var(--surface-2);border-radius:6px}/* --- v1.32 workflow surfaces. All colours are tokens so dark mode keeps working. --- */.nixi-head-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.nixi-crit-list,.nixi-ev-list{list-style:none;margin:.5rem 0;padding:0;display:grid;gap:.4rem}.nixi-crit,.nixi-ev-list li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .5rem;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.nixi-crit label{display:flex;align-items:center;gap:.5rem;flex:1;margin:0;cursor:pointer}.nixi-crit input{width:18px;height:18px;flex:0 0 auto}.nixi-crit.done>label>span{text-decoration:line-through;color:var(--muted)}.nixi-crit-count{font-size:.72rem;font-weight:700;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.05rem .45rem}.nixi-progress{height:6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin:.15rem 0 .5rem}.nixi-progress>span{display:block;height:100%;background:var(--blue);transition:width .2s ease}.nixi-crit-add,.nixi-ev-add{display:grid;grid-template-columns:1fr auto;gap:.45rem;margin-top:.5rem}.nixi-ev-add{grid-template-columns:minmax(0,auto) minmax(0,1fr) auto}.nixi-ev-list code{font-size:.8rem;word-break:break-all}.nixi-ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin-bottom:.5rem}.nixi-ai-grid>div{display:grid;gap:.15rem}.nixi-warn-block{border-color:var(--warn-line)}.nixi-warn-line{margin:.35rem 0 0;color:var(--warn-line);font-weight:600;font-size:.85rem}.nixi-tag.nixi-warn{background:var(--warn-bg);color:var(--ink);border-color:var(--warn-line)}.nixi-tag.nixi-waiting{background:var(--surface-2);color:var(--ink);border-color:var(--line)}.nixi-tag.v-verified{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}.nixi-tag.v-failed{background:var(--danger-bg);color:var(--red);border-color:var(--red)}.nixi-tag.v-pending{background:var(--warn-bg);color:var(--ink);border-color:var(--warn-line)}.nixi-plan pre{white-space:pre-wrap;word-break:break-word;font-size:.82rem;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:.55rem;margin:.4rem 0 0}.nixi-proposal-list label{display:flex;align-items:flex-start;gap:.45rem;margin:0}.nixi-select-box{margin-right:.4rem;width:17px;height:17px;flex:0 0 auto}/* Selection context stays near the board controls. The full editor is deferred to a modal,
   so ticking one checkbox cannot create a bottom overlay that covers task cards. */
.nixi-bulkbar{position:sticky;top:var(--nixi-bulk-top,.5rem);z-index:19;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:.5rem .65rem;margin:.45rem 0}.nixi-bulkbar[hidden]{display:none!important}.nixi-bulkbar strong{white-space:nowrap;margin-right:auto}.nixi-bulkbar .nixi-button{flex:0 0 auto}.nixi-bulkbar .nixi-input{width:auto;min-width:130px;max-width:220px;padding:.5rem .6rem}.nixi-bulk-value{display:flex;min-width:0}.nixi-bulk-value .nixi-input{width:100%}/* Note visibility: an internal note must be visually unmistakable, because posting one   to the wrong audience is the expensive mistake this feature prevents. *//* Card description is a PREVIEW. Clamping in CSS keeps the full text in the payload   (the edit form reads it from the same cached object, so truncating server-side would   silently destroy descriptions on save) while cutting card height and layout work. */.nixi-card>p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:.3rem 0}.nixi-vis{display:inline-block;margin-left:.4rem;padding:.05rem .4rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.02em;border:1px solid var(--line);vertical-align:middle}.nixi-vis-internal{background:var(--surface-3);color:var(--muted)}.nixi-vis-client{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}.nixi-note-compose{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.45rem}.nixi-mention-wrap{position:relative}.nixi-mention-list{position:absolute;z-index:20;left:0;right:0;bottom:calc(100% + .25rem);max-height:13rem;overflow:auto;padding:.25rem;border:1px solid var(--input-line);border-radius:8px;background:var(--paper);box-shadow:0 6px 18px color-mix(in srgb,var(--ink) 20%,transparent)}.nixi-mention-list[hidden]{display:none}.nixi-mention-option{display:flex;width:100%;gap:.45rem;align-items:baseline;padding:.45rem .55rem;border:0;border-radius:5px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.nixi-mention-option:hover,.nixi-mention-option.active{background:var(--blue-soft)}.nixi-mention-option span{color:var(--muted);font-size:.85em}.nixi-note-vis{margin:0}.nixi-note-vis select{min-width:170px}#nixi-note-vis-help{display:block;margin-top:.3rem}#nixi-note-vis-help.nixi-vis-warn{color:var(--ok-ink);font-weight:600}/* A client-visible note reads differently from internal chatter at a glance. */.nixi-note:has(.nixi-vis-client){border-left:3px solid var(--ok-line)}.nixi-truncated{margin:.5rem 0;padding:.5rem .7rem;border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--ink);border-radius:8px;font-size:.85rem}.nixi-views{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.4rem 0}.nixi-view-chip{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:6px;padding:.2rem .6rem;font-size:.78rem;cursor:pointer}.nixi-view-chip.active{background:var(--blue);color:var(--on-accent);border-color:var(--blue)}.nixi-view-chip .x{margin-left:.35rem;opacity:.65}
@media(min-width:781px) and (max-width:1100px){.nixi-nav{flex-wrap:wrap}.nixi-nav-primary{order:1;flex:1 1 100%}.nixi-nav-project{order:2;flex:1 1 100%;justify-content:flex-end}.nixi-nav-picker{flex:0 1 340px}}

@media(max-width:900px){.nixi-ev-add{grid-template-columns:1fr}.nixi-crit-add{grid-template-columns:1fr}.nixi-bulkbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}.nixi-bulkbar strong{grid-column:1/-1}.nixi-bulkbar .nixi-input,.nixi-bulk-value{width:100%;min-width:0;max-width:none}.nixi-bulkbar #nixi-bulk-apply,.nixi-bulkbar #nixi-bulk-clear{width:100%}.nixi-task-grid{grid-template-columns:1fr;gap:1rem}.nixi-details{min-height:150px}.nixi-link-row{grid-template-columns:1fr}.nixi-gantt-label{flex:0 0 84px}}
@media(max-width:780px){.nixi-nav{padding:.5rem;top:0;border-radius:0 0 12px 12px;margin:0 -1rem;border-width:0 0 1px}.nixi-nav-project{flex:1 1 100%;order:2;gap:.5rem;justify-content:flex-end}.nixi-nav-project .nixi-kicker{font-size:.62rem;flex:0 0 auto}.nixi-nav-picker{flex:1 1 auto}.nixi-nav-picker select{min-height:42px}.nixi-nav-primary{order:1;flex:1 1 100%;justify-content:space-between}.nixi-nav-project .nixi-kicker{order:1}.nixi-nav-picker{order:2}.nixi-nav-primary .nixi-button{flex:0 0 auto}.nixi-iconbtn-text{display:none}.nixi-iconbtn,.nixi-menu summary{min-width:44px;justify-content:center;padding-left:.7rem;padding-right:.7rem}.nixi-menu-panel{position:fixed;left:.5rem;right:.5rem;top:auto;bottom:.5rem;min-width:0;max-height:70vh;overflow:auto}.nixi-menu-item{min-height:46px}.nixi-tools-row .nixi-stats{gap:.3rem}.nixi-tools-row .nixi-stat{font-size:.7rem;padding:.2rem .5rem}.nixi-top{margin-bottom:.5rem}.nixi-app{gap:.75rem}.nixi-shell{padding:1rem}.nixi-top{margin-bottom:1rem}.nixi-toolbar{align-items:stretch;flex-direction:column}.nixi-select{min-width:0}.nixi-form-row,.nixi-team{grid-template-columns:1fr}.nixi-board{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.6rem;scrollbar-width:thin}.nixi-column{flex:0 0 86%;scroll-snap-align:start}.nixi-user span{display:none}.nixi-card{padding:1rem}.nixi-button{min-height:44px}.nixi-filters .nixi-input,.nixi-input,.nixi-textarea,.nixi-card-actions select{min-height:44px;font-size:16px}.nixi-filters .nixi-input{flex:1 1 calc(50% - .25rem);min-width:0}.nixi-search{flex:1 1 100%!important;min-width:0!important}.nixi-button.small{min-height:40px}.nixi-actions .nixi-button{flex:1 1 calc(50% - .3rem)}.nixi-modal{width:calc(100% - 1rem);max-width:none;max-height:calc(100dvh - 1rem);margin:auto}.nixi-modal-main{padding:1rem;max-height:calc(100dvh - 1rem)}.nixi-gantt-label{flex:0 0 78px;font-size:.68rem}.nixi-gantt-track{height:24px}.nixi-gantt-bar{height:20px}.nixi-gantt{max-height:55vh}.nixi-stats{gap:.4rem}.nixi-stat{font-size:.76rem;padding:.3rem .6rem}.nixi-table-wrap .nixi-table{min-width:480px;font-size:.8rem}.nixi-notification-list,.nixi-timeline{max-height:50vh}.nixi-task-dates{grid-template-columns:1fr}.nixi-card-actions{flex-wrap:wrap}.nixi-card-actions select{flex:1 1 100%}}
@media(max-width:420px){.nixi-column{flex:0 0 92%}.nixi-gantt-label{flex:0 0 64px}}
@media(hover:none){.nixi-theme button{min-width:44px;min-height:44px}.nixi-filters .nixi-input{min-height:44px;font-size:16px}.nixi-button.small{min-height:44px}.nixi-input,.nixi-textarea,.nixi-select select{min-height:44px;font-size:16px}.nixi-select-hit{position:absolute;inset:-.65rem auto auto -.65rem;inline-size:44px;block-size:44px;display:inline-grid;place-items:center;cursor:pointer}.nixi-card-head{position:relative;min-height:26px}.nixi-card-head .nixi-task-reference{margin-left:38px}.nixi-select-hit .nixi-select-box{inline-size:18px;block-size:18px;margin:0;accent-color:var(--blue)}.nixi-top a,#nixi-view-save,.nixi-view-chip{min-height:44px;display:inline-flex;align-items:center;justify-content:center}}

/* v1.37.1 structured workbench composition */
html[data-theme=light]{--ink:#1f2924;--muted:#647068;--line:#d1d4cd;--paper:#fbfbf7;--wash:#f1f2ed;--field:#fff;--surface-2:#e7e9e2;--surface-3:#eef0ea;--count-bg:#dce1d7;--card-line:#cbd0c7;--input-line:#b9c2b8;--btn-sec-line:#b4c0b5;--tint-blue:#e3eee6;--tint-blue2:#e8f2e9;--mention-line:#b8cfbd;--blue:#286448;--blue2:#1d4b35;--dot:#5a8068;--radius:8px}.nixi-shell{max-width:1440px}.nixi-nav{border-radius:6px;border-top:3px solid var(--ink);box-shadow:none;padding:.75rem 1rem}.nixi-nav-primary{gap:.35rem}.nixi-button,.nixi-input,.nixi-textarea,.nixi-select select{border-radius:4px}.nixi-button{letter-spacing:.01em}.nixi-board{gap:0;border:1px solid var(--line);border-radius:6px;background:var(--paper);overflow:hidden}.nixi-column{background:transparent;border-radius:0;padding:1rem;min-height:320px}.nixi-column+.nixi-column{border-left:1px solid var(--line)}.nixi-column-head{padding-bottom:.7rem;margin-bottom:.7rem;border-bottom:1px solid var(--line)}.nixi-card{border-radius:4px;box-shadow:none;padding:1rem;margin:.8rem 0;background:var(--paper)}.nixi-card:first-of-type{margin-top:0}.nixi-card h3,.nixi-column h2{font-family:ui-serif,Georgia,Cambria,"Times New Roman",serif;letter-spacing:-.015em}.nixi-card h3{font-size:1.08rem;line-height:1.25}.nixi-column h2{font-size:1.08rem}.nixi-tag{border-radius:2px;background:transparent;border:1px solid var(--line);padding:.12rem .35rem;font-size:.64rem;letter-spacing:.035em;text-transform:uppercase}.nixi-stat{font-size:.76rem;letter-spacing:.025em}.nixi-view-chip{border-radius:3px}.nixi-panel,.nixi-side-group,.nixi-panel-block,.nixi-metric{border-radius:6px;box-shadow:none}.nixi-modal{border-radius:6px}.nixi-menu-panel{border-radius:6px;box-shadow:0 10px 26px var(--shadow-menu)}
@media(max-width:780px){.nixi-board{overflow-x:auto}.nixi-column+.nixi-column{border-left:0;border-right:1px solid var(--line)}.nixi-nav{border-radius:0 0 6px 6px;border-top:0;border-bottom:3px solid var(--ink)}}
@media(prefers-color-scheme:light){html:not([data-theme]){--ink:#1f2924;--muted:#647068;--line:#d1d4cd;--paper:#fbfbf7;--wash:#f1f2ed;--field:#fff;--surface-2:#e7e9e2;--surface-3:#eef0ea;--count-bg:#dce1d7;--card-line:#cbd0c7;--input-line:#b9c2b8;--btn-sec-line:#b4c0b5;--tint-blue:#e3eee6;--tint-blue2:#e8f2e9;--mention-line:#b8cfbd;--blue:#286448;--blue2:#1d4b35;--dot:#5a8068;--radius:8px}}

/* v1.37.2 visual rollback: restore the pre-v1.37.1 workspace composition. */
html[data-theme=light]{--ink:#172033;--muted:#5a6779;--line:#dbe3ee;--paper:#fff;--wash:#f4f7fb;--field:#fff;--surface-2:#eaf0f7;--surface-3:#eef2f8;--count-bg:#d5dfeb;--card-line:#d9e2ec;--input-line:#bdc9d9;--btn-sec-line:#b9c8ea;--tint-blue:#eaf1ff;--tint-blue2:#e8f0ff;--mention-line:#c3d4f5;--blue:#2d5bd1;--blue2:#173c9b;--dot:#5b7fdc;--radius:14px}.nixi-shell{max-width:1320px}.nixi-nav{border:1px solid var(--line);border-top:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 18px var(--shadow-nav);padding:.6rem .8rem}.nixi-nav-primary{gap:.5rem}.nixi-button,.nixi-input,.nixi-textarea,.nixi-select select{border-radius:9px}.nixi-button{letter-spacing:normal}.nixi-board{gap:1rem;border:0;border-radius:0;background:transparent;overflow:visible}.nixi-column{background:var(--surface-2);border-radius:12px;padding:.8rem;min-height:240px}.nixi-column+.nixi-column{border-left:0}.nixi-column-head{padding-bottom:0;margin:0 0 .65rem;border-bottom:0}.nixi-card{border-radius:10px;box-shadow:0 1px 1px var(--shadow-sm);padding:.85rem;margin:.65rem 0;background:var(--paper)}.nixi-card h3,.nixi-column h2{font-family:inherit;letter-spacing:normal}.nixi-card h3{font-size:1rem;line-height:normal}.nixi-column h2{font-size:.94rem}.nixi-tag{border-radius:99px;background:var(--surface-3);border:0;padding:.12rem .5rem;font-size:.7rem;letter-spacing:normal;text-transform:none}.nixi-stat{font-size:.8rem;letter-spacing:normal}.nixi-view-chip{border-radius:6px}.nixi-panel,.nixi-side-group,.nixi-panel-block,.nixi-metric{border-radius:12px}.nixi-modal{border-radius:14px}.nixi-menu-panel{border-radius:12px;box-shadow:0 14px 40px var(--shadow-menu)}.nixi-activity-bell{display:inline-flex!important;align-items:center;justify-content:center;opacity:1!important;visibility:visible!important;line-height:1;font-size:1rem;min-width:1.25rem;flex:0 0 auto}
@media(max-width:780px){.nixi-board{overflow-x:auto;overflow-y:visible}.nixi-column+.nixi-column{border-right:0}.nixi-nav{border-top:0;border-bottom:1px solid var(--line);border-radius:0 0 12px 12px}.nixi-nav-primary{flex:0 0 100%;width:100%;min-width:0;max-width:100%;justify-content:flex-start}#nixi-more-menu{position:relative;z-index:31}#nixi-more-menu .nixi-menu-panel{position:fixed;inset:auto .5rem .5rem .5rem;width:auto;max-width:none;z-index:31}}
@media(min-width:781px){#nixi-more-menu{position:relative;z-index:31}#nixi-more-menu .nixi-menu-panel{left:0;right:auto;z-index:31}}
@media(prefers-color-scheme:light){html:not([data-theme]){--ink:#172033;--muted:#5a6779;--line:#dbe3ee;--paper:#fff;--wash:#f4f7fb;--field:#fff;--surface-2:#eaf0f7;--surface-3:#eef2f8;--count-bg:#d5dfeb;--card-line:#d9e2ec;--input-line:#bdc9d9;--btn-sec-line:#b9c8ea;--tint-blue:#eaf1ff;--tint-blue2:#e8f0ff;--mention-line:#c3d4f5;--blue:#2d5bd1;--blue2:#173c9b;--dot:#5b7fdc;--radius:14px}}

/* Time recorder */
.nixi-timer{margin:.75rem 0;padding:.75rem;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;display:grid;gap:.5rem}.nixi-timer-display{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:.5rem}.nixi-timer-icon{font-size:1.5rem}.nixi-timer-time{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.05em;color:var(--ink)}.nixi-timer-controls{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.nixi-time-list{list-style:none;margin:.5rem 0;padding:0;display:grid;gap:.4rem}.nixi-time-list li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .5rem;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.nixi-time-hours{font-weight:700;color:var(--blue);min-width:3rem}.nixi-time-note{flex:1;min-width:0}.nixi-time-add{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;gap:.45rem;margin-top:.5rem}
/* CTS-86: Compact sidebar timer */
.nixi-sidebar-timer{display:grid;gap:.5rem}.nixi-timer-compact{display:grid;gap:.35rem;padding:.5rem;background:var(--surface-3);border:1px solid var(--line);border-radius:6px}.nixi-timer-compact .nixi-timer-display{padding:0;justify-content:flex-start}.nixi-timer-compact .nixi-timer-time{font-size:1.25rem}.nixi-timer-controls-compact{display:flex;gap:.35rem}.nixi-timer-controls-compact .nixi-button{min-width:0;padding:.4rem .6rem;font-size:.85rem}.nixi-time-summary{display:grid;gap:.3rem;font-size:.8rem;padding:.3rem 0}.nixi-time-summary>div{display:flex;justify-content:space-between;align-items:center}.nixi-time-summary .nixi-label{color:var(--muted);font-size:.72rem}.nixi-time-summary .nixi-warn-line{grid-column:1/-1;justify-content:flex-start;font-size:.7rem;margin-top:.1rem}
@media(max-width:780px){.nixi-time-add{grid-template-columns:1fr}.nixi-timer-time{font-size:1.5rem}.nixi-timer-compact .nixi-timer-time{font-size:1.1rem}}

/* CTS-90: automation rule builder. Colour comes from tokens only, so dark mode
   inherits automatically (see the theming contract test). */
.nixi-rule-block{border:1px solid var(--line);border-radius:8px;padding:.75rem;margin:.6rem 0;background:var(--surface-2)}
.nixi-rule-block legend{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 .4rem;font-weight:700}
.nixi-rule-row{display:grid;grid-template-columns:1.2fr 1fr 1.4fr auto;gap:.4rem;align-items:start;margin-bottom:.5rem}
.nixi-rule-row .nixi-input{min-width:0}
.nixi-rule-action{grid-template-columns:1.2fr 2.4fr auto}
.nixi-rule-subform{grid-column:1/-1;display:grid;gap:.45rem;padding:.6rem;margin-top:.2rem;border-left:3px solid var(--blue);background:var(--surface-3);border-radius:0 6px 6px 0}
.nixi-rule-list{list-style:none;padding:0;margin:.8rem 0;display:grid;gap:.5rem}
.nixi-rule-item{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start;padding:.65rem;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);flex-wrap:wrap}
.nixi-rule-item.nixi-rule-off{opacity:.62}
.nixi-rule-main{min-width:0;flex:1 1 16rem}
.nixi-rule-tools{display:flex;gap:.3rem;flex-wrap:wrap}
.nixi-hint{font-size:.75rem;color:var(--muted);margin:.35rem 0}
.nixi-hint code{background:var(--surface-3);padding:.05rem .25rem;border-radius:3px;font-size:.72rem}
.nixi-chip{display:inline-block;font-size:.66rem;padding:.1rem .4rem;border-radius:10px;background:var(--surface-3);color:var(--muted);border:1px solid var(--line);vertical-align:middle}
.nixi-chip.ok{color:var(--green);border-color:var(--green)}
.nixi-chip.danger{color:var(--red);border-color:var(--red)}
@media(max-width:780px){
  /* Stacked on mobile: four controls across a 390px viewport produced 30px tap
     targets, below the 44px floor the UI audit enforces. */
  .nixi-rule-row,.nixi-rule-action{grid-template-columns:1fr}
  .nixi-rule-row .nixi-button.small{min-height:44px}
  .nixi-rule-item{flex-direction:column}
}
.nixi-card[draggable=true]{cursor:grab}.nixi-card.nixi-dragging{opacity:.45;cursor:grabbing}.nixi-column.nixi-drop-active{outline:2px dashed var(--blue);outline-offset:-4px;background:var(--tint-blue)}.nixi-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px}kbd{display:inline-block;padding:.1rem .4rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);font:inherit;font-size:.8rem;font-weight:700}
/* CTS-97: threaded collaboration. Reactions are compact buttons, never free text. */
.nixi-note-reply{margin:.55rem 0 .55rem 1.25rem;padding-left:.85rem;border-left:3px solid var(--line)}
.nixi-reactions{display:flex;flex-wrap:wrap;gap:.3rem;margin:.35rem 0}.nixi-reaction{min-height:30px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink);padding:.1rem .45rem;cursor:pointer}.nixi-reaction.active{border-color:var(--blue);background:var(--tint-blue)}.nixi-reaction:hover{border-color:var(--blue)}
/* CTS-94: printable status report. The screen UI is full of controls that are noise on paper -
   nav, buttons, checkboxes, the filter strip and the modal all disappear, colours flatten to
   ink on white (dark mode would otherwise print a black page), and cards are kept whole across
   page breaks. Board columns stack so nothing is cut off at the page edge. */
@media print{
  :root,html,html[data-theme=dark],html[data-theme=light]{--ink:#000;--muted:#333;--line:#999;--paper:#fff;--wash:#fff;--surface-2:#fff;--surface-3:#fff;--field:#fff;--card-line:#999;--blue:#000;--on-accent:#000;color-scheme:light!important}
  body{background:#fff!important;color:#000!important;font-size:11pt}
  .nixi-nav,.nixi-tools,.nixi-filters,.nixi-card-actions,.nixi-select-hit,.nixi-select-box,
  .nixi-bulk,.nixi-views,#nixi-modal,.nixi-alert,.nixi-menu,.nixi-theme-switch,
  .nixi-user,.nixi-note-actions,.nixi-note-compose,#nixi-note-form,.nixi-actions,
  button,select,input,textarea{display:none!important}
  .nixi-shell{max-width:none;padding:0}
  .nixi-board{display:block!important;border:0}
  .nixi-column{background:#fff!important;padding:0;margin:0 0 1rem;min-height:0;break-inside:auto}
  .nixi-column h2{font-size:13pt;margin:.6rem 0 .3rem;border-bottom:1px solid #000}
  .nixi-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #999!important;box-shadow:none!important;margin:.35rem 0}
  .nixi-tag{border:1px solid #999!important;background:#fff!important;color:#000!important}
  .nixi-table{width:100%;border-collapse:collapse}
  .nixi-table th,.nixi-table td{border:1px solid #999}
  a[href]:after{content:''}
  .nixi-brand-by{opacity:1}
}
