:root{--bg: #eef2f6;--bg-deep: #dce5ef;--panel: #ffffff;--panel-alt: #f7fafd;--line: #d4deea;--text: #1c2c3d;--muted: #5b6f84;--blue: #1d5d93;--teal: #107c70;--amber: #a86b1d;--red: #a04133;--shadow: 0 14px 35px rgba(14, 42, 68, .12)}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,sans-serif;color:var(--text);background:radial-gradient(1200px circle at -10% -10%,rgba(29,93,147,.16),transparent 60%),radial-gradient(1000px circle at 110% 0%,rgba(16,124,112,.13),transparent 60%),linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%)}h1,h2,h3,h4,strong{margin:0;font-family:Manrope,sans-serif}p{margin:0}button,input,select,textarea{font:inherit}.login-shell,.loading-screen{min-height:100vh;display:grid;place-items:center;padding:1rem}.loading-screen.embedded{min-height:340px}.loading-card{width:min(420px,100%);text-align:center;background:linear-gradient(135deg,#fff,#f4f8fc);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:1.4rem;display:grid;gap:.45rem;justify-items:center}.loading-card p{color:var(--muted)}.spinner{width:34px;height:34px;border:4px solid #d3e3f2;border-top-color:var(--blue);border-radius:999px;animation:spin .85s linear infinite}.login-card{width:min(520px,100%);background:linear-gradient(135deg,#fff,#f4f8fc);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:1.4rem}.login-company{margin-top:.4rem;color:var(--muted)}.login-form{margin-top:1rem;display:grid;gap:.6rem}.app-shell{width:100%;margin:0;display:grid;grid-template-columns:285px 1fr;gap:0;min-height:100vh}.sidebar{background:linear-gradient(170deg,#10385b,#1a4e79,#246283);color:#e8f2fd;border-radius:0;padding:1.1rem;display:grid;grid-template-rows:auto 1fr auto;gap:1rem;min-height:100vh;position:sticky;top:0;box-shadow:var(--shadow)}.brand p{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.82}.brand h1{margin-top:.25rem;font-size:1.45rem}nav{display:grid;gap:.4rem;align-content:start}.menu-item{border:1px solid transparent;background:transparent;color:#d6e8f8;text-align:left;border-radius:12px;padding:.58rem .68rem;cursor:pointer}.menu-item:hover{background:#ffffff1f}.menu-item.active{background:linear-gradient(120deg,#ffffff3d,#ffffff1a);border-color:#ffffff38;font-weight:600}.sidebar-card{border:1px solid rgba(255,255,255,.26);border-radius:14px;background:#0a213547;padding:.8rem}.sidebar-card h4{margin-bottom:.35rem}.sidebar-card p{font-size:.86rem;line-height:1.42}.content{display:grid;gap:.95rem;align-content:start;padding-bottom:0;min-height:100vh}.content-body{padding:0 .95rem .95rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:1rem;box-shadow:var(--shadow)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:linear-gradient(120deg,#fff,#f3f8fc);border-radius:0;border-top:0;border-right:0}.mini-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.topbar h2{margin-top:.2rem;font-size:clamp(1.2rem,2.1vw,1.58rem)}.muted{color:var(--muted);margin-top:.18rem}.user-chip{min-width:220px;border:1px solid var(--line);border-radius:14px;background:var(--panel-alt);padding:.62rem;display:grid;gap:.1rem;position:relative}.user-chip small{color:var(--muted)}.dot{width:10px;height:10px;border-radius:999px;background:#27ad68;position:absolute;top:12px;right:12px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.kpi p{font-size:.9rem;color:var(--muted)}.kpi h3{font-size:1.7rem;margin:.28rem 0}.kpi span{font-size:.83rem}.kpi.blue{border-top:4px solid var(--blue)}.kpi.amber{border-top:4px solid var(--amber)}.kpi.red{border-top:4px solid var(--red)}.kpi.green{border-top:4px solid var(--teal)}.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:.9rem}.stack{display:grid;gap:.7rem}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem}h3{font-size:1.08rem}.ghost-btn,.primary-btn{border-radius:10px;padding:.5rem .72rem;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--text)}button:disabled{opacity:.55;cursor:not-allowed}.primary-btn{background:linear-gradient(135deg,#1d6096,#164f7d);color:#fff;border-color:#12486f}.badge{background:#e6f1fd;color:#1f4d7a;border:1px solid #cadcf2;font-size:.78rem;padding:.22rem .52rem;border-radius:999px}.badge.amber{background:#f7eddc;border-color:#edd7b2;color:#855312}.badge.green{background:#ddf4e8;border-color:#b8e2cb;color:#1b6d4e}.kanban-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.68rem}.kanban-col{border:1px solid var(--line);border-radius:14px;background:#f8fafd;padding:.62rem;display:grid;gap:.55rem;align-content:start}.kanban-col h4{font-size:.9rem;color:#254865}.ticket{border:1px solid #d5dfeb;border-radius:12px;background:#fff;padding:.55rem;display:grid;gap:.18rem}.ticket p,.ticket span{font-size:.83rem;color:var(--muted)}.notice{border-radius:12px;border:1px solid;padding:.66rem;font-size:.88rem}.notice.warn{background:#fceee9;border-color:#ebc5b8;color:#8d3124}.notice.info{background:#eaf3fc;border-color:#c9ddf4;color:#21496f}.notice.ok{background:#e7f6ef;border-color:#c2e7d5;color:#1e6a4c}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem}.form-grid.compact{grid-template-columns:1fr 1fr}label{display:grid;gap:.3rem;font-size:.84rem;color:#334d66}input,select,textarea{border:1px solid #ced8e3;border-radius:10px;background:#fff;padding:.54rem .62rem;color:#1f3245}textarea{resize:vertical}.full{grid-column:1 / -1}.actions{display:flex;gap:.56rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.62rem .46rem;font-size:.88rem}th{color:#2c4c6a;background:#f7fafd}.pagination{margin-top:.65rem;display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap}.pagination p{color:var(--muted);font-size:.84rem}.pagination-actions{display:flex;align-items:center;gap:.4rem}.pagination-actions span{font-size:.84rem;color:#32516c}.approval-row{border:1px solid var(--line);border-radius:12px;background:var(--panel-alt);padding:.66rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem}.approval-row span{font-size:.83rem;border:1px solid #c9daea;background:#e8f1fa;color:#21496f;padding:.22rem .48rem;border-radius:999px}.approval-card{border:1px solid var(--line);border-radius:12px;background:#f9fbfd;padding:.7rem;display:flex;justify-content:space-between;gap:.8rem;align-items:center}.approval-card p{margin-top:.18rem}.approval-actions{display:flex;gap:.45rem}.icon-btn{border:1px solid;border-radius:10px;background:#fff;padding:.42rem .58rem;display:flex;gap:.35rem;align-items:center;cursor:pointer}.icon-mark{width:18px;height:18px;border-radius:999px;display:grid;place-items:center;font-size:.74rem;font-weight:700}.icon-btn.approve{border-color:#bfe4ce;color:#1f6c4d}.icon-btn.approve .icon-mark{background:#dff4e8}.icon-btn.reject{border-color:#efc7be;color:#8d3124}.icon-btn.reject .icon-mark{background:#fbe7e2}.checklist p{color:var(--muted)}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.check-grid span{border:1px solid #d2dfeb;border-radius:10px;background:#f8fbfe;padding:.52rem;font-size:.84rem}.progress-row p{margin-bottom:.32rem;font-size:.86rem;color:var(--muted)}progress{width:100%;height:12px;border-radius:99px}.users-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem}.user-card{border:1px solid var(--line);border-radius:14px;background:#fcfdff;padding:.68rem}.user-card-head{display:flex;justify-content:space-between;align-items:start;gap:.55rem}.user-card p{font-size:.84rem;color:var(--muted)}.permissions{margin-top:.46rem;display:flex;flex-wrap:wrap;gap:.35rem}.permissions span{font-size:.75rem;border:1px solid #d1e2f2;background:#edf4fb;color:#294764;border-radius:999px;padding:.2rem .45rem}.timeline-item{border:1px solid var(--line);border-radius:12px;background:#f9fbfd;padding:.62rem}.timeline-item p{margin-top:.2rem;font-size:.86rem;color:var(--muted)}@media (max-width: 1280px){.kpi-grid,.kanban-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1020px){.app-shell{width:100%;grid-template-columns:1fr}.sidebar{position:static;min-height:auto}.grid-2,.kpi-grid,.users-grid,.form-grid,.form-grid.compact,.check-grid{grid-template-columns:1fr}}@media (max-width: 680px){.topbar,.section-head,.approval-row,.approval-card,.user-card-head,.actions{flex-direction:column;align-items:start}.user-chip{width:100%}.kanban-grid{grid-template-columns:1fr}}@keyframes spin{to{transform:rotate(360deg)}}
