/* Desk Core design system, shared by Elion Desk and OUV Desk.
   Each app keeps its own brand color in --blue; everything else comes from here. */
@font-face{font-family:'Geist';src:url('./fonts/Geist-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('./fonts/GeistMono-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

body.desk-core-ui{
  --desk-font:'Geist',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --desk-mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --desk-accent:var(--blue,#5b45f0);
  --desk-accent-soft:color-mix(in srgb,var(--desk-accent) 8%,#fff);
  --desk-accent-line:color-mix(in srgb,var(--desk-accent) 22%,#fff);
  --desk-ink:#18181b;--desk-text:#3f3f46;--desk-muted:#71717a;--desk-line:#e4e4e7;--desk-line-soft:#f1f1f3;
  --desk-canvas:#fafafa;--desk-hover:#f4f4f5;--desk-surface:#fff;
  --desk-focus:color-mix(in srgb,var(--desk-accent) 40%,transparent);
  --desk-shadow-xs:0 1px 2px rgb(24 24 27 / .05);
  --desk-shadow-lg:0 24px 60px -18px rgb(24 24 27 / .28),0 2px 8px rgb(24 24 27 / .06);
  --desk-r-control:8px;--desk-r-surface:12px;
  --desk-ease:cubic-bezier(.23,1,.32,1);--desk-drawer:cubic-bezier(.32,.72,0,1);
  /* App variables re-pointed at the shared palette so product CSS follows along. */
  --ink:var(--desk-ink);--slate:var(--desk-text);--muted:var(--desk-muted);--line:var(--desk-line);--bg:var(--desk-hover);
  --blue-soft:var(--desk-accent-soft);--violet:var(--desk-accent);--violet-soft:var(--desk-accent-soft);
  --green:#15803d;--green-soft:#ecfdf3;--red:#c0262d;--red-soft:#fef2f2;--amber:#a16207;--amber-soft:#fefbe8;
  --r:var(--desk-r-surface);--ease:var(--desk-ease);
  font-family:var(--desk-font);font-size:14px;line-height:1.5;color:var(--desk-ink);background:var(--desk-surface);
  font-feature-settings:'ss01','cv11';text-rendering:optimizeLegibility
}
body.desk-core-ui input,body.desk-core-ui select,body.desk-core-ui textarea,body.desk-core-ui button{font-family:inherit}
body.desk-core-ui ::selection{background:var(--desk-accent-line)}

/* Shell */
body.desk-core-ui .shell{min-width:0;background:var(--desk-surface)}
body.desk-core-ui .top{border-bottom:1px solid var(--desk-line);background:var(--desk-surface)}
body.desk-core-ui .side{border-right:1px solid var(--desk-line);background:var(--desk-canvas)}
body.desk-core-ui .main{min-width:0}
body.desk-core-ui .side a,body.desk-core-ui .side .navb{border-radius:6px;color:var(--desk-text);font-weight:500;font-size:13.5px;transition:background-color .15s ease,color .15s ease}
body.desk-core-ui .side a svg,body.desk-core-ui .side .navb svg{color:var(--desk-muted)}
body.desk-core-ui .side a:hover,body.desk-core-ui .side .navb:hover{background:rgb(24 24 27 / .05);color:var(--desk-ink)}
body.desk-core-ui .side a.on,body.desk-core-ui .side a[aria-current="page"]{background:var(--desk-surface);color:var(--desk-ink);font-weight:600;box-shadow:var(--desk-shadow-xs),0 0 0 1px var(--desk-line)}
body.desk-core-ui .side a.on svg,body.desk-core-ui .side a[aria-current="page"] svg{color:var(--desk-accent)}
body.desk-core-ui .side .grp{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--desk-muted)}
body.desk-core-ui .side a .pill{background:transparent;color:var(--desk-muted);font-weight:500;font-variant-numeric:tabular-nums}

/* Page header */
body.desk-core-ui .ph{align-items:flex-end;margin-bottom:20px}
body.desk-core-ui .ph h1{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
body.desk-core-ui .ph p{color:var(--desk-muted);font-size:13.5px;margin-top:4px}
body.desk-core-ui .ph .acts{gap:8px;align-items:center}

/* Buttons */
body.desk-core-ui .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:32px;padding:0 12px;border:1px solid var(--desk-line);border-radius:var(--desk-r-control);background:var(--desk-surface);color:var(--desk-ink);font-size:13px;font-weight:500;line-height:1;box-shadow:var(--desk-shadow-xs);transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .16s var(--desk-ease)}
body.desk-core-ui .btn:hover{background:var(--desk-hover);border-color:#d4d4d8}
body.desk-core-ui .btn:active:not(:disabled){transform:scale(.97)}
body.desk-core-ui .btn.primary{background:var(--desk-ink);border-color:var(--desk-ink);color:#fff}
body.desk-core-ui .btn.primary:hover{background:#27272a;border-color:#27272a}
body.desk-core-ui .btn.blue{background:var(--desk-accent);border-color:var(--desk-accent);color:#fff;box-shadow:var(--desk-shadow-xs)}
body.desk-core-ui .btn.blue:hover{background:color-mix(in srgb,var(--desk-accent) 88%,#000)}
body.desk-core-ui .btn.ghost{border-color:transparent;background:transparent;box-shadow:none}
body.desk-core-ui .btn.ghost:hover{background:var(--desk-hover)}
body.desk-core-ui .btn.danger{color:var(--red)}
body.desk-core-ui .btn.danger:hover{background:var(--red-soft);border-color:#fecaca}
body.desk-core-ui .btn.sm{min-height:28px;padding:0 10px;font-size:12.5px;border-radius:7px}
body.desk-core-ui .btn.lg{min-height:40px;padding:0 18px;font-size:14px}
body.desk-core-ui .btn:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}
body.desk-core-ui .btn svg.i{width:15px;height:15px}
body.desk-core-ui .iconbtn{width:30px;height:30px;border-radius:7px;border:0;background:transparent;color:var(--desk-muted);display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}
body.desk-core-ui .iconbtn:hover{background:var(--desk-hover);color:var(--desk-ink)}
body.desk-core-ui .iconbtn:disabled{opacity:.45;cursor:not-allowed}
body.desk-core-ui .iconbtn.done{color:var(--green)}

/* Focus */
body.desk-core-ui :is(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--desk-accent);outline-offset:2px}
body.desk-core-ui :is(input,select,textarea):focus-visible{outline:none;border-color:var(--desk-accent)!important;box-shadow:0 0 0 3px var(--desk-focus)}
body.desk-core-ui .search input:focus-visible{border-color:initial!important;box-shadow:none}

/* Fields */
body.desk-core-ui .field label{font-size:12.5px;font-weight:500;color:var(--desk-text)}
body.desk-core-ui .field input,body.desk-core-ui .field select,body.desk-core-ui .field textarea,body.desk-core-ui input.input,body.desk-core-ui .notebox input{border:1px solid var(--desk-line);border-radius:var(--desk-r-control);background:var(--desk-surface);padding:8px 11px;font-size:13.5px;transition:border-color .15s ease,box-shadow .15s ease}
body.desk-core-ui .search{height:32px;border-radius:var(--desk-r-control);border-color:var(--desk-line);box-shadow:var(--desk-shadow-xs)}
body.desk-core-ui .search:focus-within{border-color:var(--desk-accent);box-shadow:0 0 0 3px var(--desk-focus)}
body.desk-core-ui .search svg{color:var(--desk-muted)}
body.desk-core-ui .status-select{height:28px;border:1px solid var(--desk-line);border-radius:7px;background-color:var(--desk-surface);padding:0 24px 0 9px;font-size:12.5px;font-weight:500;cursor:pointer}
body.desk-core-ui input[type=checkbox]{accent-color:var(--desk-accent)}

/* Tabs */
body.desk-core-ui .btabs,body.desk-core-ui .nr-tabs{gap:2px;border-bottom:1px solid var(--desk-line);margin-bottom:20px}
body.desk-core-ui .btabs a,body.desk-core-ui .nr-tabs button{padding:9px 10px;font-size:13.5px;font-weight:500;color:var(--desk-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}
body.desk-core-ui .btabs a:hover,body.desk-core-ui .nr-tabs button:hover{color:var(--desk-ink)}
body.desk-core-ui .btabs a.on,body.desk-core-ui .nr-tabs button.on{color:var(--desk-ink);border-bottom-color:var(--desk-ink)}
body.desk-core-ui .tabs{background:var(--desk-hover);border:0;border-radius:var(--desk-r-control);padding:3px}
body.desk-core-ui .tabs button{border-radius:6px;font-weight:500;color:var(--desk-muted);transition:color .15s ease,background-color .15s ease}
body.desk-core-ui .tabs button.on{background:var(--desk-surface);color:var(--desk-ink);box-shadow:var(--desk-shadow-xs),0 0 0 1px var(--desk-line)}

/* Stat strip: one surface split by hairlines, not a row of cards */
body.desk-core-ui .stats,body.desk-core-ui .nr-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--desk-line);border-radius:var(--desk-r-surface);background:var(--desk-surface);overflow:hidden;margin-bottom:20px}
body.desk-core-ui .stats .stat,body.desk-core-ui .nr-stats>div{border:0;border-left:1px solid var(--desk-line);border-radius:0;padding:14px 18px;background:transparent}
body.desk-core-ui .stats .stat:first-child,body.desk-core-ui .nr-stats>div:first-child{border-left:0}
body.desk-core-ui .stat small{font-size:12.5px;font-weight:500;color:var(--desk-muted)}
body.desk-core-ui .stat b,body.desk-core-ui .nr-stats b{font-size:22px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px}
body.desk-core-ui .stat .sub,body.desk-core-ui .nr-stats span{font-size:12px;color:var(--desk-muted)}

/* Tables */
body.desk-core-ui .card,body.desk-core-ui .tblwrap,body.desk-core-ui .ct-table-wrap{border-color:var(--desk-line);border-radius:var(--desk-r-surface);background:var(--desk-surface)}
body.desk-core-ui .tblwrap{border:1px solid var(--desk-line)}
body.desk-core-ui .tbl th,body.desk-core-ui .ct-table th{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--desk-muted);background:var(--desk-canvas);padding:8px 12px;border-bottom:1px solid var(--desk-line)}
body.desk-core-ui .tbl td,body.desk-core-ui .ct-table td{vertical-align:middle;padding:9px 12px;border-bottom:1px solid var(--desk-line-soft);font-size:13.5px}
body.desk-core-ui .tbl tbody tr:last-child td{border-bottom:0}
body.desk-core-ui .tbl tr.r:hover,body.desk-core-ui .tbl tbody tr:hover{background:#fafafa}
body.desk-core-ui .tbl tr.r.sel,body.desk-core-ui .tbl tr.r.open td{background:var(--desk-accent-soft)}
body.desk-core-ui .tbl th .arr{color:var(--desk-ink)}
body.desk-core-ui .tf{padding:10px 12px;border-top:1px solid var(--desk-line);font-size:12.5px;color:var(--desk-muted)}
body.desk-core-ui .pager button,body.desk-core-ui .tf select{border-radius:7px;border-color:var(--desk-line)}

/* Badges */
body.desk-core-ui .badge{border:0;border-radius:6px;padding:2px 7px;font-size:12px;font-weight:500;background:var(--desk-hover);color:var(--desk-text)}
body.desk-core-ui .badge.large{background:var(--desk-accent-soft);color:var(--desk-accent)}
body.desk-core-ui .badge.medium{background:#f0f0f3;color:#3f3f46}
body.desk-core-ui .badge.contacted{background:var(--desk-accent-soft);color:var(--desk-accent)}
body.desk-core-ui .badge.closed,body.desk-core-ui .badge.active,body.desk-core-ui .badge.approved,body.desk-core-ui .badge.paid,body.desk-core-ui .badge.ready{background:var(--green-soft);color:var(--green)}
body.desk-core-ui .badge.refused,body.desk-core-ui .badge.blocked,body.desk-core-ui .badge.declined,body.desk-core-ui .badge.failed{background:var(--red-soft);color:var(--red)}
body.desk-core-ui .badge.paused,body.desk-core-ui .badge.pending,body.desk-core-ui .badge.setup{background:var(--amber-soft);color:var(--amber)}
body.desk-core-ui .beta{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;padding:2px 8px;border-radius:6px;background:var(--desk-hover);color:var(--desk-text)}

/* Cards, notes, empty states */
body.desk-core-ui .card{border:1px solid var(--desk-line);box-shadow:none}
body.desk-core-ui .card .ch{padding:12px 16px;font-size:13.5px;font-weight:600;border-bottom-color:var(--desk-line)}
body.desk-core-ui .card .cb{padding:16px}
body.desk-core-ui .note{background:var(--desk-canvas);border:1px solid var(--desk-line);border-radius:var(--desk-r-control);color:var(--desk-text)}
body.desk-core-ui .empty{padding:56px 20px;color:var(--desk-muted)}
body.desk-core-ui .empty b{font-size:15px;font-weight:600;color:var(--desk-ink)}
body.desk-core-ui .chip{border-radius:7px;border-color:var(--desk-line);box-shadow:var(--desk-shadow-xs)}
body.desk-core-ui .chip .v{border-radius:5px;background:var(--desk-hover)}

/* Menus */
body.desk-core-ui .pop{border-radius:10px;border-color:var(--desk-line);box-shadow:var(--desk-shadow-lg);padding:4px;transform-origin:top left;animation:desk-pop .16s var(--desk-ease)}
body.desk-core-ui .pop.right{transform-origin:top right}
body.desk-core-ui .pop .it{border-radius:6px;padding:7px 9px;font-size:13px}
body.desk-core-ui .pop .it:hover{background:var(--desk-hover)}
body.desk-core-ui .pop .it.on{background:var(--desk-hover);color:var(--desk-ink);font-weight:600}
body.desk-core-ui .pop .hd{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--desk-muted)}
@keyframes desk-pop{from{opacity:0;transform:scale(.97) translateY(-2px)}}

/* Bulk bar */
body.desk-core-ui .bulk{background:var(--desk-ink);border-radius:10px;padding:8px 10px 8px 14px;box-shadow:var(--desk-shadow-lg);font-size:13px}
body.desk-core-ui .bulk .btn{background:rgb(255 255 255 / .1);border-color:rgb(255 255 255 / .16);color:#fff;box-shadow:none}
body.desk-core-ui .bulk .btn:hover{background:rgb(255 255 255 / .18)}
body.desk-core-ui .bulk .lnk{color:#d4d4d8}

/* Drawer and modal */
body.desk-core-ui .ov{background:rgb(24 24 27 / .24);backdrop-filter:none;transition:opacity .2s ease}
body.desk-core-ui .panel{top:8px;right:8px;bottom:8px;border-radius:14px;border:1px solid var(--desk-line);box-shadow:var(--desk-shadow-lg);transition:transform .28s var(--desk-drawer)}
body.desk-core-ui .panel .phd{padding:10px 14px;border-bottom-color:var(--desk-line)}
body.desk-core-ui .panel .pbody{padding:20px 24px 28px}
body.desk-core-ui .panel h2{font-size:20px;font-weight:600;letter-spacing:-.02em}
body.desk-core-ui .panel h3{font-size:14px;font-weight:600;margin:24px 0 10px}
body.desk-core-ui .panel .buybox{background:var(--desk-canvas);border-color:var(--desk-line);border-radius:var(--desk-r-surface);padding:10px 12px}
body.desk-core-ui .mov{background:rgb(24 24 27 / .32);backdrop-filter:none}
body.desk-core-ui .modal{border-radius:14px;border:1px solid var(--desk-line);box-shadow:var(--desk-shadow-lg);animation:desk-modal .2s var(--desk-ease)}
body.desk-core-ui .modal .mh h3{font-size:15px;font-weight:600;letter-spacing:-.01em}
@keyframes desk-modal{from{opacity:0;transform:scale(.97)}}
body.desk-core-ui .kv .k,body.desk-core-ui .kv .v{border-bottom-color:var(--desk-line-soft)}
body.desk-core-ui .kv .k{color:var(--desk-muted)}
body.desk-core-ui .msg{background:var(--desk-canvas);border-color:var(--desk-line);border-radius:var(--desk-r-control)}

/* Toast */
body.desk-core-ui .toast{max-width:min(560px,calc(100vw - 32px));text-align:center;background:var(--desk-ink);border-radius:10px;font-size:13px;font-weight:500;padding:10px 14px;box-shadow:var(--desk-shadow-lg);transition:opacity .2s ease,transform .2s var(--desk-ease)}

/* Loading */
body.desk-core-ui .spin{border-top-color:var(--desk-ink);animation-duration:.6s}
body.desk-core-ui .skel{display:block;height:12px;border-radius:4px;background:linear-gradient(90deg,var(--desk-hover) 25%,#ececef 50%,var(--desk-hover) 75%);background-size:200% 100%;animation:desk-skel 1.2s linear infinite}
@keyframes desk-skel{to{background-position:-200% 0}}

body.desk-core-ui [aria-current="page"]{font-weight:600}
@media(hover:none){body.desk-core-ui .btn:active:not(:disabled){transform:none}}
@media(prefers-reduced-motion:reduce){body.desk-core-ui *,body.desk-core-ui *:before,body.desk-core-ui *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media(max-width:1100px){body.desk-core-ui .stats,body.desk-core-ui .nr-stats{grid-template-columns:repeat(2,minmax(0,1fr))}body.desk-core-ui .stats .stat:nth-child(3),body.desk-core-ui .nr-stats>div:nth-child(3){border-left:0}body.desk-core-ui .stats .stat:nth-child(n+3),body.desk-core-ui .nr-stats>div:nth-child(n+3){border-top:1px solid var(--desk-line)}}
@media(max-width:900px){body.desk-core-ui .main{overflow-x:hidden}body.desk-core-ui .ph{align-items:stretch}}
