@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&family=Space+Mono:wght@400;700&display=swap");:root{--bg:#0a0a0a;--card:#161616;--border:#242424;--border-strong:#343434;--text:#f0f0f0;--muted:#777777;--white:#ffffff;--red:#e8392a;--shadow:0 24px 60px rgba(0,0,0,0.3)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:radial-gradient(circle at top left,rgba(232,57,42,.12),transparent 28%),radial-gradient(circle at top right,rgba(61,130,196,.16),transparent 34%),var(--bg);color:var(--text);font-family:Poppins,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.auth-shell,.shell{min-height:100vh}.auth-shell{display:grid;place-items:center;padding:32px}.auth-card{width:min(100%,420px);background:rgba(17,17,17,.9);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.auth-title{margin:0 0 8px;font-size:28px;font-weight:800;letter-spacing:-.03em}.auth-copy{margin:0 0 24px;color:#aaaaaa;line-height:1.6}.brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;text-transform:uppercase;font-size:12px;letter-spacing:.18em;color:#cccccc}.brand-mark{width:12px;height:12px;border-radius:3px;background:var(--red);box-shadow:0 0 16px rgba(232,57,42,.5)}.field{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.field label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.input,.select{width:100%;border:1px solid var(--border);background:rgba(255,255,255,.03);color:var(--text);border-radius:12px;padding:12px 14px;outline:none}.input:focus,.select:focus{border-color:var(--red)}.btn{border:1px solid var(--border);color:var(--text);background:transparent;border-radius:12px;padding:10px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;cursor:pointer}.btn:hover{border-color:var(--border-strong)}.btn-primary{background:var(--red);border-color:var(--red);color:var(--white)}.btn-primary:hover{background:#cf301f;border-color:#cf301f}.btn:disabled{cursor:not-allowed}.btn-pending,.btn-primary:active{background:#8f2116;border-color:#8f2116;transform:translateY(1px);box-shadow:inset 0 2px 10px rgba(0,0,0,.22)}.btn-danger{color:#ff978f;border-color:rgba(232,57,42,.35)}.banner{margin-top:16px;border:1px solid rgba(46,158,122,.4);background:rgba(46,158,122,.08);border-radius:14px;padding:14px;color:#cbeede}.error{border:1px solid rgba(232,57,42,.35);background:rgba(232,57,42,.08);color:#ffb3ac;border-radius:12px;padding:12px 14px;margin-bottom:16px}.app-header{height:64px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:20px;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;background:rgba(10,10,10,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30}.header-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.header-spacer{flex:1 1}.layout{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:calc(100vh - 64px)}.sidebar{border-right:1px solid var(--border);padding:22px 18px 28px}.sidebar-inner{position:-webkit-sticky;position:sticky;top:88px;display:grid;grid-gap:20px;gap:20px}.section-label{font-family:Space Mono,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.card{background:rgba(22,22,22,.92);border:1px solid var(--border);border-radius:18px;padding:18px}.cap-big{font-size:44px;font-weight:900;line-height:1}.cap-unit{font-family:Space Mono,monospace;color:var(--muted);font-size:11px}.cap-row{display:flex;align-items:flex-end;gap:8px;margin-bottom:12px}.cap-track{width:100%;height:4px;background:var(--border);border-radius:999px;overflow:hidden}.cap-fill{height:100%;background:linear-gradient(90deg,var(--red),#ff8a52)}.meta{margin-top:8px;color:#afafaf;font-size:12px;line-height:1.6}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.stat-card{background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:14px;padding:14px}.stat-value{font-size:24px;font-weight:800}.stat-label{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.08em}.client-list{display:grid;grid-gap:10px;gap:10px}.client-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;align-items:center;font-size:13px}.client-pip{width:10px;height:10px;border-radius:999px}.client-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-meta{color:var(--muted);font-family:Space Mono,monospace;font-size:11px}.main{padding:18px 22px 26px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.view-switch{display:inline-flex;border:1px solid var(--border);border-radius:12px;overflow:hidden}.switch-btn{border:0;background:transparent;color:var(--muted);padding:10px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.switch-btn.on{background:rgba(232,57,42,.16);color:var(--white)}.nav-group{display:inline-flex;gap:8px}.nav-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}.period-text{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#d0d0d0}.board{border:1px solid var(--border);border-radius:22px;background:rgba(17,17,17,.88);overflow:hidden}.board-scroll{overflow:auto}.grid{min-width:960px}.row{position:relative;display:grid;min-height:64px;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.head-row{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:rgba(17,17,17,.98)}.cell{border-left:1px solid var(--border);padding:14px 10px;font-size:12px;color:#bdbdbd}.cell.today{background:rgba(232,57,42,.08)}.label-cell{padding:14px 16px;position:-webkit-sticky;position:sticky;left:0;z-index:4;background:rgba(17,17,17,.98);border-right:1px solid var(--border)}.bar-layer{inset:0;pointer-events:none}.bar,.bar-layer{position:absolute}.bar{pointer-events:auto;top:10px;height:44px;border-radius:14px;display:grid;align-items:center;padding:0 12px;font-size:12px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.24);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bar.dragging{opacity:.75;cursor:-webkit-grabbing;cursor:grabbing}.bar-meta{font-size:10px;opacity:.85;letter-spacing:.06em;text-transform:uppercase}.empty{padding:28px;color:#b3b3b3}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.68);display:grid;place-items:center;padding:20px;z-index:40}.modal{width:min(100%,560px);background:#121212;border:1px solid var(--border);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-title{margin:0;font-size:24px;font-weight:800}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:28px;height:28px;border-radius:999px;border:2px solid transparent;cursor:pointer}.swatch.on{border-color:var(--white);box-shadow:0 0 0 2px rgba(255,255,255,.2)}.modal-actions{justify-content:space-between;margin-top:20px}.modal-actions,.modal-actions-end{display:flex;gap:12px}.loading{padding:28px;color:#bbbbbb}@media (max-width:980px){.layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border)}.sidebar-inner{position:static}}@media (max-width:640px){.app-header{padding:0 16px}.main{padding:14px}.field-row,.stat-grid{grid-template-columns:1fr}.modal-actions{flex-direction:column}.modal-actions-end{width:100%;justify-content:stretch}.modal-actions .btn,.modal-actions-end .btn{width:100%}}