:root{--ink:#172b28;--muted:#6b7a74;--green:#256b55;--mint:#eaf4ee;--line:#e3e9e5;--bg:#f5f7f4;--red:#b75248;--redbg:#faecea;--amber:#99660e;--amberbg:#fff4df;--blue:#4a6f9c;--bluebg:#e9f0f8}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 "Segoe UI",system-ui,Arial,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.top{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:10px 14px;flex-wrap:wrap}
.brand{font-weight:750;font-size:18px;display:flex;align-items:center;gap:8px;margin-right:6px}
.mark{width:30px;height:30px;border-radius:9px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:15px}
.nav{display:flex;gap:4px;flex:1}
.nav a{padding:8px 12px;border-radius:8px;text-decoration:none;color:#5b6a63;font-weight:600}
.nav a.active{background:var(--mint);color:var(--green)}
.tools{display:flex;gap:6px;align-items:center}
.wrap{max-width:900px;margin:0 auto;padding:18px 14px 60px}
h1{font-size:22px;margin:0 0 4px}
.sub{color:var(--muted);font-size:13px}
.heading{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:9px;font-weight:600}
.btn:hover{border-color:#b7c9be}
.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}
.btn.danger{color:var(--red)}
.btn.small{padding:6px 10px;font-size:13px}
.btn.ok{background:#e8f4ec;color:#2f6e4c;border-color:#cfe6d7}
.btn.bad{background:var(--redbg);color:#a7473d;border-color:#f1d2cf}
.btn.warn{background:var(--amberbg);color:var(--amber);border-color:#f0dfb6}
input,select,textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff;width:100%;outline:none}
input:focus,select:focus,textarea:focus{border-color:#7fa894;box-shadow:0 0 0 3px #eaf4ee}
.tools select{width:auto}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.rowlink{cursor:pointer}
.rowlink:hover{border-color:#a7c3b2}
.name{font-weight:650;font-size:16px}
.meta{color:var(--muted);font-size:13px;margin-top:2px}
.meta a{color:var(--green);text-decoration:none;font-weight:600}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{font-size:12px;font-weight:650;padding:3px 9px;border-radius:20px;background:#f0f3f0;color:#5b6a63;white-space:nowrap}
.badge.open{background:var(--bluebg);color:var(--blue)}
.badge.overdue,.badge.failed{background:var(--redbg);color:#a7473d}
.badge.done{background:#e8f4ec;color:#2f6e4c}
.badge.not_brought{background:var(--amberbg);color:var(--amber)}
.actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.task.overdue{border-left:4px solid var(--red)}
.task.assigned{border-left:4px solid var(--blue)}
.task.done{border-left:4px solid #5fa57d;background:#fbfdfb}
.task.failed{border-left:4px solid var(--red);background:#fffafa}
.task.not_brought{border-left:4px solid #e2b34d;background:#fffdf8}
.task .title{font-weight:650}
.task .details{white-space:pre-wrap;margin-top:4px;color:#3b4a44;font-size:14px}
.empty{text-align:center;color:var(--muted);padding:30px 10px}
.section{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#8a968f;margin:20px 2px 8px}
.stats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.modalroot{position:fixed;inset:0;background:#14271f88;z-index:20;display:grid;place-items:center;padding:14px;overflow:auto}
.modal{width:min(520px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:14px;padding:20px}
.modal h2{margin:0 0 14px;font-size:19px}
.field{margin-bottom:11px}
.field label{display:block;font-size:12px;font-weight:650;margin-bottom:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.btn.block{width:100%}
.plain{text-decoration:none;color:inherit}
.backline{margin-bottom:10px}
.actions.noMargin{margin:0}
.err{color:var(--red);font-size:13px;min-height:18px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#1d3c31;color:#fff;padding:10px 16px;border-radius:9px;z-index:40}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.logincard{width:min(380px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px}
.logincard h1{margin-bottom:16px}
.langline{display:flex;justify-content:flex-end;margin-bottom:10px}
.langline select{width:auto}
@media(max-width:560px){.grid2{grid-template-columns:1fr}.top{padding:8px 10px}.wrap{padding:14px 10px 60px}}
