:root{--color-background-primary:#fff;--color-background-secondary:#f5f5f4;--color-background-tertiary:#f0efed;--color-border-tertiary:#e5e3df;--color-border-secondary:#d1cec9;--color-text-primary:#1c1917;--color-text-secondary:#6b6560;--color-text-tertiary:#a8a29e;--border-radius-md:6px;--border-radius-lg:10px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--s:var(--color-background-secondary);--p:var(--color-background-primary);--b:var(--color-border-tertiary);--t:var(--color-text-primary);--t2:var(--color-text-secondary);--t3:var(--color-text-tertiary);--r:var(--border-radius-md);--rl:var(--border-radius-lg);--blue:#378add;--blue-bg:#e6f1fb;--blue-t:#0c447c;--green:#639922;--green-bg:#eaf3de;--green-t:#27500a;--amber:#ba7517;--amber-bg:#faeeda;--amber-t:#633806;--red:#e24b4a;--red-bg:#fcebeb;--red-t:#a32d2d;--purple:#7f77dd;--purple-bg:#eeedfe;--purple-t:#3c3489;--teal:#1d9e75;--teal-bg:#e1f5ee;--teal-t:#085041;--coral:#d85a30;--coral-bg:#faece7;--coral-t:#993c1d}[data-theme=dark]{--color-background-primary:#1c1917;--color-background-secondary:#292524;--color-background-tertiary:#211f1d;--color-border-tertiary:#3a3734;--color-border-secondary:#504c47;--color-text-primary:#f5f5f4;--color-text-secondary:#a8a29e;--color-text-tertiary:#6b6560;--blue:#5ba3f5;--blue-bg:#1a2d3e;--blue-t:#93c5fd;--green:#7abe34;--green-bg:#1a2910;--green-t:#a3e635;--amber:#d4952a;--amber-bg:#2d2010;--amber-t:#fbbf24;--red:#f06060;--red-bg:#2d1818;--red-t:#fca5a5;--purple:#9d95f0;--purple-bg:#221f3c;--purple-t:#c4b5fd;--teal:#2dc98c;--teal-bg:#0d2e22;--teal-t:#6ee7b7;--coral:#e0724a;--coral-bg:#2d1a10;--coral-t:#fb923c}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-background-tertiary);color:var(--t);transition:background .2s,color .2s}#sidebar,body{min-height:100vh;display:flex;flex-direction:column}#sidebar{width:220px;background:var(--p);border-right:.5px solid var(--b);position:fixed;top:0;left:0;z-index:10;transition:background .2s,border-color .2s}.logo{padding:20px 16px 16px;border-bottom:.5px solid var(--b)}.logo .name{font-size:15px;font-weight:500;color:var(--t)}.logo .sub{font-size:11px;color:var(--t2);margin-top:2px}.nav-section{padding:12px 0}.nav-label{font-size:10px;font-weight:500;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;padding:0 16px;margin-bottom:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;font-size:13px;color:var(--t2);transition:all .15s;background:transparent;width:100%;border:none;border-left:2px solid transparent;text-align:left;font-family:inherit}.nav-item:hover{background:var(--s);color:var(--t)}.nav-item.active{color:var(--blue);border-left-color:var(--blue);background:var(--blue-bg)}.nav-item .ico{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-footer{margin-top:auto;padding:12px 16px;border-top:.5px solid var(--b)}.user-pill{gap:8px}.avatar,.user-pill{display:flex;align-items:center}.avatar{width:28px;height:28px;border-radius:50%;background:var(--purple-bg);justify-content:center;font-size:11px;font-weight:500;color:var(--purple-t);flex-shrink:0}#main{margin-left:220px;flex:1 1;display:flex;flex-direction:column;min-height:100vh}#topbar{height:52px;background:var(--p);border-bottom:.5px solid var(--b);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:5;transition:background .2s,border-color .2s}.topbar-title{font-size:15px;font-weight:500}.topbar-actions{display:flex;align-items:center;gap:8px}#content{padding:24px;flex:1 1}.btn{padding:6px 14px;border-radius:var(--r);border:.5px solid var(--b);background:var(--p);font-size:12px;color:var(--t);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s;font-family:var(--font-sans)}.btn:hover{background:var(--s)}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.primary:hover{opacity:.9}.btn.danger{background:var(--red);color:#fff;border-color:var(--red)}.btn.danger:hover{opacity:.9}.btn.sm{padding:4px 10px;font-size:11px}.dark-toggle{width:32px;height:32px;border-radius:50%;border:.5px solid var(--b);background:var(--s);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s;flex-shrink:0;color:var(--t)}.dark-toggle:hover{background:var(--b)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:24px}.stat-card{background:var(--s);border-radius:var(--r);padding:14px 16px}.stat-label{font-size:12px;color:var(--t2);margin-bottom:6px}.stat-val{font-size:22px;font-weight:500;color:var(--t)}.stat-change{font-size:11px;margin-top:4px}.up{color:var(--green-t)}.down{color:var(--red-t)}.card{background:var(--p);border:.5px solid var(--b);border-radius:var(--rl);padding:16px 20px;margin-bottom:16px;transition:background .2s,border-color .2s;position:relative}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-title{font-size:13px;font-weight:500;color:var(--t)}.badge{font-size:11px;padding:2px 8px;border-radius:var(--r);font-weight:500;display:inline-block}.badge-blue{background:var(--blue-bg);color:var(--blue-t)}.badge-green{background:var(--green-bg);color:var(--green-t)}.badge-amber{background:var(--amber-bg);color:var(--amber-t)}.badge-red{background:var(--red-bg);color:var(--red-t)}.badge-purple{background:var(--purple-bg);color:var(--purple-t)}.badge-teal{background:var(--teal-bg);color:var(--teal-t)}.badge-coral{background:var(--coral-bg);color:var(--coral-t)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:8px 10px;font-size:11px;font-weight:500;color:var(--t2)}td,th{border-bottom:.5px solid var(--b)}td{padding:10px;color:var(--t);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--s)}.action-btns{display:flex;gap:4px}.progress-bar{height:4px;background:var(--s);border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;background:var(--blue)}.two-col{grid-template-columns:1fr 1fr;grid-gap:16px}.three-col,.two-col{display:grid;gap:16px}.three-col{grid-template-columns:1fr 1fr 1fr;grid-gap:16px}.kanban{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-top:4px}.kanban-col{background:var(--s);border-radius:var(--r);padding:10px;min-height:200px}.kanban-col-title{font-size:11px;font-weight:500;color:var(--t2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.kanban-card{background:var(--p);border:.5px solid var(--b);border-radius:var(--r);padding:10px;margin-bottom:8px;cursor:pointer;transition:box-shadow .15s}.kanban-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08);border-color:var(--color-border-secondary)}.kanban-card .kc-title{font-size:12px;font-weight:500;margin-bottom:6px;color:var(--t)}.kanban-card .kc-client{font-size:11px;color:var(--t2);margin-bottom:6px}.kanban-card .kc-bottom{display:flex;align-items:center;justify-content:space-between}.avatar-sm{width:20px;height:20px;border-radius:50%;font-size:9px;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0}.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.staff-card{background:var(--p);border:.5px solid var(--b);border-radius:var(--rl);padding:16px;text-align:center}.staff-av{width:48px;height:48px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500}.staff-name{font-size:13px;font-weight:500;margin-bottom:2px}.staff-role{font-size:11px;color:var(--t2);margin-bottom:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;color:var(--t2)}.form-group input,.form-group select,.form-group textarea{padding:7px 10px;border-radius:var(--r);border:.5px solid var(--b);background:var(--s);color:var(--t);font-size:13px;font-family:var(--font-sans);transition:border-color .15s,background .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--blue);background:var(--p)}.form-group textarea{min-height:70px;resize:vertical}.invoice-row{padding:8px 0;border-bottom:.5px solid var(--b);font-size:13px}.invoice-row,.invoice-total{display:flex;justify-content:space-between}.invoice-total{padding:10px 0;font-size:14px;font-weight:500}.tabs{display:flex;gap:4px;border-bottom:.5px solid var(--b);margin-bottom:16px}.tab{padding:8px 14px;font-size:13px;cursor:pointer;color:var(--t2);margin-bottom:-1px;background:transparent;border:none;border-bottom:2px solid transparent;font-family:inherit}.tab.active{color:var(--blue);border-bottom-color:var(--blue)}.tab:hover:not(.active){color:var(--t)}.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;align-items:center;justify-content:center}.modal-overlay.open{display:flex}.modal{background:var(--p);border-radius:var(--rl);padding:24px;width:520px;max-width:95vw;max-height:88vh;overflow-y:auto;border:.5px solid var(--b);transition:background .2s}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:15px;font-weight:500}.modal-close{cursor:pointer;color:var(--t2);font-size:18px;line-height:1;padding:4px;transition:color .15s;background:transparent;border:none}.modal-close:hover{color:var(--t)}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.activity-item{display:flex;gap:12px;padding:10px 0;border-bottom:.5px solid var(--b)}.activity-item:last-child{border-bottom:none}.activity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.activity-text{font-size:12px;color:var(--t);line-height:1.5}.activity-time{font-size:11px;color:var(--t3);margin-top:2px}.bar-chart{display:flex;align-items:flex-end;gap:6px;height:100px;margin-top:8px}.bar-wrap{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px}.bar{border-radius:3px 3px 0 0;width:100%;background:var(--blue-bg);transition:height .3s}.bar-label{font-size:10px;color:var(--t3);text-align:center}.bar-val{font-size:10px;color:var(--t2);font-weight:500}#toast-container{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;flex-direction:column;gap:8px}.toast{background:var(--t);color:var(--p);padding:10px 16px;border-radius:var(--r);font-size:13px;display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:auto;min-width:220px;cursor:pointer}.toast.show{opacity:1;transform:translateY(0)}.toast.success{background:var(--green);color:#fff}.toast.error{background:var(--red);color:#fff}.toast.info{background:var(--blue);color:#fff}#api-status{font-size:11px;padding:3px 8px;border-radius:20px;display:flex;align-items:center;gap:5px}#api-status.connected{background:var(--green-bg);color:var(--green-t)}#api-status.disconnected{background:var(--amber-bg);color:var(--amber-t)}#api-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.empty-state{text-align:center;padding:40px 20px;color:var(--t2)}.empty-state .icon{font-size:32px;margin-bottom:8px}.empty-state .msg{font-size:13px}.confirm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:center;justify-content:center}.confirm-overlay.open{display:flex}.confirm-box{background:var(--p);border-radius:var(--rl);padding:24px;width:360px;border:.5px solid var(--b)}.confirm-msg{font-size:13px;color:var(--t);margin-bottom:20px;line-height:1.6}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.dashed-card{border:.5px dashed var(--b);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}@media (max-width:960px){.stats-grid{grid-template-columns:repeat(2,1fr)}.three-col,.two-col{grid-template-columns:1fr}.kanban,.staff-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){#sidebar{width:60px}#main{margin-left:60px}.nav-item{justify-content:center;padding:10px 0}.logo .sub,.nav-item span:not(.ico),.nav-label,.user-pill>div:last-child{display:none}.logo{padding:12px 8px;text-align:center}.form-grid,.kanban,.staff-grid,.stats-grid{grid-template-columns:1fr}}