:root{--brand: #4f46e5;--brand-d: #4338ca;--brand-l: #6366f1;--brand-soft: #eef2ff;--brand-softer: #e0e7ff;--brand-ring: rgba(79,70,229,.28);--bg: #f4f6fb;--bg-2: #eef1f8;--panel: #ffffff;--panel-2: #f8fafc;--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--muted-2: #94a3b8;--line: #e6e9f2;--line-2: #eef1f7;--ok: #16a34a;--ok-soft: #dcfce7;--ok-ink: #166534;--warn: #dc2626;--warn-soft: #fee2e2;--warn-ink: #991b1b;--amber: #d97706;--amber-soft: #fef3c7;--amber-ink: #92400e;--info: #2563eb;--info-soft: #dbeafe;--info-ink: #1e40af;--r-xs: 8px;--r-sm: 10px;--r: 12px;--r-lg: 16px;--r-xl: 20px;--r-pill: 999px;--sh-xs: 0 1px 2px rgba(15,23,42,.05);--sh-sm: 0 1px 3px rgba(15,23,42,.07), 0 1px 2px rgba(15,23,42,.04);--sh: 0 4px 12px rgba(15,23,42,.07), 0 2px 4px rgba(15,23,42,.04);--sh-lg: 0 12px 32px rgba(15,23,42,.12), 0 4px 10px rgba(15,23,42,.06);--sh-brand: 0 6px 18px rgba(79,70,229,.28);--ease: cubic-bezier(.4, 0, .2, 1);--sidebar-w: 244px}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0 0 4px;color:var(--ink);font-weight:700;letter-spacing:-.011em}h1{font-size:26px}h2{font-size:21px}h3{font-size:17px}h4{font-size:14px}p{margin:4px 0}a{color:var(--brand-d)}.muted{color:var(--muted)}.muted-sm{color:var(--muted);font-size:12px}.tnum{font-variant-numeric:tabular-nums}.right{text-align:right}code{background:var(--brand-soft);color:var(--brand-d);padding:1px 6px;border-radius:6px;font-size:12.5px}::selection{background:var(--brand-softer)}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:content-box}button,.btn{cursor:pointer;font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--r-xs);padding:9px 15px;background:var(--panel-2);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s var(--ease),border-color .15s var(--ease),box-shadow .15s var(--ease),transform .04s var(--ease);white-space:nowrap;line-height:1.2}button{border-color:var(--line)}button:hover{background:#eef1f7;border-color:#d7dce7}button:active{transform:translateY(1px)}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-ring)}button.primary,.btn.primary{background:var(--brand);color:#fff;border-color:transparent;box-shadow:var(--sh-xs)}button.primary:hover,.btn.primary:hover{background:var(--brand-d);box-shadow:var(--sh-brand)}button.secondary{background:var(--brand-soft);color:var(--brand-d);border-color:transparent}button.secondary:hover{background:var(--brand-softer)}button.ghost,.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-2)}button.ghost:hover{background:var(--panel-2);border-color:#d7dce7}button.success{background:var(--ok);color:#fff;border-color:transparent}button.success:hover{background:#15803d}button.warning{background:var(--amber);color:#fff;border-color:transparent}button.warning:hover{background:#b45309}button.danger{background:var(--warn);color:#fff;border-color:transparent}button.danger:hover{background:#b91c1c}button.outline{background:transparent;border:1px solid var(--brand);color:var(--brand-d)}button.outline:hover{background:var(--brand-soft)}button.mini,.btn.mini{padding:6px 11px;font-size:13px;border-radius:var(--r-xs)}button.mini.ok{background:var(--ok-soft);color:var(--ok-ink);border-color:transparent}button.mini.ok:hover{background:#bbf7d0}button.mini.danger{background:var(--warn-soft);color:var(--warn-ink);border-color:transparent}button.mini.danger:hover{background:#fecaca}button.mini.info{background:var(--info-soft);color:var(--info-ink);border-color:transparent}button.icon-btn{padding:8px;width:36px;height:36px;border-radius:var(--r-xs)}.is-loading{position:relative;color:transparent!important;pointer-events:none}.is-loading:after{content:"";position:absolute;width:15px;height:15px;top:calc(50% - 8px);left:calc(50% - 8px);border:2px solid rgba(255,255,255,.55);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fab{position:fixed;right:26px;bottom:26px;width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;font-size:24px;border:0;box-shadow:var(--sh-lg);z-index:40}.fab:hover{background:var(--brand-d)}input,select,textarea{padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-xs);font:inherit;width:100%;background:var(--panel);color:var(--ink);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:hover,select:hover,textarea:hover{border-color:#cdd4e0}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}input:disabled,select:disabled,textarea:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--brand)}input[type=checkbox]{cursor:pointer}textarea{min-height:84px;resize:vertical}select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:34px}label.fld,label.field-label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:0 0 5px}.field-req:after,.req:after{content:" *";color:var(--warn)}.field-hint{font-size:12px;color:var(--muted);margin-top:4px}.field-error{font-size:12px;color:var(--warn);margin-top:4px;font-weight:500}input.invalid,select.invalid,textarea.invalid{border-color:var(--warn)}input.invalid:focus{box-shadow:0 0 0 3px #dc26262e}.switch{position:relative;display:inline-flex;align-items:center;width:40px;height:22px}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch span{position:absolute;inset:0;background:#cbd5e1;border-radius:999px;transition:background .18s var(--ease)}.switch span:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:var(--sh-xs);transition:transform .18s var(--ease)}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:before{transform:translate(18px)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 600px at 10% -10%,var(--brand-softer),transparent 60%),radial-gradient(1000px 500px at 100% 110%,#dbeafe,transparent 55%),var(--bg)}.login-card{background:var(--panel);padding:34px;border-radius:var(--r-lg);width:380px;box-shadow:var(--sh-lg);border:1px solid var(--line-2)}.login-card .brand{display:flex;align-items:center;gap:12px}.login-card .logo{font-size:30px;display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--brand-soft)}.login-card h1{color:var(--ink);font-size:22px}.login-card .sub{color:var(--muted);margin:6px 0 20px}.login-card label{display:block;font-size:12.5px;font-weight:600;margin:14px 0 5px;color:var(--ink-2)}.login-card button.primary{width:100%;margin-top:20px;padding:11px;font-size:15px}.err{color:var(--warn);font-size:13px;margin-top:10px;font-weight:500}.quick{margin-top:16px;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{padding:5px 10px;font-size:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-2)}.hint{font-size:12px;color:var(--muted);margin-top:14px;text-align:center}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:linear-gradient(185deg,#1e243b,#161b2e);color:#cbd5e1;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{padding:18px 20px;color:#fff;display:flex;gap:11px;align-items:center;font-size:17px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar .brand .logo{font-size:22px;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#ffffff1a}.sidebar nav{padding:10px 12px;display:flex;flex-direction:column;gap:1px;flex:1;overflow-y:auto}.sidebar nav::-webkit-scrollbar{width:8px}.sidebar nav::-webkit-scrollbar-thumb{background:#ffffff24}.sidebar nav a{display:flex;gap:11px;align-items:center;padding:9px 12px;border-radius:var(--r-xs);color:#cbd5e1;text-decoration:none;font-size:13.5px;font-weight:500;position:relative;transition:background .13s var(--ease),color .13s var(--ease)}.sidebar nav a span{font-size:16px;width:20px;text-align:center;flex:0 0 auto}.sidebar nav a:hover{background:#ffffff12;color:#fff}.sidebar nav a.active{background:var(--brand);color:#fff;box-shadow:var(--sh-brand)}.sidebar nav a.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:999px;background:var(--brand-l)}.side-foot{padding:12px 18px;font-size:11px;color:#94a3b8;border-top:1px solid rgba(255,255,255,.07);text-transform:capitalize}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:62px;background:#ffffffd9;backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.topbar .company{color:var(--muted);font-size:13.5px;font-weight:500}.topbar .user{display:flex;align-items:center;gap:14px;font-size:14px}.topbar .bell{text-decoration:none;font-size:18px;position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;transition:background .13s}.topbar .bell:hover{background:var(--panel-2)}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--brand-l),var(--brand-d));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;box-shadow:var(--sh-xs)}.content{padding:26px;max-width:1500px;width:100%;overflow-x:auto;animation:fadein .25s var(--ease)}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.breadcrumbs{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin-bottom:6px}.breadcrumbs a{color:var(--muted);text-decoration:none}.breadcrumbs a:hover{color:var(--brand-d)}.breadcrumbs .sep{opacity:.5}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-top:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 18px 16px;box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:box-shadow .18s var(--ease),transform .12s var(--ease),border-color .18s var(--ease)}.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand);opacity:.9}.card:hover{box-shadow:var(--sh);transform:translateY(-2px);border-color:#dbe1ec}.card .k{font-size:27px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.15;overflow-wrap:anywhere}.card .l{color:var(--muted);font-size:12.5px;margin-top:5px;font-weight:500}.card.accent{background:linear-gradient(140deg,var(--brand) 0%,var(--brand-d) 100%);color:#fff;border:0;box-shadow:var(--sh-brand)}.card.accent:before{display:none}.card.accent .k,.card.accent .l{color:#fff}.card.accent .l{opacity:.9}.card.warn:before{background:var(--warn)}.card.warn .k{color:var(--warn)}.card.ok:before{background:var(--ok)}.card.ok .k{color:var(--ok-ink)}.card-ic{position:absolute;top:14px;right:14px;font-size:20px;opacity:.35}.card.accent .card-ic{opacity:.55}.trend{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:999px;margin-top:8px}.trend.up{background:var(--ok-soft);color:var(--ok-ink)}.trend.down{background:var(--warn-soft);color:var(--warn-ink)}.trend.flat{background:var(--panel-2);color:var(--muted)}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin:16px 0;box-shadow:var(--sh-sm)}.panel>h3:first-child,.panel>h2:first-child{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:12px}.grid{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-top:14px;box-shadow:var(--sh-sm)}.grid th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--muted);padding:12px 15px;background:var(--panel-2);border-bottom:1px solid var(--line);white-space:nowrap}.grid td{padding:13px 15px;border-bottom:1px solid var(--line-2);font-size:13.5px;color:var(--ink-2);vertical-align:middle}.grid tbody tr{transition:background .12s var(--ease)}.grid tbody tr:hover{background:var(--brand-soft)}.grid tr:last-child td{border-bottom:0}.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.content .card table.grid{display:block;overflow-x:auto;overflow-y:hidden;max-width:100%}.content div.cards2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.content .card:has(table.grid){grid-column:1 / -1}@media (max-width: 760px){.content div.cards2{grid-template-columns:1fr}}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-pill);background:var(--panel-2);border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--ink-2);margin:1px}.pill.p-High,.pill.p-Critical{background:var(--warn-soft);color:var(--warn-ink);border-color:transparent}.status{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:var(--r-pill);font-size:12px;font-weight:600;background:var(--panel-2);color:var(--ink-2);border:1px solid transparent}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.status.s-Open,.status.s-Pending,.status.s-Due,.status.s-Requested,.status.s-Scheduled,.status.s-Ordered,.status.s-Issued,.status.s-Trial,.status.s-Late,.status.s-Unmarked,.status.s-Reopened,.status.s-PartiallyPaid,.status.s-Processing,.status.s-Initiated,.status.s-PartiallyRefunded,.status.s-Timeout{background:var(--amber-soft);color:var(--amber-ink)}.status.s-Assigned,.status.s-InProgress,.status.s-Accepted,.status.s-Approved,.status.s-CheckedIn,.status.s-Submitted,.status.s-Booked,.status.s-OnLeave{background:var(--info-soft);color:var(--info-ink)}.status.s-Resolved,.status.s-Active,.status.s-Paid,.status.s-Completed,.status.s-Received,.status.s-Closed,.status.s-Present,.status.s-Free,.status.s-Recorded,.status.s-CheckedOut,.status.s-Verified,.status.s-Success,.status.s-Refunded{background:var(--ok-soft);color:var(--ok-ink)}.status.s-Overdue,.status.s-Rejected,.status.s-Cancelled,.status.s-Suspended,.status.s-Absent,.status.s-Deactivated,.status.s-Blacklisted,.status.s-Deprecated,.status.s-Excused,.status.s-Failed{background:var(--warn-soft);color:var(--warn-ink)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}.toolbar .spacer{flex:1}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:16px 0 4px;flex-wrap:wrap}.tabs button{background:transparent;border:0;border-radius:8px 8px 0 0;padding:10px 16px;color:var(--muted);font-size:14px;font-weight:600;position:relative}.tabs button:hover{color:var(--ink-2);background:transparent}.tabs button.on{color:var(--brand-d)}.tabs button.on:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2.5px;border-radius:3px;background:var(--brand)}.form-row{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap;align-items:center}.form-row>*{flex:1;min-width:130px}.form-row button{flex:0 0 auto}.modal-backdrop{position:fixed;inset:0;background:#0f172a80;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;animation:fadein .18s var(--ease)}.modal-card{background:var(--panel);border-radius:var(--r-lg);padding:24px;width:min(680px,96vw);max-height:90vh;overflow:auto;box-shadow:var(--sh-lg);border:1px solid var(--line-2);animation:pop .2s var(--ease)}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.modal-card h3{margin:0 0 16px;font-size:18px}.modal-card .form-row{flex-direction:column;align-items:stretch}.modal-card .form-row>*{min-width:0}.modal-actions{display:flex;gap:10px;margin-top:18px;justify-content:flex-end}.empty{padding:40px 22px;text-align:center;color:var(--muted)}.empty .empty-ic{font-size:34px;opacity:.5;display:block;margin-bottom:8px}.skeleton{background:linear-gradient(100deg,var(--bg-2) 30%,#f8fafc 50%,var(--bg-2) 70%);background-size:200% 100%;animation:shimmer 1.3s infinite linear;border-radius:6px}@keyframes shimmer{to{background-position:-200% 0}}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}.toast-host{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:60}.toast{background:var(--ink);color:#fff;padding:12px 16px;border-radius:var(--r-sm);box-shadow:var(--sh-lg);font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:9px;min-width:240px;animation:slidein .25s var(--ease)}.toast.ok{background:#14532d}.toast.warn{background:#7f1d1d}.toast.info{background:var(--brand-d)}@keyframes slidein{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.meter{height:8px;border-radius:999px;background:var(--bg-2);overflow:hidden;margin-top:6px}.meter>span{display:block;height:100%;background:linear-gradient(90deg,var(--brand-l),var(--brand));border-radius:999px;transition:width .4s var(--ease)}.meter.hi>span{background:linear-gradient(90deg,#f87171,var(--warn))}.checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 16px;margin-top:8px}.checklist label{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-2)}.checklist input{width:auto}.modblock{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-top:12px;background:var(--panel)}.modblock h4{margin:0 0 4px;font-size:13px;text-transform:capitalize;color:var(--ink)}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media (max-width: 820px){.sidebar{width:66px}.sidebar .brand b,.sidebar nav a>*:not(span:first-child),.side-foot{display:none}.sidebar nav a{justify-content:center;padding:10px}.sidebar .nav-group{text-align:center;font-size:0;padding:8px 0 2px}.content{padding:16px}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.topbar .company{display:none}}@media print{.no-print,.sidebar,.topbar{display:none!important}.content{padding:0!important;overflow:visible!important;max-width:none!important}body:has(.rcpt-print-area) *{visibility:hidden!important}body:has(.rcpt-print-area) .rcpt-print-area,body:has(.rcpt-print-area) .rcpt-print-area *{visibility:visible!important}body:has(.rcpt-print-area) .rcpt-print-area{position:fixed;inset:0;margin:0;padding:0;background:#fff}}
