:root{--teal: #00807f;--teal-dark: #005c5b;--teal-soft: #e0f0ef;--ink: #1e2a2a;--ink-soft: #5c6b6b;--bg: #f6f8f7;--card: #ffffff;--line: #dde5e3;--amber: #c77b00;--amber-soft: #fdf3e2;--red: #b3372f;--red-soft: #faeae8;--green: #2c7a4b;--green-soft: #e6f2ea;--radius: 10px;--shadow: 0 1px 3px rgba(30, 42, 42, .08)}*{box-sizing:border-box}body{margin:0;font-family:Poppins,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}.mono{font-family:IBM Plex Mono,monospace}.topbar{background:var(--teal);color:#fff;display:flex;align-items:center;gap:24px;padding:0 24px;height:56px}.topbar .brand{font-weight:700;font-size:16px;letter-spacing:.02em}.topbar .brand span{font-weight:400;opacity:.85}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav button{background:transparent;border:none;color:#fffc;font:inherit;font-weight:500;padding:8px 14px;border-radius:8px;cursor:pointer}.topbar nav button:hover{background:#ffffff1f;color:#fff}.topbar nav button.active{background:#ffffff2e;color:#fff}.topbar .logout{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:6px 12px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px}.page{max-width:1400px;margin:0 auto;padding:24px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.page-head h1{font-size:20px;font-weight:600;margin:0}.btn{background:var(--teal);color:#fff;border:none;padding:9px 16px;border-radius:8px;font:inherit;font-weight:500;cursor:pointer}.btn:hover{background:var(--teal-dark)}.btn.ghost{background:transparent;color:var(--teal);border:1px solid var(--teal)}.btn.ghost:hover{background:var(--teal-soft)}.btn.danger{background:transparent;color:var(--red);border:1px solid var(--line)}.btn.sm{padding:5px 10px;font-size:13px}input,select,textarea{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--teal);outline-offset:1px}label{display:block;font-size:12px;font-weight:500;color:var(--ink-soft);margin-bottom:4px}.field{margin-bottom:12px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:10px 14px;border-bottom:1px solid var(--line)}td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--teal-soft)}.tag{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:500;background:var(--teal-soft);color:var(--teal-dark)}.tag.amber{background:var(--amber-soft);color:var(--amber)}.tag.red{background:var(--red-soft);color:var(--red)}.tag.green{background:var(--green-soft);color:var(--green)}.tag.gray{background:#eef1f0;color:var(--ink-soft)}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}.kcol{background:#eef1f0;border-radius:var(--radius);padding:10px;min-height:320px}.kcol.dragover{outline:2px dashed var(--teal);outline-offset:-2px}.kcol h3{margin:2px 4px 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);display:flex;justify-content:space-between}.kcol .ktotal{margin:0 4px 10px;font-size:12px;color:var(--teal-dark);font-weight:600}.kcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:grab;box-shadow:var(--shadow)}.kcard:active{cursor:grabbing}.kcard .title{font-weight:600;font-size:13px;margin-bottom:2px}.kcard .client{font-size:12px;color:var(--ink-soft);margin-bottom:6px}.kcard .meta{display:flex;justify-content:space-between;font-size:12px}.kcard .value{color:var(--teal-dark);font-weight:600}.summary-bar{display:flex;gap:20px;padding:14px 18px;margin-bottom:18px;flex-wrap:wrap}.summary-bar .item .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.summary-bar .item .val{font-size:18px;font-weight:600;color:var(--teal-dark)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e2a2a73;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;z-index:50;overflow-y:auto}.modal{background:#fff;border-radius:var(--radius);width:100%;max-width:560px;padding:24px}.modal h2{margin:0 0 16px;font-size:17px}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--teal) 0%,var(--teal-dark) 100%)}.login-card{background:#fff;border-radius:14px;padding:36px;width:100%;max-width:380px}.login-card h1{font-size:20px;margin:0 0 4px;color:var(--teal-dark)}.login-card p{margin:0 0 20px;color:var(--ink-soft);font-size:13px}.error-msg{color:var(--red);font-size:13px;margin-top:8px}.empty{padding:32px;text-align:center;color:var(--ink-soft)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-size:13px;margin-bottom:16px}.detail-grid dt{color:var(--ink-soft);font-size:12px}.detail-grid dd{margin:0 0 8px}.section-title{font-size:13px;font-weight:600;margin:18px 0 8px;color:var(--teal-dark)}.timeline-item{border-left:2px solid var(--teal-soft);padding:2px 0 10px 12px;font-size:13px}.timeline-item .when{color:var(--ink-soft);font-size:12px}@media(max-width:720px){.row2{grid-template-columns:1fr}.topbar{overflow-x:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.proj-card{padding:16px;cursor:pointer}.proj-card:hover{border-color:var(--teal)}.proj-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.proj-name{font-weight:600;font-size:14px}.proj-client{font-size:12px;color:var(--ink-soft)}.progress-track{height:6px;background:#eef1f0;border-radius:99px;overflow:hidden;margin-bottom:6px}.progress-fill{height:100%;background:var(--teal);border-radius:99px}.proj-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);margin-bottom:4px}.proj-next{font-size:12px;margin-top:8px}.task-row{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.task-row:last-of-type{border-bottom:none}.task-done{text-decoration:line-through;color:var(--ink-soft)}
