@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{font-family:system-ui,sans-serif;background:#111;color:#eee}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:#1b1b1b;border-bottom:1px solid #444}h1{font-size:20px;margin:0}main{padding:18px}.card{max-width:360px;margin:10vh auto;padding:22px;background:#1d1d1d;border:1px solid #444;border-radius:8px}input,select,textarea,button{font:inherit;background:#262626;color:#eee;border:1px solid #555;border-radius:5px;padding:8px}button{cursor:pointer}form input{box-sizing:border-box;width:100%;margin:5px 0}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar #q{min-width:260px;flex:1}.stats{padding:12px 0}.tablewrap{overflow:auto;border:1px solid #444}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:8px;border-bottom:1px solid #333;text-align:left;vertical-align:top}th{position:sticky;top:0;background:#202020}td.url{max-width:520px;word-break:break-all}a{color:#8fc7ff}.pager{display:flex;justify-content:center;gap:14px;align-items:center;padding:14px}.error{color:#ff9b9b}dialog{background:#1d1d1d;color:#eee;border:1px solid #666;border-radius:8px;min-width:360px}dialog label{display:block;margin:10px 0}dialog textarea{box-sizing:border-box;width:100%;height:100px}dialog select{width:100%}

.actions{white-space:nowrap;width:1%}.editBtn{padding:5px 10px}.editBtn:hover{background:#333}.actions{vertical-align:middle}

#usersDialog{width:min(900px,92vw)}.usersHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.usersHead h2{margin:0}.userCreate{display:grid;grid-template-columns:1fr 1.4fr 140px auto;gap:8px;margin:16px 0}.usersTable{max-height:55vh}.userName{font-weight:700;margin-bottom:12px}@media(max-width:760px){.userCreate{grid-template-columns:1fr}.usersTable{max-height:48vh}}

.modelAccess{display:flex;flex-direction:column;gap:4px;min-width:220px}.modelAccess select{min-height:110px}.modelAccess small{opacity:.7;font-size:11px}.usersTable td:nth-child(5){max-width:360px;white-space:normal}
.usersTable td:last-child{white-space:nowrap}.deleteUserBtn{margin-left:6px;color:#ffb1b1;border-color:#8a4444}.deleteUserBtn:hover{background:#542929}

#app thead th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
#app thead th.sortable::after{content:" ↕";opacity:.45}
#app thead th.sortAsc::after{content:" ▲";opacity:1}
#app thead th.sortDesc::after{content:" ▼";opacity:1}

/* User Management create-row sizing */
.userCreate{align-items:start}
.userCreate>input,.userCreate>select{height:42px;box-sizing:border-box;align-self:start}
.userCreate>.modelAccess{align-self:start}

.filter{position:relative;min-width:140px}.filter summary{padding:9px;background:#262626;border:1px solid #555;border-radius:5px;cursor:pointer}.filterOptions{position:absolute;z-index:5;top:100%;left:0;min-width:240px;max-width:80vw;max-height:320px;overflow:auto;padding:12px;background:#202020;border:1px solid #666;box-shadow:0 8px 24px #0009}.filterOptions label{display:flex;align-items:center;gap:8px;padding:5px;overflow-wrap:anywhere}.filterOptions button{margin-bottom:8px}#columnChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}#columnChoices label{display:flex;gap:8px;align-items:center}#settingsDialog{max-width:560px;min-width:0;width:85vw}#settingsDialog form{display:flex;justify-content:flex-end;gap:8px}input[type=checkbox]{width:auto}summary:focus-visible,th:focus-visible{outline:2px solid #8fc7ff}

#linksDialog{width:min(750px,85vw);min-width:0;max-height:85vh;overflow:auto}#linksDialog label{display:block}#linksDialog input{box-sizing:border-box;max-width:100%}#createdLink{width:100%}#linkList{margin:16px 0;max-height:300px;overflow:auto}.accessLinkRow{display:flex;align-items:center;gap:12px;border-top:1px solid #444;padding:8px 0}.accessLinkRow p{flex:1;overflow-wrap:anywhere}

/* Pricing-page theme */
:root{color-scheme:dark;--ink:#eef8f4;--muted:#9db1aa;--border:rgba(171,221,202,.16);--accent:#4de3a2;--accent-soft:rgba(77,227,162,.11);--blue:#70b9ff;font-family:"DM Sans",system-ui,sans-serif;background:#071219;color:var(--ink)}
*{box-sizing:border-box}body{min-height:100vh;background:radial-gradient(circle at 82% 12%,rgba(28,111,101,.34),transparent 28rem),radial-gradient(circle at 10% 65%,rgba(30,82,119,.24),transparent 30rem),linear-gradient(155deg,#071219,#091820 48%,#061016);background-attachment:fixed}body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;opacity:.2;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 85%)}
a{color:var(--blue);text-underline-offset:3px}header{padding:18px clamp(20px,4vw,48px);border-color:var(--border);background:rgba(7,18,25,.78);box-shadow:0 12px 35px #0003;backdrop-filter:blur(16px)}h1,h2{font-family:Manrope,sans-serif;letter-spacing:-.025em}h1{font-size:clamp(1.25rem,3vw,1.55rem)}header .brand{display:block;width:min(310px,52vw);line-height:0}header .brand-logo{display:block;width:100%;height:auto}#who{color:var(--muted)}main{width:min(1500px,calc(100% - 40px));margin:auto;padding:28px 0 56px}
.card{max-width:390px;padding:30px;border-color:var(--border);border-radius:24px;background:linear-gradient(145deg,rgba(19,42,53,.96),rgba(10,26,34,.94));box-shadow:0 30px 80px #0005}.card p,.stats,.pager,.modelAccess small,.accessLinkRow p{color:var(--muted)}
input,select,textarea,button{border-color:rgba(171,221,202,.24);border-radius:10px;background:rgba(255,255,255,.055);color:var(--ink);transition:border-color .18s,background .18s,transform .18s}input::placeholder,textarea::placeholder{color:#81968f}input:hover,select:hover,textarea:hover{border-color:rgba(77,227,162,.38)}input:focus,select:focus,textarea:focus,summary:focus-visible,th:focus-visible{outline:2px solid rgba(77,227,162,.72);outline-offset:2px}button{font-weight:700}button:hover:not(:disabled){border-color:rgba(77,227,162,.48);background:var(--accent-soft);color:var(--accent);transform:translateY(-1px)}button:disabled{opacity:.5}
.toolbar{padding:16px;border:1px solid var(--border);border-radius:18px;background:rgba(10,28,37,.82);box-shadow:0 18px 45px #0003;backdrop-filter:blur(14px)}.stats{padding:16px 4px}.tablewrap{border-color:var(--border);border-radius:18px;background:rgba(7,22,29,.88);box-shadow:0 24px 70px #0004}th,td{padding:11px 12px;border-color:var(--border)}th{z-index:2;background:#102b35;color:var(--ink);font-size:.74rem;letter-spacing:.045em;text-transform:uppercase}tbody tr{transition:background .15s}tbody tr:hover{background:rgba(77,227,162,.045)}
dialog{padding:26px;border-color:var(--border);border-radius:22px;background:#0b202a;color:var(--ink);box-shadow:0 30px 90px #000b}dialog::backdrop{background:#02090dcc;backdrop-filter:blur(5px)}.filter summary{border-color:rgba(171,221,202,.24);border-radius:10px;background:rgba(255,255,255,.055)}.filter[open] summary{border-color:rgba(77,227,162,.48);color:var(--accent)}.filterOptions{top:calc(100% + 6px);border-color:rgba(77,227,162,.3);border-radius:14px;background:#0b202a;box-shadow:0 18px 50px #000b}input[type=checkbox]{accent-color:var(--accent)}#app thead th.sortAsc::after,#app thead th.sortDesc::after{color:var(--accent)}.accessLinkRow{border-color:var(--border)}
@media(max-width:760px){header{align-items:flex-start;flex-direction:column;gap:5px}main{width:min(100% - 24px,700px);padding-top:18px}.toolbar>*{flex:1 1 auto}.toolbar #q{min-width:100%}.card{padding:24px}.tablewrap{border-radius:14px}dialog{padding:21px}}

/* The blurred toolbar creates a stacking context; keep its menus above sticky table headers. */
.toolbar{position:relative;z-index:3}
.filter[open]{z-index:1}
