:root{--odoo:#714b67;--odoo-dark:#56394f;--accent:#00a09d;--bg:#f7f7f9;--panel:#fff;--border:#dedde3;--text:#2f2f33;--muted:#74747b;--danger:#c94c4c;--warn:#e7a83e;--ok:#45a168;--shadow:0 8px 28px rgba(29,20,27,.08)}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.login-wrap{min-height:100%;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#91667f 0,#714b67 28%,#432d3e 100%);padding:24px}.login-card{width:min(420px,100%);background:#fff;border-radius:12px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.24);text-align:center}.brand-mark{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;margin:0 auto;background:var(--odoo);color:#fff;font-weight:800;letter-spacing:-1px;font-size:22px}.brand-mark.small{width:34px;height:34px;border-radius:8px;font-size:14px}.login-card h1{margin:14px 0 3px;font-size:26px}.login-card p{color:var(--muted);margin:0 0 26px}.login-card label{display:block;text-align:left;font-size:12px;font-weight:700;color:#64636a;margin:12px 0}.login-card input{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--border);border-radius:7px;outline:0}.login-card input:focus{border-color:var(--odoo);box-shadow:0 0 0 3px #714b6714}.login-card small{display:block;color:#8a8990;margin-top:16px}
.topbar{height:54px;background:var(--odoo);color:#fff;display:flex;align-items:center;padding:0 14px;gap:12px;position:fixed;left:0;right:0;top:0;z-index:20;box-shadow:0 1px 5px #0003}.brand-button{border:0;background:transparent;padding:0;cursor:pointer}.company-name{font-weight:650;white-space:nowrap}.global-search{height:34px;max-width:520px;flex:1;margin:0 auto;display:flex;align-items:center;gap:8px;background:#ffffff17;border:1px solid #ffffff20;border-radius:6px;padding:0 11px}.global-search input{width:100%;border:0;outline:0;background:transparent;color:#fff}.global-search input::placeholder{color:#ffffffae}.top-actions{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:99px;background:#70d38f;box-shadow:0 0 0 3px #ffffff14}.role-badge{font-size:10px;padding:3px 6px;border-radius:4px;background:#ffffff18;text-transform:uppercase}.user-chip,.icon-btn{border:0;color:#fff;background:transparent;cursor:pointer}.user-chip{display:flex;gap:7px;align-items:center}.user-chip span{width:26px;height:26px;border-radius:50%;background:#fff;color:var(--odoo);display:grid;place-items:center;font-weight:800}.icon-btn{font-size:19px;padding:8px}
.shell{display:grid;grid-template-columns:214px 1fr;padding-top:54px;min-height:100%}.sidebar{position:fixed;top:54px;bottom:0;width:214px;background:#fff;border-right:1px solid var(--border);padding:10px 8px;overflow:auto}.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#98979f;padding:10px 10px 6px;font-weight:800}.nav-item{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;border-radius:6px;padding:9px 10px;color:#4b4a50;cursor:pointer;text-align:left;font-size:13px}.nav-item:hover{background:#f3eff2}.nav-item.active{background:#efe8ed;color:var(--odoo-dark);font-weight:750}.nav-icon{width:24px;text-align:center;font-size:16px}.nav-count{margin-left:auto;background:#eee;border-radius:99px;padding:2px 6px;font-size:10px}.workspace{grid-column:2;min-width:0}.controlbar{min-height:76px;background:#fff;border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:54px;z-index:10}.breadcrumb{font-size:11px;color:#8b8a90;margin-bottom:4px}.controlbar h2{font-size:20px;margin:0;font-weight:650}.control-actions{display:flex;gap:7px;flex-wrap:wrap}.content{padding:20px 24px 42px}.btn{border:1px solid var(--border);background:#fff;color:#444;padding:8px 12px;border-radius:5px;cursor:pointer;font-weight:650;font-size:12px}.btn:hover{background:#f5f3f5}.btn.primary{background:var(--odoo);border-color:var(--odoo);color:#fff}.btn.primary:hover{background:var(--odoo-dark)}.btn.success{background:#eaf7ef;border-color:#b8dfc6;color:#287948}.btn.danger{background:#fff1f1;border-color:#efc2c2;color:#a63e3e}.btn.small{padding:5px 8px;font-size:11px}.btn.block{width:100%;padding:11px}.btn.ghost{background:transparent}
.kpi-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:12px;margin-bottom:20px}.kpi{background:#fff;border:1px solid var(--border);border-radius:8px;padding:14px 15px;min-height:92px;box-shadow:0 1px 2px #00000005}.kpi .label{font-size:11px;color:var(--muted);font-weight:650}.kpi .value{font-size:24px;font-weight:760;margin-top:8px;letter-spacing:-.03em}.kpi .hint{font-size:10px;color:#a09fa5;margin-top:4px}.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}.panel{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}.panel-head{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:750}.panel-body{padding:14px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:7px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{position:sticky;top:0;background:#f6f5f7;color:#69686f;text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap;font-size:10.5px;text-transform:uppercase;letter-spacing:.035em}.data-table td{padding:9px 10px;border-bottom:1px solid #efeff2;vertical-align:middle;white-space:nowrap}.data-table tr:hover td{background:#faf8fa}.data-table tr:last-child td{border-bottom:0}.actions-cell{display:flex;gap:5px}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.muted{color:var(--muted)}.right{text-align:right}.money{font-variant-numeric:tabular-nums;font-weight:650}.badge{display:inline-flex;align-items:center;border-radius:99px;padding:3px 7px;font-size:10px;font-weight:750;background:#ececf1;color:#5f5e65;text-transform:lowercase}.badge.green{background:#e7f5eb;color:#2f7f4c}.badge.red{background:#faeaea;color:#ad3f3f}.badge.amber{background:#fff2d8;color:#95620c}.badge.purple{background:#efe6ec;color:#714b67}.empty{padding:54px 20px;text-align:center;color:#8d8c93}.pipeline{display:flex;gap:8px;overflow:auto;padding-bottom:5px}.stage-card{min-width:210px;border:1px solid var(--border);border-radius:7px;background:#fff;padding:11px}.stage-card .name{font-weight:750}.stage-card .sub{font-size:10px;color:var(--muted);margin:4px 0 8px}.stage-line{height:4px;background:#eceaed;border-radius:99px;overflow:hidden}.stage-line span{display:block;height:100%;background:var(--odoo);width:65%}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--border);margin-bottom:14px}.tab{border:0;background:transparent;padding:9px 12px;cursor:pointer;color:#777}.tab.active{color:var(--odoo);border-bottom:2px solid var(--odoo);font-weight:750}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.report-card{background:#fff;border:1px solid var(--border);border-radius:7px;padding:16px;cursor:pointer}.report-card:hover{border-color:#b9a3b3;box-shadow:var(--shadow)}.report-card h3{font-size:14px;margin:0 0 6px}.report-card p{font-size:11px;color:var(--muted);margin:0}.summary-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.summary-pill{padding:8px 10px;background:#fff;border:1px solid var(--border);border-radius:6px;font-size:11px}.summary-pill b{margin-left:6px}.kanban{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow:auto}.kanban-col{background:#f1f0f2;border-radius:8px;padding:8px;min-height:250px}.kanban-title{font-size:11px;text-transform:uppercase;color:#777;font-weight:800;padding:5px}.kanban-card{background:#fff;border:1px solid var(--border);border-radius:6px;padding:10px;margin:6px 0}.kanban-card b{font-size:12px}.kanban-card small{display:block;color:#888;margin-top:4px}
.modal{position:fixed;inset:0;background:#17111680;display:grid;place-items:center;z-index:50;padding:20px}.modal-card{width:min(720px,100%);max-height:90vh;background:#fff;border-radius:9px;box-shadow:0 30px 80px #0005;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:16px}.modal-head button{border:0;background:transparent;font-size:24px;cursor:pointer}.modal-body{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:#6c6b72;font-weight:750}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:5px;padding:9px 10px;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9c7891;box-shadow:0 0 0 3px #714b670d}.modal-footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:7px;padding-top:7px}.toast{position:fixed;right:20px;bottom:20px;background:#28252a;color:#fff;padding:11px 14px;border-radius:6px;box-shadow:var(--shadow);z-index:100;font-size:12px;max-width:380px}.toast.error{background:#9e3e3e}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{grid-template-columns:60px 1fr}.sidebar{width:60px}.nav-item{justify-content:center;padding:10px}.nav-item span:not(.nav-icon){display:none}.nav-section{display:none}.workspace{grid-column:2}.company-name,.role-badge,.user-chip b{display:none}.content{padding:14px}.controlbar{padding:10px 14px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.global-search{display:none}.modal-body{grid-template-columns:1fr}.field.full,.modal-footer{grid-column:1}.report-grid{grid-template-columns:1fr}}
