/* Bgum API · shared design system */
:root {
  --pink:#F568A0; --navy:#071327; --cyan:#42D9E8; --canvas:#F7F8FA; --surface:#FFFFFF;
  --text-secondary:#596477; --line:rgba(7,19,39,.11); --pink-soft:#FEF0F6; --cyan-soft:#EDFBFC;
  --nav-w:244px; --radius:14px; --shadow:0 3px 16px rgba(7,19,39,.025);
  font-family:Inter,system-ui,-apple-system,sans-serif; color:var(--navy); background:var(--canvas);
  font-synthesis:none; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;
}
* { box-sizing:border-box; }
body { margin:0; font-size:14px; line-height:1.6; }
button,input,textarea,select { font:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
::selection { background:#fad1e2; color:var(--navy); }
a { color:#963151; text-decoration:none; text-underline-offset:4px; }
a:hover { text-decoration:underline; }
:focus-visible { outline:3px solid var(--navy); outline-offset:3px; }
[hidden] { display:none !important; }
.app { min-height:100vh; }
#navHost { width:var(--nav-w); }
.main { margin-left:var(--nav-w); padding:34px clamp(24px,4vw,64px) 64px; min-width:0; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:100; padding:12px 20px; background:var(--navy); color:white; border-radius:8px; }
.skip-link:focus { top:12px; }
/* Navigation */
.nav { position:fixed; inset:0 auto 0 0; z-index:30; width:var(--nav-w); padding:26px 20px 20px; background:var(--surface); border-right:1px solid var(--line); display:flex; flex-direction:column; }
.nav-brand { display:flex; justify-content:center; align-items:center; padding:0 16px 23px; border-bottom:1px solid var(--line); }
.nav-brand img { display:block; width:134px; height:auto; }
.nav-menu { display:flex; flex:1; min-height:0; flex-direction:column; padding-top:25px; overflow-y:auto; }
.nav-section { margin:0 12px 10px; font:500 10px/1.5 'JetBrains Mono',monospace; letter-spacing:.15em; color:var(--text-secondary); text-transform:uppercase; }
.nav-section.manage { margin-top:30px; }
.nav-link { display:flex; align-items:center; gap:12px; min-height:46px; margin:3px 0; padding:11px 13px; border:1px solid transparent; border-radius:9px; color:var(--text-secondary); font-weight:500; transition:background .16s,color .16s; }
.nav-link svg { width:19px; height:19px; flex:none; stroke:currentColor; fill:none; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.nav-link:hover { color:var(--navy); background:var(--canvas); text-decoration:none; }
.nav-link.active { background:var(--pink-soft); border-color:#fbd1e2; color:var(--navy); font-weight:600; }
.nav-link.active svg { color:#a83263; }
.nav-link.active::after { content:''; margin-left:auto; width:6px; height:6px; border-radius:50%; background:var(--pink); }
.nav-spacer { flex:1; min-height:40px; }
.nav-note { border-top:1px solid var(--line); margin:0 11px 14px; padding-top:20px; font:500 11px/1.7 'JetBrains Mono',monospace; color:var(--text-secondary); }
.nav-note span { display:block; color:var(--navy); font-family:Inter,sans-serif; font-weight:600; font-size:12px; }
.nav-logout { text-align:left; width:100%; color:var(--text-secondary); }
.nav-mobile-toggle { display:none; }
/* Page hierarchy */
.page-context { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:35px; padding-bottom:19px; border-bottom:1px solid var(--line); }
.breadcrumb { display:flex; gap:10px; align-items:center; font-size:12px; color:var(--text-secondary); }
.breadcrumb a { color:var(--text-secondary); }
.breadcrumb .separator { color:#aab1bc; }
.console-label { font:500 10px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.12em; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.console-label::before { content:''; display:block; width:7px; height:7px; background:var(--cyan); border-radius:2px; }
h1,h2,h3 { font-family:'Space Grotesk',Inter,sans-serif; color:var(--navy); }
h1 { margin:0; font-size:clamp(30px,3.1vw,42px); line-height:1.15; letter-spacing:-1.6px; font-weight:700; }
h2 { font-size:24px; line-height:1.25; letter-spacing:-.6px; }
h3 { font-size:18px; font-weight:600; }
.page-header { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; flex-wrap:wrap; }
.page-description { margin:12px 0 0; color:var(--text-secondary); font-size:14px; max-width:640px; line-height:1.7; }
.main > .page-description { margin-bottom:26px; }
#status.muted { margin-top:9px; font-size:12px; }
.main > #status { margin:9px 0 24px; }
.muted { color:var(--text-secondary); font-size:12px; line-height:1.7; }
.row-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
/* Actions */
button { border:1px solid var(--line); border-radius:8px; min-height:40px; padding:9px 16px; background:var(--surface); color:var(--navy); font-weight:600; font-size:12px; line-height:1.5; cursor:pointer; transition:background .16s,border-color .16s,box-shadow .16s; }
button:hover:not(:disabled) { background:#f3f5f8; border-color:#aab3c0; }
button:active:not(:disabled) { transform:translateY(1px); }
button:disabled { opacity:.48; cursor:not-allowed; }
button[type=submit],#addBtn,#createItemBtn,#addMemberBtn,#addItemBtn,#addDirBtn,.ai-updater-btn { background:var(--pink); border-color:var(--pink); color:var(--navy); }
button[type=submit]:hover:not(:disabled),#addBtn:hover,#createItemBtn:hover,#addMemberBtn:hover,#addItemBtn:hover,#addDirBtn:hover,.ai-updater-btn:hover:not(:disabled) { background:#ed5794; border-color:#ed5794; }
#deleteBtn,#removeBtn { color:#963151; }
.generate-btn,.tag-generate-btn { background:var(--pink-soft); border-color:#f5c6d9; color:#7e2447; }
.generate-btn::before,.tag-generate-btn::before { content:'✦'; font-size:13px; margin-right:7px; }
.generate-btn:hover:not(:disabled),.tag-generate-btn:hover:not(:disabled) { background:#fbe0ec; border-color:var(--pink); }
.add-btn,.nested-add-btn { min-width:34px; min-height:34px; padding:5px 12px; background:var(--cyan-soft); border-color:#c5e9ed; font-size:17px; }
/* Tables */
.table-panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }
th { color:var(--text-secondary); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; background:#fcfcfd; white-space:nowrap; }
th,td { padding:16px 20px; border-bottom:1px solid var(--line); vertical-align:middle; }
td { line-height:1.6; }
td a { color:var(--text-secondary); }
td:first-child a,td:nth-child(2) a { color:var(--navy); font-weight:600; }
td a:hover { color:#963151; }
tr:last-child td { border-bottom:0; }
tbody tr { transition:background .12s; }
tbody tr:hover { background:#fcf6f9; }
tbody tr:has(input:checked) { background:var(--pink-soft); }
th:has(input[type=checkbox]),td:has(> input[type=checkbox]) { width:48px !important; padding-right:6px; }
td .muted { font-size:11px; }
/* Form surfaces */
.form { max-width:800px; padding:30px 34px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); margin-top:25px; }
#dynamicForm { max-width:1000px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; row-gap:26px; }
#dynamicForm > input[type=hidden] { display:none; }
#dynamicForm .form-group { min-width:0; }
#dynamicForm > .form-group:has(textarea),#dynamicForm > .form-group:has(.repeater-items),#dynamicForm > .form-group:has(input[type=file]),#dynamicForm > .form-group:has(.ai-updater-btn),#dynamicForm > .form-group:has(#submitBtn) { grid-column:1/-1; }
.form label { display:block; margin:21px 0 8px; font-size:12px; line-height:1.55; font-weight:600; color:var(--navy); }
.form > label:first-child,.form-group > label { margin-top:0; }
.form-group .helper:not(:empty) { margin-top:7px; max-width:640px; }
.form-group .helper:empty { display:none; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select { color:var(--navy); background:var(--surface); border:1px solid #d5dae2; border-radius:8px; padding:11px 12px; min-height:43px; outline:none; transition:border-color .16s,box-shadow .16s; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select { max-width:100%; }
.form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.form select { width:100%; min-width:0; }
input::placeholder,textarea::placeholder { color:#818b9b; font-size:12px; opacity:1; }
input:focus,textarea:focus,select:focus { border-color:#c83f79; box-shadow:0 0 0 3px rgba(245,104,160,.14); }
input:focus-visible,textarea:focus-visible,select:focus-visible { outline:2px solid #963151; outline-offset:2px; }
input[type=checkbox],input[type=radio] { width:16px; height:16px; margin:0; vertical-align:middle; accent-color:#aa3466; flex:none; cursor:pointer; }
select { cursor:pointer; font-size:13px; }
textarea { width:640px; max-width:100%; height:160px; resize:none; overflow:auto; line-height:1.7; flex:0 0 auto !important; }
.form-group > div:has(> textarea) { flex-wrap:wrap; gap:10px !important; }
.form-group > div:has(> textarea) > [role=status] { flex-basis:100%; }
.form-row { display:flex; align-items:center; gap:10px; margin-top:30px; border-top:1px solid var(--line); padding-top:22px; }
.inline { display:flex; align-items:center; gap:9px; margin-top:16px; }
.inline input { width:auto; }
.form-group:has(> #submitBtn) { border-top:1px solid var(--line); padding-top:24px; }
#submitBtn,#saveBtn { min-width:116px; }
.form-group:has(> .ai-updater-btn) { padding:22px; background:var(--cyan-soft); border:1px solid #ccecef; border-radius:10px; }
.ai-updater-btn::before { content:'✦'; margin-right:8px; }
[role=status]:not(:empty) { color:var(--text-secondary); font-size:12px; line-height:1.6; padding-top:8px; }
.err { color:#a22548; font-size:13px; white-space:pre-wrap; margin-top:12px; }
.err:empty { display:none; }
.repeater-items > div { gap:8px !important; }
.repeater-items input { min-width:80px !important; }
.repeater-items button { flex-shrink:0; }
.repeater-items [role=status] { flex-basis:100%; }
.repeater-items [data-top-row-id] { border-color:var(--line) !important; border-radius:10px !important; background:#fcfcfd; padding:16px !important; }
input[type=file] { width:100%; background:#fcfcfd; border-style:dashed; font-size:12px; }
input[type=file]::file-selector-button { background:var(--canvas); color:var(--navy); border:1px solid var(--line); border-radius:6px; padding:6px 10px; margin-right:12px; cursor:pointer; }
code,pre,#endpoint,#systemPrompt,#locationLabel { font-family:'JetBrains Mono',monospace; font-size:12px; }
#addPanel { background:var(--surface); padding:24px !important; border:1px solid #efb6ce !important; border-radius:12px !important; box-shadow:var(--shadow); }
#addTypeSelect { min-width:min(320px,100%) !important; }
/* Schema index */
body[data-page=schema] .card { padding:0 !important; }
#list { list-style:none; margin:0 !important; padding:0 !important; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
#list li { position:relative; min-height:184px; padding:25px; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); transition:border-color .16s,transform .16s; }
#list li:hover { border-color:#e9a7c3; transform:translateY(-2px); }
#list li>a { display:block; margin:8px 30px 12px 0; font:600 19px 'Space Grotesk',sans-serif; color:var(--navy); }
#list li>a::after { content:'↗'; position:absolute; top:23px; right:25px; color:#a53665; font:400 22px Inter,sans-serif; }
#list li>span.muted { position:absolute; bottom:22px; left:25px; font:500 12px 'JetBrains Mono',monospace; color:#963151; background:var(--pink-soft); border-radius:5px; padding:3px 8px; }
.schema-description { display:block; color:var(--text-secondary); font-size:12px; max-width:240px; padding-bottom:38px; line-height:1.65; }
/* Sign-in */
body.auth-page { min-height:100vh; display:grid; place-items:center; padding:32px; }
.auth-layout { width:min(100%,1000px); display:grid; grid-template-columns:1fr 1fr; background:white; border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:0 12px 45px rgba(7,19,39,.045); }
.auth-brand-panel { padding:48px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:35px; background:var(--pink-soft); }
.auth-logo { width:166px; height:auto; }
.auth-brand-panel h2 { margin:0 0 16px; font-size:39px; letter-spacing:-1.6px; line-height:1.13; }
.auth-brand-panel p { font-size:14px; color:var(--text-secondary); max-width:290px; }
.auth-caption { font:500 10px 'JetBrains Mono',monospace; letter-spacing:.12em; text-transform:uppercase; color:#963151; }
.auth-card { padding:64px 48px; }
.auth-card h1 { font-size:30px; letter-spacing:-1px; }
.auth-card .page-description { margin-bottom:30px; }
.auth-card label { display:block; font-size:12px; font-weight:600; margin:18px 0 8px; }
.auth-card input { width:100%; }
.auth-card #submitBtn { width:100%; margin-top:25px; }
.auth-card .status { min-height:24px; margin-top:16px; font-size:13px; color:#963151; }
.auth-card .fail { font-size:14px; }
.auth-card .hint { font-size:12px; color:var(--text-secondary); }
/* Adapt without squeezing controls or clipping tables. */
@media(min-width:1700px) { .main { max-width:1600px; } }
@media(max-width:1180px) { #list { grid-template-columns:repeat(2,minmax(0,1fr)); } #dynamicForm { column-gap:22px; padding:26px; } }
@media(max-width:900px) {
  :root { --nav-w:204px; }
  .nav { padding:24px 14px 16px; } .nav-brand img { width:118px; }
  .main { padding:28px 24px 48px; }
  #dynamicForm { grid-template-columns:1fr; }
  .page-header { align-items:flex-start; }
}
@media(max-width:700px) {
  #navHost { width:100%; min-height:82px; }
  .nav { inset:0 0 auto; width:100%; min-height:82px; padding:10px 20px; flex-direction:row; align-items:center; justify-content:space-between; border-right:0; border-bottom:1px solid var(--line); }
  .nav-brand { padding:0; border:0; justify-content:flex-start; }
  .nav-brand img { width:72px; transition:width .2s; }
  .nav-mobile-toggle { display:block; }
  .nav-menu { display:none; position:absolute; left:0; right:0; top:100%; max-height:calc(100dvh - 84px); background:white; border-bottom:1px solid var(--line); padding:15px 20px 20px; }
  .nav.is-open .nav-menu { display:flex; }
  .nav-spacer { min-height:14px; } .nav-note { display:none; } .nav-section.manage { margin-top:14px; }
  .main { margin:0; padding:24px 20px 42px; }
  .page-context { margin-bottom:27px; padding-bottom:16px; } .console-label { font-size:9px; }
  h1 { font-size:32px; letter-spacing:-1px; }
  .page-header { gap:20px; margin-bottom:22px; } .row-actions { gap:7px; }
  .row-actions button { padding:8px 11px; font-size:11px; }
  .form,#dynamicForm { padding:22px 18px; border-radius:12px; margin-top:22px; }
  #dynamicForm { row-gap:23px; }
  .form-group > div:has(> textarea) { display:block !important; }
  .generate-btn { margin-top:9px; }
  .repeater-items > div { flex-wrap:wrap; }
  .repeater-items > div > input { flex-basis:calc(100% - 55px) !important; }
  .repeater-items > div > .tag-generate-btn { margin-left:42px; }
  .repeater-items [data-top-row-id] > div { flex-wrap:wrap; }
  .form-group:has(> .ai-updater-btn) { padding:17px; }
  #list { grid-template-columns:1fr; gap:12px; } #list li { min-height:165px; }
  th,td { padding:14px; } table { min-width:560px; }
  body.auth-page { padding:20px; }
  .auth-layout { max-width:460px; grid-template-columns:1fr; }
  .auth-brand-panel { padding:25px 30px; gap:15px; flex-direction:row; align-items:center; }
  .auth-logo { width:105px; } .auth-brand-panel h2,.auth-brand-panel p { display:none; }
  .auth-card { padding:30px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }

/* Shared personal preferences */
.nav [hidden]{display:none!important}.nav-utility{display:block;margin:5px 12px;padding:10px 12px;border:0;border-radius:8px;text-align:left;font:500 12px Inter,sans-serif;color:#071327;background:transparent;text-decoration:none;cursor:pointer}.nav-utility:hover{background:#fce7ef}.nav-utility[aria-pressed=true]{color:#a21f56}.nav-status{font-size:11px;margin:0 20px;color:#6b7280}.preferences-panel{max-width:960px;margin-top:40px;padding:28px;background:#fff;border:1px solid #07132715;border-radius:16px}.preferences-panel h2{margin-top:0}.preferences-panel p{color:#536072;font-size:14px;line-height:1.6}.preferences-form section{margin:28px 0}.preferences-form fieldset{border:1px solid #07132715;border-radius:10px;margin:14px 0;padding:12px 18px}.preferences-form legend{font-weight:600;padding:0 8px}.preference-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;cursor:pointer;font-weight:500}.preference-toggle input[role=switch]{appearance:none;width:40px;height:24px;min-width:40px;border:0;border-radius:20px;background:#c9ced7;position:relative;cursor:pointer;margin:0}.preference-toggle input[role=switch]::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;background:white;border-radius:50%;transition:transform .15s}.preference-toggle input[role=switch]:checked{background:#F568A0}.preference-toggle input[role=switch]:checked::after{transform:translateX(16px)}.preference-toggle input:disabled{opacity:.4;cursor:default}.preferences-form details{border-bottom:1px solid #07132715;padding:14px 0}.preferences-form summary{font-weight:600;cursor:pointer}.preferences-form label[for=homepagePreference]{display:block;margin:12px 0}.preferences-form #homepagePreference{width:100%;font:13px 'JetBrains Mono',monospace}.preferences-form input:focus-visible,.nav-utility:focus-visible{outline:2px solid #071327;outline-offset:3px}@media(max-width:600px){.preferences-panel{padding:18px}.preference-toggle{font-size:14px}}

.nav-note .nav-utility{margin:0 0 16px;padding:0;font-size:12px}.nav-note [data-workspace-name]{display:inline-block}.creation-types{padding-left:18px}.creation-types input:disabled{opacity:.4}
