/* Team HQ — a calm field-ops console.
   Status is the signal: a colour spine and pill on everything that has a state.
   UI sans for reading, a mono utility face for tags, dates and IDs. */

:root{
  --ink:#1c242e; --ink-soft:#46505c; --muted:#7a838f;
  --paper:#f5f6f4; --card:#ffffff; --line:#e4e7e3; --line-2:#eef0ec;
  --accent:#2f6f5e; --accent-ink:#225344;
  --live:#2e7d52; --building:#c2701c; --planned:#3a6ea5;
  --idea:#6b5e9c; --paused:#8a8f98; --retired:#9a5b5b;
  --danger:#b23b3b; --warn:#9a6b12;
  --shadow:0 1px 2px rgba(20,30,40,.05), 0 1px 1px rgba(20,30,40,.04);
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r:10px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent-ink);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:1.5rem;margin:0 0 .15em;letter-spacing:-.01em}
h2{font-size:1.05rem;margin:0}
h3{font-size:1rem;margin:0}

/* Topbar */
.topbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:var(--ink);color:#eef1f4;padding:0 20px;height:54px;position:sticky;top:0;z-index:20}
.brand{color:#fff;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}
.brand:hover{text-decoration:none;opacity:.9}
.topbar nav{display:flex;gap:2px;flex:1;flex-wrap:wrap}
.topbar nav a{color:#aeb8c4;padding:6px 11px;border-radius:7px;font-size:.86rem}
.topbar nav a:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}
.topbar nav a.on{color:#fff;background:rgba(255,255,255,.14)}
.me{font-size:.82rem;color:#aeb8c4;display:flex;align-items:center;gap:10px}
.me .ghost{color:#dfe5ea;border-color:rgba(255,255,255,.25)}
.meprofile{display:inline-flex;align-items:center;gap:8px;color:#cdd6df;font-size:.82rem}
.meprofile:hover{text-decoration:none;color:#fff}
.meprofile.on{color:#fff}

/* Avatars — an icon if set, otherwise initials on the ink badge */
.av{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none;
  background:var(--ink);color:#fff;font-family:var(--mono);font-weight:700;line-height:1;border-radius:8px}
.av img{width:100%;height:100%;object-fit:cover;display:block}
.av-sm{width:26px;height:26px;font-size:.64rem;border-radius:6px}
.av-md{width:42px;height:42px;font-size:.8rem}
.av-lg{width:76px;height:76px;font-size:1.2rem;border-radius:14px}
.avatar-set{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.avatar-forms{display:flex;flex-direction:column;gap:8px;min-width:240px}

main{max-width:980px;margin:0 auto;padding:26px 20px 70px}

/* Buttons & ghosts */
button,.btn{font-family:inherit;font-size:.9rem;background:var(--accent);color:#fff;border:0;
  padding:9px 16px;border-radius:8px;cursor:pointer;font-weight:600}
button:hover,.btn:hover{background:var(--accent-ink);text-decoration:none}
.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft);
  padding:6px 12px;border-radius:8px;font-weight:500;font-size:.84rem}
.ghost:hover{border-color:var(--muted);text-decoration:none}
button.danger,.danger{background:transparent;color:var(--danger);border:1px solid #e7cccc}
button.danger:hover{background:#fbf2f2}
.chip{background:#f0f2ee;color:var(--ink-soft);border:1px solid var(--line);
  padding:3px 9px;font-size:.78rem;border-radius:20px;font-weight:500}
.chip:hover{background:#e7eae5}
.chip.danger{color:var(--danger);border-color:#eccece}

/* Headings rows */
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.muted{color:var(--muted);margin:.2em 0 0}
.hello{margin-bottom:20px}
.section-h{margin:28px 0 10px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.muted-h{color:#aab0b8}
.month{font-size:.8rem;color:var(--ink-soft);margin:18px 0 8px;font-weight:600}

/* Flash */
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:.9rem;border:1px solid}
.flash.ok{background:#eef7f1;border-color:#cfe6d9;color:#1f5d3f}
.flash.warn{background:#fdf6e9;border-color:#f0e0bf;color:var(--warn)}
.flash.err{background:#fbeeee;border-color:#eccfcf;color:var(--danger)}

/* Cards & layout */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;box-shadow:var(--shadow);margin-bottom:16px}
.card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.grid2,.cards3{grid-template-columns:1fr}.topbar{height:auto;padding:8px 14px}.topbar nav{order:3;width:100%}}

/* Rows */
.row{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line-2);align-items:flex-start}
.row:first-of-type{border-top:0}
.row-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.meta{color:var(--muted);font-size:.82rem}
.meta.late,.late{color:var(--danger);font-weight:600}
.meta.soon,.soon{color:var(--building);font-weight:600}
.tiny{font-size:.74rem}
.empty{color:var(--muted);padding:14px 0;font-size:.9rem}
.empty.small{padding:6px 0}
.byline{color:#a4abb3;font-size:.76rem;margin:.5em 0 0;font-family:var(--mono)}

/* Tags (mono utility face) */
.tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.03em;text-transform:uppercase;
  padding:2px 7px;border-radius:5px;background:#eef0ec;color:var(--ink-soft);white-space:nowrap;font-weight:600}
.t-file{background:#e9eef0;color:#3a5360}
.t-meeting{background:#e8f0f6;color:var(--planned)}
.t-demo{background:#efeaf6;color:var(--idea)}
.t-deadline{background:#fdeede;color:var(--building)}
.t-certificate{background:#eaf4ec;color:var(--live)}
.t-other{background:#eef0ec;color:var(--muted)}
.s-todo{background:#eef0ec;color:var(--ink-soft)}
.s-doing{background:#fdeede;color:var(--building)}
.s-done{background:#eaf4ec;color:var(--live)}

/* Status spine + pill (the signature) */
[class*="sp-"]{--sc:var(--muted)}
.sp-live{--sc:var(--live)} .sp-building{--sc:var(--building)} .sp-planned{--sc:var(--planned)}
.sp-idea{--sc:var(--idea)} .sp-paused{--sc:var(--paused)} .sp-retired{--sc:var(--retired)}
.sp-pill{background:color-mix(in srgb,var(--sc) 14%,#fff);color:var(--sc);border:1px solid color-mix(in srgb,var(--sc) 30%,#fff)}

/* Dashboard stats */
.stats{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
@media(max-width:760px){.stats{grid-template-columns:repeat(3,1fr)}}
.stat{display:flex;flex-direction:column;align-items:center;gap:1px;padding:12px 6px;border-radius:9px;
  border:1px solid var(--line);background:#fcfdfc;border-left:3px solid var(--sc,#ccc)}
.stat:hover{text-decoration:none;background:#f8faf8}
.stat .num{font-size:1.4rem;font-weight:700;color:var(--ink)}
.stat .lbl{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:center}

/* Catalogue entries */
.entry{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--sc);
  border-radius:var(--r);padding:14px 16px 12px;margin-bottom:12px;box-shadow:var(--shadow)}
.entry-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.entry-h h3{display:flex;align-items:center;gap:6px}
.entry .ext{font-size:.85rem;color:var(--muted)}
.entry-meta{display:flex;gap:8px;align-items:center;margin-top:5px}
.cat{font-size:.78rem;color:var(--ink-soft)}
.www{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:12px}
@media(max-width:620px){.www{grid-template-columns:1fr}}
.www .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.www p{margin:.25em 0 0;font-size:.9rem;color:var(--ink-soft)}
.notes{margin:12px 0 0;font-size:.88rem;color:var(--ink-soft);background:#fafbf9;
  border-left:2px solid var(--line);padding:6px 10px;border-radius:0 6px 6px 0}

/* Forms */
.form,.dropzone,.adder form{display:flex;flex-direction:column;gap:12px}
label{display:flex;flex-direction:column;gap:5px;font-size:.82rem;color:var(--ink-soft);font-weight:600}
input,select,textarea{font-family:inherit;font-size:.92rem;color:var(--ink);
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,#fff);outline-offset:0;border-color:var(--accent)}
textarea{resize:vertical}
textarea.mono,.mono{font-family:var(--mono);font-size:.85rem}
.hint{font-weight:400;color:var(--muted);font-size:.78rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.f3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:620px){.f2,.f3{grid-template-columns:1fr}}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.filters input[type=search]{flex:1;min-width:180px}
.filters select{width:auto}

/* Adder (collapsible) */
.adder{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:6px 16px;margin-bottom:16px;box-shadow:var(--shadow)}
.adder summary{cursor:pointer;font-weight:600;font-size:.9rem;padding:8px 0;color:var(--accent-ink);list-style:none}
.adder summary::-webkit-details-marker{display:none}
.adder summary::before{content:"+ ";font-weight:700}
.adder[open] summary::before{content:"– "}
.adder[open]{padding-bottom:16px}
.adder .form{margin-top:6px}

/* Dropzone */
.dropzone{background:var(--card);border:1px dashed #cdd4cb;border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.dropzone.tight{padding:12px;border-style:solid;border-color:var(--line)}
.drop-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.drop-row input[type=file]{flex:1;border:0;border-radius:0;background:transparent;padding:0;font-size:.85rem}
.drop-row input[type=file]::file-selector-button{font-family:inherit;font-size:.85rem;font-weight:600;
  border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);
  padding:8px 14px;margin-right:10px;cursor:pointer}
.drop-row input[type=file]::file-selector-button:hover{border-color:var(--accent);color:var(--accent-ink)}

/* Files list */
.files{display:flex;flex-direction:column;gap:8px}
.file{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:9px;padding:10px 12px;box-shadow:var(--shadow)}
.ext-badge{font-family:var(--mono);font-size:.66rem;font-weight:700;background:var(--ink);color:#fff;
  padding:8px;border-radius:7px;min-width:42px;text-align:center;letter-spacing:.02em}
.file-main{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.file-main strong{font-weight:600}
.file-actions{margin-top:5px;font-weight:600}
.file-actions a{color:var(--accent-ink);text-decoration:none}
.file-actions a:hover{text-decoration:underline}
.inline{display:inline}
.inline-form{display:flex;gap:6px;margin-top:6px}
.inline-form input{width:auto}

/* Snippet view */
.snippet{background:#1c242e;color:#e6ebf0;padding:16px;border-radius:var(--r);overflow:auto;
  font-family:var(--mono);font-size:.84rem;line-height:1.55}
.snippet code{font-family:inherit}

/* Workshops */
.ws{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px solid var(--line);
  border-top:3px solid var(--sc);border-radius:var(--r);padding:14px;box-shadow:var(--shadow)}
.ws:hover{text-decoration:none;transform:translateY(-1px);transition:transform .12s}
.ws h3{margin:0}
.ws p{margin:0;font-size:.85rem;color:var(--ink-soft)}
.ws .meta{margin-top:auto}

/* Notes */
.note{border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;margin-top:8px;background:#fcfdfc}
.note-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.readme{font-size:.9rem;color:var(--ink-soft)}
.readme h2{font-size:1rem;margin:.4em 0 .2em}.readme h3{font-size:.92rem}
.readme p{margin:.4em 0}.readme ul{margin:.4em 0;padding-left:1.2em}
.readme code{background:#eef0ec;padding:1px 5px;border-radius:4px;font-family:var(--mono);font-size:.85em}
.readme pre{background:#1c242e;color:#e6ebf0;padding:12px;border-radius:8px;overflow:auto;font-size:.82rem}
.readme pre code{background:none;color:inherit}

/* Workstation board */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg a{padding:6px 14px;font-size:.84rem;color:var(--ink-soft)}
.seg a.on{background:var(--ink);color:#fff}
.seg a:hover{text-decoration:none}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.board{grid-template-columns:1fr}}
.board-col{background:#fbfcfa;border:1px solid var(--line);border-radius:var(--r);padding:10px}
.col-h{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);
  display:flex;justify-content:space-between;padding:4px 4px 10px;border-bottom:2px solid var(--line)}
.col-h.s-doing{color:var(--building)}.col-h.s-done{color:var(--live)}
.col-h span{color:var(--muted)}
.task{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:8px;
  display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow)}
.task strong{font-size:.9rem}
.task-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}

/* Events */
.event{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);
  border-left:4px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:8px;box-shadow:var(--shadow)}
.event.t-meeting{border-left-color:var(--planned)}.event.t-demo{border-left-color:var(--idea)}
.event.t-deadline{border-left-color:var(--building)}.event.t-certificate{border-left-color:var(--live)}
.event.past{opacity:.6;border-left-color:var(--line)}
.ev-date{font-family:var(--mono);text-align:center;min-width:46px;display:flex;flex-direction:column;line-height:1.1}
.ev-date .dow{font-size:.66rem;text-transform:uppercase;color:var(--muted)}
.ev-date .dnum{font-size:1.45rem;font-weight:700}
.ev-date .dtime{font-size:.7rem;color:var(--muted);white-space:nowrap}
.ev-main{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.ev-main strong{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ev-actions{display:flex;gap:6px;align-items:center}

/* Auth pages */
.auth{max-width:360px;margin:8vh auto 0;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:28px;box-shadow:0 6px 24px rgba(20,30,40,.07)}
.auth h1{text-align:center}
.auth .muted{text-align:center;margin-bottom:18px}
.auth form{display:flex;flex-direction:column;gap:14px}
.auth button{width:100%;padding:11px}

/* details mini (reset pw) */
.mini summary{list-style:none;cursor:pointer}
.mini summary::-webkit-details-marker{display:none}

/* Activity feed */
.feed{display:flex;flex-direction:column}
.feed-day{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
  margin:18px 0 6px;font-weight:700}
.feed-day:first-child{margin-top:0}
.feed-row{display:flex;gap:11px;padding:8px 0;border-top:1px solid var(--line-2);align-items:flex-start}
.feed-row:first-of-type{border-top:0}
.feed-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.feed-line{font-size:.9rem;color:var(--ink-soft)}
.feed-line strong{color:var(--ink);font-weight:600}
.feed-line a{font-weight:500}
.forwho{color:var(--accent-ink);font-weight:600}
.assign-form select{font-size:.74rem;padding:2px 6px;border-radius:20px;background:#f0f2ee;
  border:1px solid var(--line);color:var(--ink-soft);max-width:130px}

/* Member checkboxes (add form + per-task editor) */
.checkset{display:flex;flex-wrap:wrap;gap:6px 14px;font-weight:400}
.check{flex-direction:row;align-items:center;gap:6px;font-size:.86rem;color:var(--ink-soft);font-weight:500}
.check input{width:auto}
.members-edit{position:relative}
.members-edit summary{list-style:none}
.members-edit summary::-webkit-details-marker{display:none}
.member-form{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;
  background:#fbfcfa;display:flex;flex-direction:column;gap:10px;min-width:200px}
.member-form .checkset{gap:6px 10px}

/* Mentions badge (topbar) — always a door; amber only when there's unread */
.mention-badge{font-family:var(--mono);font-size:.74rem;font-weight:700;
  background:rgba(255,255,255,.10);color:#cdd6df;padding:3px 9px;border-radius:20px;line-height:1;min-width:24px;text-align:center}
.mention-badge:hover{text-decoration:none;color:#fff;background:rgba(255,255,255,.20)}
.mention-badge.has{background:var(--building);color:#fff}
.mention-badge.has:hover{background:#a85f14}

/* Today: you've been mentioned */
.mention-card{border-color:color-mix(in srgb,var(--building) 45%,#fff);background:#fdf8f0}
.mention-row{color:inherit}
.mention-row:hover{text-decoration:none}
.mention-row:hover .row-main span:first-child{text-decoration:underline}
.mention-at{font-family:var(--mono);font-weight:700;color:#fff;background:var(--building);
  width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:.78rem;flex-shrink:0;margin-top:1px}

/* Comments / discussion */
.entry-actions{display:flex;gap:8px;align-items:center}
.thread{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.comment{border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;background:#fcfdfc}
.comment-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.comment-h strong{font-size:.88rem}
.comment-h .comment-del{margin-left:auto}
.comment-add{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.mention{background:color-mix(in srgb,var(--accent) 14%,#fff);color:var(--accent-ink);
  font-weight:600;padding:0 3px;border-radius:4px}
.file.unseen{border-color:color-mix(in srgb,var(--building) 45%,#fff);background:#fdf8f0}
.file.unseen .ext-badge{background:var(--building)}

/* Reactions */
.reactions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.react{background:#f0f2ee;border:1px solid var(--line);color:var(--ink-soft);
  padding:2px 9px;border-radius:20px;font-size:.86rem;line-height:1.4;display:inline-flex;align-items:center;gap:4px}
.react:hover{background:#e7eae5}
.react.on{background:color-mix(in srgb,var(--accent) 16%,#fff);border-color:color-mix(in srgb,var(--accent) 35%,#fff)}
.react span{font-family:var(--mono);font-size:.72rem;font-weight:700;color:var(--ink-soft)}

/* Recurrence badge + subscribe field */
.t-repeat{background:#eaf0ee;color:var(--accent-ink)}
.adder input.mono[readonly]{background:#f7f9f6;color:var(--ink-soft);cursor:text}

/* Global search */
.topsearch input[type=search]{width:130px;padding:6px 10px;font-size:.82rem;border-radius:7px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff}
.topsearch input[type=search]::placeholder{color:rgba(255,255,255,.55)}
.topsearch input[type=search]:focus{background:#fff;color:var(--ink);border-color:var(--accent);width:170px}
.searchbig{display:flex;gap:10px;margin-bottom:18px}
.searchbig input[type=search]{flex:1}
.srow{color:inherit;text-decoration:none;align-items:center}
.srow:hover strong{text-decoration:underline}

/* New-user welcome (self-expires after a week) */
.welcome-card{border-color:color-mix(in srgb,var(--accent) 40%,#fff);background:#f3f8f5}
.welcome-lead{color:var(--ink-soft);font-size:.9rem;margin:0 0 10px}
.welcome-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.welcome-list li{font-size:.92rem;line-height:1.45}

/* CRM */
.crm-list{display:flex;flex-direction:column;gap:8px}
.crm-row{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:9px;padding:10px 12px;box-shadow:var(--shadow);color:inherit;text-decoration:none}
.crm-row:hover{border-color:var(--accent)}
.crm-row .row-main{flex:1;min-width:0}
.crm-row .tiny{white-space:nowrap}
.ct-client{background:#eaf4ec;color:var(--live)} .ct-prospect{background:#fdeede;color:var(--building)}
.ct-supplier{background:#e8f0f6;color:var(--planned)} .ct-partner{background:#efeaf6;color:var(--idea)}
.ct-other{background:#eef0ec;color:var(--ink-soft)}
.ik-note{background:#eef0ec;color:var(--ink-soft)} .ik-call{background:#eaf4ec;color:var(--live)}
.ik-email{background:#e8f0f6;color:var(--planned)} .ik-meeting{background:#efeaf6;color:var(--idea)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0 0 6px}
.kv dt{color:var(--muted);font-size:.82rem}
.kv dd{margin:0;font-size:.92rem}
.crm-log{margin-bottom:14px}
.timeline{display:flex;flex-direction:column;gap:13px;border-left:2px solid var(--line);padding-left:16px;margin-left:5px}
.tl-item{display:flex;gap:10px;align-items:flex-start;position:relative}
.tl-item::before{content:'';position:absolute;left:-23px;top:5px;width:9px;height:9px;border-radius:50%;
  background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.tl-body{flex:1;min-width:0}
.tl-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px}
.tl-body .readme{font-size:.92rem}

/* Pipeline */
.pipe-summary{display:flex;gap:20px;margin-bottom:14px;font-size:.9rem;color:var(--ink-soft)}
.pipe-summary strong{color:var(--ink);font-size:1.05rem}
.pipe-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px}
.pipe-col{flex:1;min-width:185px;background:#fbfcfa;border:1px solid var(--line);border-radius:var(--r);padding:10px}
.pipe-col.pc-won{background:#f3f9f4} .pipe-col.pc-lost{background:#fbf4f4}
.deal{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 10px;margin-bottom:8px;
  display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}
.deal strong{font-size:.92rem}
.deal-val{font-family:var(--mono);font-size:.8rem;color:var(--accent-ink);font-weight:700}
.deal-actions{display:flex;gap:6px;align-items:center;margin-top:6px;flex-wrap:wrap}
.deal-actions select{width:auto;padding:4px 8px;font-size:.78rem;border-radius:6px}
.deal-edit{margin-top:8px}.deal-edit label{font-size:.8rem}
.pc-lead-tag{background:#eef0ec;color:var(--ink-soft)} .pc-contacted-tag{background:#e8f0f6;color:var(--planned)}
.pc-quoted-tag{background:#fdeede;color:var(--building)} .pc-won-tag{background:#eaf4ec;color:var(--live)}
.pc-lost-tag{background:#fde7e7;color:var(--danger)}

/* Work log (private) */
.worklog-link{font-size:.82rem}
.running-card{border-color:color-mix(in srgb,var(--building) 45%,#fff);background:#fdf8f0}
.startline{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.startline label{flex:1;min-width:200px}
.startline .form-actions{margin:0}
.wl-day{margin-bottom:4px}
.wl-entry{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:9px;
  padding:10px 12px;margin-bottom:8px;box-shadow:var(--shadow)}
.wl-time{min-width:108px;display:flex;flex-direction:column;gap:1px}
.wl-time strong{font-size:.86rem;white-space:nowrap}
.wl-dur{font-family:var(--mono);font-size:.74rem;color:var(--accent-ink);font-weight:700}
.wl-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.wl-edit{margin-top:6px;width:100%}
@media(max-width:620px){.wl-entry{flex-direction:column;gap:6px}.wl-time{flex-direction:row;gap:10px;align-items:baseline}}

/* Time off — kind colours */
.lk-holiday{background:#e8f0f6;color:var(--planned)}
.lk-away{background:#efeaf6;color:var(--idea)}
.lk-exhibition{background:#fdeede;color:var(--building)}
.lk-conference{background:#e3f0ee;color:#2c6e63}
.lk-training{background:#eaf4ec;color:var(--live)}
.lk-event{background:#f6e9f1;color:#8a3d6b}
.lk-sick{background:#fde7e7;color:var(--danger)}
.lk-other{background:#eef0ec;color:var(--ink-soft)}

/* Away month calendar */
.cal-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}
.cal-h .month{margin:0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-dow{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;
  color:var(--muted);text-align:center;padding-bottom:2px}
.cal-cell{min-height:70px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:5px;
  display:flex;flex-direction:column;gap:3px}
.cal-cell.empty{background:transparent;border:0}
.cal-cell.weekend{background:#fafbf9}
.cal-cell.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.cal-num{font-size:.72rem;color:var(--muted);font-weight:600}
.cal-cell.today .cal-num{color:var(--accent-ink)}
.cal-chip{font-size:.66rem;font-weight:600;padding:1px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:620px){.cal-cell{min-height:56px}.cal-chip{font-size:.6rem}}

/* Away upcoming rows */
.away-row{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:9px;padding:10px 12px;margin-bottom:8px;box-shadow:var(--shadow)}
.away-bar{width:5px;align-self:stretch;border-radius:3px;background:var(--muted)}
.away-row.lk-holiday .away-bar{background:var(--planned)}
.away-row.lk-away .away-bar{background:var(--idea)}
.away-row.lk-exhibition .away-bar{background:var(--building)}
.away-row.lk-conference .away-bar{background:#2c6e63}
.away-row.lk-training .away-bar{background:var(--live)}
.away-row.lk-event .away-bar{background:#8a3d6b}
.away-row.lk-sick .away-bar{background:var(--danger)}
.away-row.lk-other .away-bar{background:var(--paused)}
.away-row .row-main{flex:1}
.away-actions{display:flex;gap:4px;align-items:center}
.edit-pencil{text-decoration:none;line-height:1}
.overlap-warn{background:#fdf6e3;border:1px solid #e8d59a;border-radius:8px;padding:10px 12px;margin:2px 0}
.overlap-warn ul{margin:6px 0 0;padding-left:18px}
.overlap-warn li{margin:2px 0}
.overlap-warn .check{display:flex;gap:7px;align-items:center;margin-top:8px;font-weight:600;cursor:pointer}

/* Maintenance / reset */
.maint-link{margin-top:22px;font-size:.84rem}
.reset-row{flex-direction:row;align-items:center;gap:10px;padding:10px 2px;
  border-top:1px solid var(--line-2);font-weight:500;color:var(--ink)}
.reset-row:first-of-type{border-top:0}
.reset-row input[type=checkbox]{width:auto}
.reset-row .meta{margin-left:auto}
.reset-confirm{display:flex;gap:12px;align-items:flex-end;margin-top:16px;
  padding-top:16px;border-top:1px solid var(--line);flex-wrap:wrap}
.reset-confirm label{flex:1;min-width:180px}
.reset-confirm input{max-width:220px}
.reset-row input[disabled]+span{color:var(--muted)}
