:root{--navy:#101B2B;--navy-2:#1B3A5C;--gold:#C9A45C;--gold-ink:#8F6314;--paper:#F4F6F9;--card:#fff;--ink:#14202C;--muted:#67788A;--rule:#DCE3EB;--good:#2F6F4A;--bad:#A3423A;--warn:#FBF3E0}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 "Segoe UI",system-ui,-apple-system,Arial,sans-serif;background:var(--paper);color:var(--ink)}
a{color:var(--navy-2)}h1{font-size:22px;margin:0 0 12px}h2{font-size:17px;margin:20px 0 8px}
header.top{background:var(--navy);color:#fff;display:flex;align-items:center;gap:18px;padding:10px 16px;flex-wrap:wrap}
header.top .brand{font-weight:700;letter-spacing:.06em;color:var(--gold);text-decoration:none}
header.top nav a{color:#DCE3EB;text-decoration:none;margin-right:14px}header.top nav a.on{color:#fff;border-bottom:2px solid var(--gold)}
header.top form{margin-left:auto}header.top input{border:0;border-radius:4px;padding:6px 10px;min-width:180px}
main{padding:14px 16px;max-width:1500px;margin:0 auto}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:10px;overflow-x:auto;padding-bottom:10px}
.col{background:#E9EEF4;border-radius:6px;padding:8px;min-height:120px}.col h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:2px 4px 8px;display:flex;justify-content:space-between}
.card{display:block;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--navy-2);border-radius:4px;padding:8px 10px;margin-bottom:8px;text-decoration:none;color:var(--ink)}
.card b{display:block}.card small{color:var(--muted)}.card.hot{border-left-color:var(--bad)}.card .src{font-size:12px;color:var(--gold-ink)}
.alert{background:var(--warn);border-left:3px solid var(--gold);padding:8px 12px;border-radius:0 4px 4px 0;margin-bottom:12px}
.alert ul{margin:4px 0 0;padding-left:18px}
.grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}@media(max-width:900px){.grid{grid-template-columns:1fr}}
.box{background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:14px 16px;margin-bottom:14px}
.box h2{margin-top:0}
label{display:block;font-size:12px;color:var(--muted);margin-top:8px}
input[type=text],input[type=date],input[type=datetime-local],input[type=number],input[type=password],select,textarea{width:100%;padding:7px 9px;border:1px solid var(--rule);border-radius:4px;font:inherit;background:#fff}
textarea{min-height:70px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:600px){.row{grid-template-columns:1fr}}
button,.btn{font:inherit;padding:7px 14px;border-radius:4px;border:1px solid var(--navy-2);background:var(--navy-2);color:#fff;cursor:pointer;text-decoration:none;display:inline-block}
button.sec,.btn.sec{background:#fff;color:var(--navy-2)}button.small{padding:3px 9px;font-size:13px}button.bad{background:var(--bad);border-color:var(--bad)}button.gold{background:var(--gold-ink);border-color:var(--gold-ink)}
.stages{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.stages button{background:#fff;color:var(--ink);border-color:var(--rule)}.stages button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ev{border-left:2px solid var(--rule);padding:4px 10px;margin:0 0 6px}.ev small{color:var(--muted)}.ev.stage{border-left-color:var(--gold)}
.muted{color:var(--muted)}.done{color:var(--muted);text-decoration:line-through}.overdue{color:var(--bad);font-weight:600}
.inline{display:inline}.chip{display:inline-block;background:#E9EEF4;border-radius:3px;padding:1px 7px;font-size:12px;margin-right:4px}
.login{max-width:380px;margin:60px auto;background:#fff;border:1px solid var(--rule);border-radius:8px;padding:24px}
.err{color:var(--bad);margin:8px 0}
/* полоса стадий, следующее действие, диалог отказа, тосты, доска */
.head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px}
.head h1{margin:0}
.badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:13px;font-weight:700;background:var(--navy-2);color:#fff}
.badge.lost{background:var(--bad)}.badge.done{background:var(--good)}.badge.test,.chip.test{background:#6B3FA0;color:#fff}
.head .acts{margin-left:auto;display:flex;gap:8px}
.stagebar{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 14px}
.stagebar button{position:relative;border:0;background:#E3E9F0;color:var(--muted);padding:8px 14px 8px 20px;font:inherit;font-size:13px;cursor:pointer;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
.stagebar button:first-child{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);padding-left:14px}
.stagebar button.passed{background:#CFE3D7;color:var(--good)}.stagebar button.on{background:var(--navy);color:#fff;font-weight:700}
.stagebar button:hover:not(.on){filter:brightness(.95)}
.next{border:1px solid var(--rule);border-left:4px solid var(--good);background:var(--card);border-radius:0 6px 6px 0;padding:12px 16px;margin-bottom:14px;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.next.none{border-left-color:var(--gold-ink);background:var(--warn)}.next.overdue{border-left-color:var(--bad);background:#FBEBE9}
.next b{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);width:100%}
.next .when{font-weight:700;white-space:nowrap}.next form{display:inline}
dialog{border:1px solid var(--rule);border-radius:8px;padding:20px 22px;max-width:420px;width:92vw}
dialog::backdrop{background:rgba(16,27,43,.45)}dialog h3{margin:0 0 6px}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:10px 18px;border-radius:6px;opacity:0;transition:.25s;z-index:50;font-size:14px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.toast.show{opacity:1;transform:translate(-50%,0)}.toast.bad{background:var(--bad)}
.card[draggable]{cursor:grab}.card.dragging{opacity:.5}.col.over{outline:2px dashed var(--navy-2);outline-offset:-2px}
.card .nx{display:block;font-size:12px;margin-top:4px;color:var(--good)}.card .nx.overdue{color:var(--bad);font-weight:700}.card .nx.none{color:var(--gold-ink)}
.card.stale{border-left-color:var(--gold-ink)}
.col .hint{font-size:12px;color:var(--muted);padding:4px}

/* экран «сегодня», контакты, автосохранение, мобильная вёрстка */
.today{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0 0 14px}
.today a{display:block;background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:10px 12px;text-decoration:none;color:var(--ink)}
.today a b{display:block;font-size:22px;line-height:1.1;color:var(--navy-2)}.today a span{font-size:12px;color:var(--muted)}
.today a.bad b{color:var(--bad)}.today a.warn b{color:var(--gold-ink)}
.contacts{display:flex;gap:6px;flex-wrap:wrap}.contacts .chip{font-size:13px;text-decoration:none;padding:4px 9px}
a.chip:hover{background:#D8E2EC}
button.link{border:0;background:none;color:var(--muted);cursor:pointer;padding:0 4px;font-size:14px}button.link:hover{color:var(--bad)}
.presets{font-weight:400;text-transform:none;letter-spacing:0;margin-left:6px}.presets a{margin-right:6px;font-size:12px}
.saved{outline:2px solid #CFE3D7}
kbd{background:#E9EEF4;border:1px solid var(--rule);border-radius:3px;padding:0 5px;font-size:12px}
@media(max-width:700px){
  header.top{gap:8px 12px}header.top form{margin-left:0;width:100%}header.top input{width:100%}
  main{padding:10px 12px}.head h1{font-size:19px}.head .acts{margin-left:0;width:100%}.head .acts button{flex:1}
  .stagebar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.stagebar button{flex:0 0 auto;font-size:12px;padding:7px 12px 7px 18px}
  .board{grid-auto-columns:minmax(78vw,1fr)}.next{gap:6px 10px}.next form{display:flex;gap:6px}
  table{min-width:0}th,td{padding:5px 6px}.today a b{font-size:18px}
}

/* платежи */
.paysum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0 0 8px}
.paysum div{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:8px 10px}.paysum b{display:block;font-size:17px;color:var(--navy-2)}.paysum span{font-size:12px;color:var(--muted)}.paysum div.bad b{color:var(--bad)}
.bar{height:8px;background:#E3E9F0;border-radius:4px;overflow:hidden;margin:0 0 10px}.bar i{display:block;height:100%;background:var(--good);transition:width .3s}
.paytable tr.late td{color:var(--bad)}.paytable tr.done td{color:var(--muted)}.paytable tr.done td:not(.paid-at){text-decoration:line-through}
.paytable input[type=checkbox]{width:18px;height:18px;cursor:pointer}
.paymini{display:block;font-size:12px;color:var(--navy-2);margin-top:2px}.paymini.bad{color:var(--bad);font-weight:700}
