@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:500;font-display:swap;src:url(fonts/manrope-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(fonts/manrope-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+1E00-1EFF}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+1E00-1EFF}

:root{
  --ink:#172033;--ink-soft:#526074;--paper:#f6f4ef;--surface:#fff;--line:#dfe3e8;--line-soft:#ebeef1;
  --brand:#1d5266;--brand-strong:#123b4a;--brand-tint:#e6eff2;--accent:#b78b48;
  --success:#287a5b;--success-tint:#e5f2ec;--warning:#a96822;--warning-tint:#f7ecdf;--danger:#b44747;--danger-tint:#f6e4e4;
  --r:6px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:Manrope,"Segoe UI",Roboto,Arial,sans-serif;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:24px;font-weight:700;letter-spacing:-.01em}
h2{font-size:17px;font-weight:700;margin-bottom:12px}
h3{font-size:14px;font-weight:700}
.muted{color:var(--ink-soft)}.small{font-size:13px}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}

/* top bar */
.top{background:var(--ink);color:#eef2f5;display:flex;align-items:center;gap:20px;padding:0 24px;height:54px;position:sticky;top:0;z-index:5}
.top .brand{font-weight:700;letter-spacing:.02em;color:#fff;white-space:nowrap}
.top .brand span{color:var(--accent)}
.top nav{display:flex;gap:4px;flex:1;overflow-x:auto}
.top nav a{color:#c9d3da;padding:8px 12px;border-radius:4px;font-weight:600;font-size:14px;white-space:nowrap}
.top nav a:hover,.top nav a.on{background:#24304a;color:#fff;text-decoration:none}
.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:12px;text-align:center;margin-left:4px}
.top .me{display:flex;align-items:center;gap:10px;font-size:13px;color:#c9d3da;white-space:nowrap}
.top .me button{background:none;border:1px solid #3a4763;color:#c9d3da;padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:13px}

main{max-width:1240px;margin:0 auto;padding:28px 24px 64px}
main.wide{max-width:none}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.head .sub{color:var(--ink-soft);margin-top:4px}
.flash{background:var(--brand-tint);border-left:3px solid var(--brand);padding:10px 14px;border-radius:4px;margin-bottom:18px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.g3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.stack>*+*{margin-top:14px}

/* forms */
label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:4px}
input[type=text],input[type=password],input[type=date],input[type=number],select,textarea{width:100%;padding:9px 11px;border:1px solid #ced5d8;border-radius:4px;background:#fff;font:inherit;font-size:15px;color:var(--ink)}
textarea{min-height:110px;resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(29,82,102,.14)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:140px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--brand);background:var(--brand);color:#fff;font:inherit;font-weight:600;font-size:14px;padding:8px 14px;border-radius:4px;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--brand-strong);text-decoration:none}
.btn.ghost{background:#fff;color:var(--brand)}.btn.ghost:hover{background:var(--brand-tint)}
.btn.ok{background:var(--success);border-color:var(--success)}
.btn.danger{background:#fff;color:var(--danger);border-color:#e2bcbc}.btn.danger:hover{background:var(--danger-tint)}
.btn.sm{padding:5px 10px;font-size:13px}
.counter{font-size:12px;color:var(--ink-soft);text-align:right;margin-top:3px}.counter.over{color:var(--danger);font-weight:700}

/* tables */
table{width:100%;border-collapse:collapse}
th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:top}

/* project tiles */
.tile h3{font-size:16px;margin-bottom:2px}
.kpis{display:flex;gap:22px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.kpis div{font-size:12px;color:var(--ink-soft)}.kpis b{display:block;font-size:20px;color:var(--ink)}

/* board */
.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}
.col{flex:0 0 250px;background:#eceae4;border-radius:var(--r);padding:10px}
.col.closed{flex-basis:200px;opacity:.85}
.col h3{display:flex;align-items:center;gap:7px;font-size:13px;margin:2px 4px 10px}
.col h3 .n{margin-left:auto;background:#fff;border-radius:10px;padding:0 8px;font-size:12px;color:var(--ink-soft)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--brand);flex:none}
.dot.hired{background:var(--success)}.dot.rejected{background:var(--danger)}.dot.withdrawn{background:#9aa3ad}
.dot.contacted{background:#5b8fa3}.dot.connected{background:var(--accent)}.dot.answered{background:var(--success)}.dot.none{background:#9aa8b4}
.pc{display:block;background:#fff;border:1px solid var(--line);border-radius:5px;padding:10px 11px;margin-bottom:8px;color:var(--ink)}
.pc:hover{border-color:var(--brand);text-decoration:none}
.pc[draggable=true]{cursor:grab}.pc.dragging{opacity:.45}
.col.over{background:#dfe9ec;outline:2px dashed var(--brand);outline-offset:-2px}
.pc .who{display:flex;gap:9px;align-items:flex-start}
.av{width:30px;height:30px;border-radius:50%;background:var(--brand-tint);color:var(--brand-strong);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.pc .nm{font-weight:700;font-size:14px;line-height:1.3}
.pc .hl{font-size:12px;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc .meta{display:flex;gap:6px;align-items:center;margin-top:8px;font-size:11px;color:var(--ink-soft)}
.pc .meta .d{margin-left:auto}
.empty{font-size:12px;color:var(--ink-soft);text-align:center;padding:14px 0;border:1px dashed #cfccc4;border-radius:5px}

/* chips */
.chip{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:var(--line-soft);color:var(--ink-soft)}
.chip.pending_approval{background:var(--warning-tint);color:var(--warning)}
.chip.approved,.chip.claimed,.chip.executing{background:var(--brand-tint);color:var(--brand)}
.chip.sent{background:var(--success-tint);color:var(--success)}
.chip.unknown,.chip.failed{background:var(--danger-tint);color:var(--danger)}
.chip.zone-HOT{background:#f7e3d6;color:#9a4a1c}

/* queue item */
.qi{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:16px;margin-bottom:12px}
.qi .msg{white-space:pre-wrap;background:var(--paper);border-radius:4px;padding:12px;margin:10px 0;font-size:14px}
.qi .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
details summary{cursor:pointer;color:var(--brand);font-weight:600;font-size:13px}

/* timeline */
.tl{list-style:none}.tl li{padding:10px 0;border-bottom:1px solid var(--line-soft)}
.tl .when{font-size:12px;color:var(--ink-soft)}
.tl .body{white-space:pre-wrap;margin-top:2px}

/* status panel */
.status{display:flex;gap:14px;align-items:center;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:#fff}
.status .big{font-size:18px;font-weight:700}
.status.free{border-left:4px solid var(--success)}.status.busy{border-left:4px solid var(--warning)}.status.stop{border-left:4px solid var(--danger)}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--ink)}
.login form{width:100%;max-width:380px;background:#fbfcfc;border-radius:var(--r);padding:34px 30px}
.login .mk{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin-bottom:8px}
.login p{font-size:17px;font-weight:600;margin-bottom:18px}
.login input{margin-bottom:10px}
.login .btn{width:100%;padding:12px;margin-top:4px}
.login .err{color:var(--danger);font-size:14px;margin-top:12px;min-height:20px}

@media (max-width:820px){
  .top{padding:0 14px;gap:10px}.top .me span{display:none}
  main{padding:20px 16px 48px}
  .g2{grid-template-columns:1fr}
  .col{flex-basis:78vw}
  h1{font-size:21px}
}

/* library */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:12px}
.tabs a{padding:8px 12px;font-weight:600;font-size:14px;color:var(--ink-soft);border-bottom:2px solid transparent}
.tabs a.on{color:var(--brand);border-bottom-color:var(--brand)}.tabs a:hover{text-decoration:none;color:var(--ink)}
.tabs.sub{border-bottom:0;align-items:center}.tabs.sub a{padding:4px 10px;border-radius:4px;border:1px solid var(--line);background:#fff}
.tabs.sub a.on{background:var(--brand-tint);border-color:var(--brand)}
form.inline{display:flex;gap:6px;align-items:center;margin-left:8px}form.inline select{width:auto;padding:5px 8px;font-size:13px}
.limitbar{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;padding:10px 14px;margin-bottom:16px;font-size:14px}
.g3v{grid-template-columns:repeat(3,minmax(0,1fr))}
.tx{border:1px dashed var(--line);border-radius:5px;padding:12px}.tx.filled{border-style:solid;background:#fcfcfb}
.tx textarea{min-height:150px}.tx .acts{display:flex;gap:8px;align-items:center}
form.del{margin-top:-6px;text-align:right}.linkbtn{background:none;border:0;color:var(--danger);font:inherit;font-size:12px;cursor:pointer}
@media (max-width:980px){.g3v{grid-template-columns:1fr}}

/* sequence flow */
.flow{max-width:900px}.flow .step{margin-bottom:0}.flow .step.new{border-style:dashed;margin-top:14px}
.flow .delay{margin:6px 0 6px 28px;padding:4px 12px;border-left:2px solid var(--line);color:var(--ink-soft);font-size:13px}
.ov{white-space:pre-wrap;background:var(--paper);border-radius:4px;padding:6px 8px;margin-bottom:4px}.ov.over{outline:2px solid var(--danger)}
