/* =========================================================
   Adlexone layout — shared structure. Skins set tokens in each theme's theme.css
   Newsreader is licensed under the SIL Open Font License. See layouts/fonts/OFL.txt.
   ========================================================= */

@font-face{
    font-family:"Newsreader";
    font-style:normal;
    font-weight:500;
    font-display:swap;
    src:url("../fonts/newsreader-500.woff2") format("woff2");
}
@font-face{
    font-family:"Newsreader";
    font-style:normal;
    font-weight:600;
    font-display:swap;
    src:url("../fonts/newsreader-600.woff2") format("woff2");
}
@font-face{
    font-family:"Newsreader";
    font-style:normal;
    font-weight:700;
    font-display:swap;
    src:url("../fonts/newsreader-700.woff2") format("woff2");
}

/* ---------- Base ---------- */
:root{
    --surface:#fff;
    --mix-base:#fff;
    --field-border:color-mix(in srgb, var(--form-border, #d6cfc5) 55%, var(--ink, #1c1917));
    --invalid:var(--danger, #b91c1c);
    --success:#047857;
    --success-ink:#065f46;
    --warning:#b45309;
    --warning-ink:#92400e;
    --info:#1d4ed8;
    --info-ink:#1e3a8a;
    --neutral:#57534e;
    --neutral-ink:#44403c;
    --serif:"Newsreader","Iowan Old Style",Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;
}
*,*::before,*::after{box-sizing:border-box;}
html,body{height:100%;min-height:100vh}
body{
    margin:0;
    font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
    color:var(--body);
    background:var(--page-bg);
}
.pagehead__title,
.login-title,
.builder__title,
.empty-state__title,
.sectionbar__name,
.launchpad__intro-title,
.card--sheet > .card-title,
.card--sheet > .card-head > .card-title,
.notice__subject{
    font-family:var(--serif);
}

/* ---------- Brand bar ---------- */
.brandbar{
    position:sticky; top:0; z-index:600;
    margin:0; padding:10px 20px;
    background:color-mix(in srgb, var(--page-bg, #f7f5f1) 88%, var(--mix-base));
    border-bottom:1px solid var(--brandbar-border);
    box-shadow:none;
}
.brandrow{
    display:flex; align-items:center; gap:12px 16px;
    min-width:0; position:relative;
}

.brandwrap{ display:flex; align-items:center; gap:12px; min-width:0; }
.logoA{
    width:40px; height:40px; display:grid; place-items:center; flex:0 0 auto;
    background:none; box-shadow:none; margin-right:0;
}
.logoA svg{ width:40px; height:40px; display:block; }
.logo-mark__stroke{ stroke:var(--ink); }
.logo-mark__stroke-fill{ fill:var(--ink); }
.logo-mark__accent{ stroke:var(--logo-bar, var(--brand)); }
.brandtext{
    display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px;
    font-weight:700; letter-spacing:-0.03em; font-size:22px; line-height:1; white-space:nowrap; margin-left:0; color:var(--ink);
}
.brandtext .title-static{ color:var(--ink); font-family:inherit; }
.brand-descriptor{
    color:var(--body);
    font-size:13px;
    font-weight:500;
    letter-spacing:0;
    line-height:1.3;
}

/* ---------- Top navigation ---------- */
.topnav{
    display:flex; align-items:center; gap:4px; flex:0 0 auto; flex-wrap:nowrap; justify-content:flex-end;
    margin-left:auto; position:static; padding:0; background:transparent; border:0; box-shadow:none;
    min-width:0;
}
.topnav .menu{ position:relative; display:inline-block; background:transparent; box-shadow:none; padding:0; border-radius:0; }
.topnav .menu__button{
    position:relative; display:inline-flex; align-items:center; gap:8px;
    min-height:40px; padding:0 12px; border-radius:6px; background:transparent; border:0; cursor:pointer;
    color:var(--body);
    font: inherit; font-weight:600;
    appearance:none; -webkit-appearance:none;
    max-width:100%; min-width:0;
}
.topnav .menu__label{ min-width:0; }
.topnav .menu__button:hover,
.topnav .menu__button[aria-expanded="true"]{ background:var(--hover); }
.topnav .menu__button:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; }
.chev{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; transition:transform .15s ease; }
.topnav .menu__button[aria-expanded="true"] .chev{ transform:rotate(180deg); }

.topnav .menu__panel{
    display:block; position:absolute; top:calc(100% + 6px); left:0;
    min-width:240px; padding:6px; border-radius:8px; background:var(--panel);
    border:1px solid var(--border); box-shadow:0 10px 24px rgba(15,23,42,.08); z-index:9999;
    max-width:min(92vw,380px); overflow-wrap:anywhere;
    animation:menu-in .16s ease;
}
@keyframes toast-in{
    from{ opacity:0; margin-bottom:-8px; }
    to{ opacity:1; margin-bottom:0; }
}
@keyframes menu-in{
    from{ opacity:0; transform:translateY(-4px); }
    to{ opacity:1; transform:none; }
}
.topnav .menu__panel[hidden]{ display:none; }

.topnav .menu__item{
    display:flex; align-items:flex-start; gap:10px; padding:9px 10px; border-radius:6px; text-decoration:none;
    color:var(--body); font-weight:500; line-height:1.2;
    white-space:normal; max-width:360px;
}
.menu__item-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.menu__item-hint{ font-size:12px; font-weight:500; line-height:1.35; color:var(--placeholder); }
.topnav .menu__item .icon{
    flex:0 0 auto; width:18px; height:18px; opacity:1; box-sizing:content-box;
    padding:6px; border-radius:6px;
    background:var(--stone);
    color:var(--brand2);
}
.topnav .menu__item:hover,.topnav .menu__item:focus-visible{ background:var(--hover); outline:none; }
.topnav .menu__item[aria-current="page"]{
    background:color-mix(in srgb, var(--brand) 10%, var(--mix-base));
    color:var(--brand2);
    font-weight:700;
}
.topnav .menu__item[aria-current="page"] .icon{
    background:linear-gradient(135deg, var(--brand), var(--brand2));
    color:#fff;
}
.topnav .menu__divider{ height:1px; margin:6px 8px; background:var(--border); }
.topnav__logout,
.topnav__link{
    display:inline-flex; align-items:center; gap:8px;
    min-height:40px; padding:0 12px; border-radius:6px; text-decoration:none;
    color:var(--body); font-weight:600;
}
.topnav__logout:hover,.topnav__link:hover{ background:var(--hover); }
.topnav__logout:focus-visible,.topnav__link:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; }

/* Flip inward if near viewport right edge (JS toggles this) */
.topnav .menu__panel.is-flip{
    left:auto; right:0; transform-origin:top right;
}

/* App shell: global bar, then the current area as a tab strip */
.appbar{
    padding:0;
}
.appbar .brandrow{
    min-height:52px;
    padding:0 16px 0 20px;
    gap:16px;
    flex-wrap:nowrap;
}
.appbar .logoA{ width:36px; height:36px; }
.appbar .logoA svg{ width:36px; height:36px; }
.appbar .brandtext{ font-size:18px; gap:3px; letter-spacing:-0.03em; }
.appbar .topnav .menu__button{
    min-height:36px;
    padding:0 10px;
    border-radius:6px;
    font-size:13px;
    font-weight:600;
    color:var(--body);
}
.account__button{ gap:8px; }
.account__mark{
    width:28px; height:28px; border-radius:6px;
    display:grid; place-items:center; flex:0 0 auto;
    background:var(--stone); color:var(--brand2);
    font-size:11px; font-weight:700; letter-spacing:0;
}
.account__name{
    max-width:9rem;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
@media (max-width:1180px){
    .account__name{ display:none; }
}
.menu__panel--account{ min-width:220px; }
.menu__account{ display:grid; gap:2px; padding:8px 12px 6px; }
.menu__account-label{ font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--placeholder); }
.menu__account-name{ font-size:14px; font-weight:700; color:var(--text); }

.sectionbar{
    display:flex;
    align-items:stretch;
    gap:4px;
    min-height:44px;
    padding:0 20px;
    border-bottom:1px solid var(--border);
    background:color-mix(in srgb, var(--page-bg, #f7f5f1) 88%, var(--mix-base));
}
.sectionbar__name{
    display:flex;
    align-items:center;
    margin:0 16px 0 0;
    padding-right:16px;
    border-right:1px solid var(--border);
    font-size:18px;
    font-weight:700;
    letter-spacing:-0.03em;
    color:var(--ink);
    white-space:nowrap;
}
.sectionnav{
    display:flex;
    flex:1 1 auto;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:2px;
    min-width:0;
    margin:0;
    padding:0;
    overflow-x:auto;
    scrollbar-width:thin;
}
.sectionnav::-webkit-scrollbar{ height:6px; }
.sectionnav::-webkit-scrollbar-thumb{ background:var(--border); border-radius:3px; }
.sectionnav__link{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    gap:6px;
    min-height:44px;
    margin-bottom:-1px;
    padding:0 12px;
    border-bottom:2px solid transparent;
    border-radius:0;
    text-decoration:none;
    color:var(--placeholder);
    font-weight:500;
    font-size:13px;
    line-height:1.2;
}
.sectionnav__link .icon{
    width:16px; height:16px; padding:0; border-radius:0;
    background:none; color:currentColor; opacity:.72;
    box-sizing:content-box;
}
.sectionnav__link--group{ margin-left:8px; }
.sectionnav__link:hover,
.sectionnav__link:focus-visible{
    background:transparent;
    color:var(--ink);
}
.sectionnav__link:focus-visible{ outline:2px solid var(--ring); outline-offset:-2px; }
.sectionnav__link[aria-current="page"]{
    background:transparent;
    color:var(--brand2);
    font-weight:600;
    border-bottom-color:var(--brand2);
}
.sectionnav__label{ display:inline-block; }
.sectionnav__link[aria-current="page"] .icon{
    background:none;
    color:var(--brand2);
    opacity:1;
}

@media (max-width:1500px){
    .brandbar:not(.appbar) .brandrow{ flex-wrap:wrap; row-gap:8px; }
}
@media (max-width:640px){
    .brandbar:not(.appbar){ padding:10px 12px; }
    .brandbar:not(.appbar) .brandrow{ gap:6px; }
    .brandbar:not(.appbar) .logoA,
    .brandbar:not(.appbar) .logoA svg{ width:34px; height:34px; }
    .brandbar:not(.appbar) .brandtext{ font-size:17px; }
    .appbar .brandrow{ padding:0 8px 0 12px; gap:8px; }
    .appbar .brandtext{ font-size:15px; }
    .account__name{ display:none; }
    .topnav{ flex-wrap:nowrap; min-width:0; gap:2px; }
    .topnav .menu__button{ min-height:44px; padding:8px 8px; gap:4px; }
    .topnav .menu__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .topnav .chev{ flex:0 0 auto; }
    .topnav__logout{ min-width:44px; min-height:44px; padding:8px; justify-content:center; }
    .topnav__logout-label{ display:none; }
    .topnav .menu__item{ min-height:44px; }
    .sectionbar{
        flex-wrap:wrap;
        align-items:flex-end;
        padding:8px 12px 0;
        row-gap:0;
    }
    .sectionbar__name{
        display:flex;
        width:100%;
        margin:0;
        padding:0 0 2px;
        border-right:0;
        font-size:16px;
    }
    .form-actions{
        position:sticky; bottom:0; z-index:20;
        background:var(--panel);
        margin-left:calc(var(--sheet-px, 0px) * -1);
        margin-right:calc(var(--sheet-px, 0px) * -1);
        padding-left:var(--sheet-px, 0px);
        padding-right:var(--sheet-px, 0px);
    }
    .card--work .record-list__tablewrap thead{ display:none; }
    .card--work .record-list__tablewrap,
    .card--work .record-list__tablewrap table,
    .card--work .record-list__tablewrap tbody,
    .card--work .record-list__tablewrap tr,
    .card--work .record-list__tablewrap td,
    .card--work .record-list__tablewrap th{ display:block; width:auto; }
    .card--work .work-bulk .record-list__tablewrap tr{
        display:grid;
        grid-template-columns:44px minmax(0, 1fr) auto;
        align-items:center;
        padding:12px 2px;
        border-bottom:1px solid var(--border);
    }
    .card--work .record-list__tablewrap td,
    .card--work .record-list__tablewrap th{ border:0; padding:0; }
    .card--work .work-bulk .record-list__tablewrap td.record-list__select{ grid-column:1; }
    .card--work .work-bulk .record-list__tablewrap td.record-list__primary{ grid-column:2; }
    .card--work .work-bulk .record-list__tablewrap td.record-list__manage{ grid-column:3; }
    .card--work .work-bulk .record-list__tablewrap td.record-list__cell{ grid-column:2 / 4; }
    .card--work .record-list__cell{ margin-top:2px; color:var(--placeholder); font-size:12.5px; }
    .sectionnav__link{ min-height:44px; }
}
@media (max-width:380px){
    .brandbar:not(.appbar) .brandtext{ display:none; }
}

/* ---------- Layout spacing & grid ---------- */
/* Rhythm: 4 / 8 / 12 / 16 / 20 — label→control 8, field stacks 12, cards 16, page inset 20 */
.wrap{
    display:grid; grid-template-columns:1fr; gap:20px; padding:28px var(--page-gutter) 48px;
    min-height:calc(100vh - 140px); align-items:start;
}
.wrap.has-sidebar{ grid-template-columns:280px 1fr; }
.wrap > * { min-width:0; }
@media (max-width:960px){
    .wrap, .wrap.has-sidebar{ grid-template-columns:1fr; }
    .wrap{ padding:20px 16px 36px; }
    .pagehead{ padding:20px 16px 0; }
    .card--sheet{ --sheet-px:18px; --sheet-pb:18px; padding:22px var(--sheet-px) var(--sheet-pb); }
}

/* ---------- Sidebar card ---------- */
.sidebar{
    background:var(--panel);
    border:1px solid var(--border); border-radius:10px; box-shadow:none;
    z-index:10; position:relative;
}
.side-actions{ display:grid; gap:8px; padding:12px; }
.side-actions + .side-actions{ border-top:1px dashed color-mix(in srgb, var(--ink) 6%, transparent); }
.side-title, .card-title{
    text-align:left; text-transform:none;
    font-size:13px; font-weight:700; letter-spacing:0;
    color:var(--title); background:transparent;
    border:0; border-radius:0; padding:2px 2px 8px; margin:0 0 8px;
}
.side-title--spaced{ margin-top:12px; }
.rv-separator-block{
    display:flex; align-items:center; gap:12px; margin:16px 0;
}
.rv-separator-line{ flex:1; border-bottom:1px solid var(--border); }
.rv-separator-label{
    white-space:nowrap; padding:0 4px; color:var(--placeholder); font-size:12.5px; font-weight:600;
}
.adx-grid{
    display:grid;
    grid-template-columns:repeat(var(--adx-cols, 2), minmax(0, 1fr));
    gap:12px;
}
.cf-row{
    display:flex; flex-wrap:wrap; align-items:center; gap:8px; width:100%;
}
.cf-row__field{ flex:1 1 10rem; min-width:8rem; }
.cf-row__op{ flex:1 1 14rem; min-width:10rem; display:flex; align-items:center; gap:8px; }
.cf-row__join{ flex:0 1 8rem; min-width:6rem; }
/* The section tabs name the page. A card that is the page itself does not repeat a title. */
body:has(.sectionbar) .main > .grid > .card > .card-title{ display:none; }

/* ---------- Left nav items ---------- */
.navbtn{
    position:relative; display:flex; align-items:center; gap:10px;
    padding:10px 12px 11px; border-radius:6px; text-decoration:none; color:var(--title); font-weight:600;
}
.navbtn:hover,.navbtn:focus-visible{ background:var(--hover); }
.navbtn:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; }

.navbtn.active,
.navbtn[aria-current="page"]{ background:var(--hover); color:var(--text); font-weight:700; }

/* ---------- Main, cards, forms ---------- */
.main{ padding:0; min-width:0; background:transparent; z-index:5; position:relative; }
.card{ background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:22px 24px; box-shadow:0 1px 0 rgba(15,23,42,.04); }
.grid{ display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.span-2{ grid-column:1 / -1; }
@media (max-width:960px){ .grid{ grid-template-columns:1fr; } }

.field{ box-sizing:border-box; display:grid; gap:8px; min-width:0; width:100%; max-width:100%; }
.form-grid > .field,
.grid .field{ min-width:min(100%,180px); }
.field.is-inline{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:0; }
.label{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    text-align: left;
    font-size:13px;
    font-weight: 600;
    color:var(--title);
    line-height:1.3;
}
.input,.textarea,.select,.login-panel .input,.text{
    box-sizing:border-box;
    width:100%; max-width:100%; min-width:0; min-height:42px; background:var(--surface);
    font:inherit; line-height:1.4;
    border:1px solid var(--field-border); border-radius:8px; padding:10px 14px; color:var(--input);
    transition: box-shadow .15s, border-color .15s, background .15s;
}
.input::placeholder,.textarea::placeholder{ color:var(--placeholder); }
.textarea{ min-height:120px; resize:vertical; }
.input:hover,.textarea:hover,.select:hover{ border-color: color-mix(in srgb, var(--brand) 55%, var(--field-border)); }
input[type="date"].input,
input[type="time"].input,
input[type="datetime-local"].input{
    color-scheme: inherit;
    min-width: 12rem;
}
.input:focus,.textarea:focus,.select:focus{
    outline:2px solid transparent; outline-offset:2px;
    border-color:var(--brand); box-shadow:0 0 0 3px var(--ring); background-color:var(--surface);
}

.form-block{ background:var(--surface); border:0; border-radius:0; box-shadow:none; padding:0; }
.card > .form-block{ padding:0; }

/* ---------- Links & tables ---------- */
.moduleTable,.table{ width:100%; border-collapse:collapse; background:var(--panel); }
.moduleTable thead th,
.table thead th{
    text-align:left; font:700 11px/1.2 system-ui; letter-spacing:.06em; text-transform:uppercase;
    color:var(--title); padding:8px 12px; background:var(--title-strip); border-bottom:1px solid var(--title-strip-border);
}
.moduleTable tbody td,
.moduleTable tbody th,
.table tbody td,
.table tbody th{ padding:10px 12px; border-bottom:1px solid var(--border); vertical-align:middle; }
.moduleTable td,
.moduleTable th{ padding:10px 12px; vertical-align:middle; }
.table-bordered{ border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.table-striped tbody tr:nth-child(odd){ background:color-mix(in srgb, var(--ink) 2%, transparent); }
.table-hover tbody tr:hover{ background:var(--hover); }

/* Inline action links */
.URL{
    color:color-mix(in srgb, var(--ink) 88%, transparent);
    font-weight:400;
    text-decoration:none;
    position:relative;
}
.URL:hover{ color:color-mix(in srgb, var(--ink) 92%, transparent); }
.URL::after{
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px;
    background:var(--brand2);
    opacity:0;
    transition: opacity .15s;
}
.URL:hover::after, .URL:focus-visible::after{ opacity:1; }
.URL.is-current{ font-weight:700; color:var(--brand2); }

/* ---------- Horizontal tiles ---------- */
.horizontal-content-container{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; align-items:stretch;
}
.hcc-item{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:12px; box-shadow:none; }
.hcc-item img{ display:block; max-width:100%; height:auto; margin:6px auto 0; }

/* ---------- Buttons ---------- */
.btn{
    display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:8px 12px;
    border-radius:6px; font-family:inherit; font-size:13px; font-weight:600; line-height:1.2;
    color:var(--ink); text-decoration:none; cursor:pointer; appearance:none; -webkit-appearance:none;
    border:1px solid var(--border);
    background:var(--surface);
    box-shadow:none;
    min-height:34px;
}
.btn:hover{
    border-color:var(--border);
    background:var(--page-bg);
}
.btn:active{ transform:none; }
.btn:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; }
.btn--outline{ background:var(--surface); color:var(--body); }
.btn--primary{
    color:#fff;
    background:var(--brand);
    border-color:transparent;
    box-shadow:none;
}
.btn--primary:hover{ color:#fff; background:var(--btn-primary-hover); border-color:transparent; }
.btn.-sm, .btn.btn--sm{ padding:6px 10px; border-radius:6px; font-size:12.5px; font-weight:600; letter-spacing:0; min-height:30px; }
.form-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid var(--border); }
.form-actions--flush{ margin-top:0; margin-bottom:12px; padding-top:0; border-top:0; }
.input-file{ width:100%; }

.group-security-list{ display:flex; flex-direction:column; gap:8px; flex:1 1 100%; min-width:0; }
.group-security-list .checkbox{ display:flex; align-items:flex-start; gap:8px; }
.field-stack{ flex:1 1 100%; min-width:0; }
.field.is-inline:has(.field-stack),
.field.is-inline:has(.group-security-list){ align-items:flex-start; }
.field-stack .select,
.field-stack .input,
.field-stack .textarea{ width:100%; }
.group-security-item{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:8px 10px;
    border:1px solid color-mix(in srgb, var(--form-border, #c5d0da) 85%, transparent);
    border-radius:8px;
    background:var(--form-surface, var(--surface));
}
.group-security-item .record-list__meta{ margin:0 0 0 1.5rem; }
.perm-apps{ display:flex; flex-direction:column; gap:8px; flex:1 1 100%; min-width:0; }
.perm-app{
    display:grid;
    grid-template-columns:minmax(9rem, 14rem) minmax(0, 1fr);
    gap:8px 20px;
    align-items:center;
    padding:10px 12px;
    border:1px solid color-mix(in srgb, var(--form-border, #c5d0da) 85%, transparent);
    border-radius:8px;
    background:var(--form-surface, var(--surface));
}
.perm-app__name{ margin:0; font-size:14px; font-weight:600; color:var(--ink); }
.perm-app__levels{ display:flex; flex-wrap:wrap; gap:8px 18px; }
.perm-app__levels .checkbox{ display:flex; align-items:flex-start; gap:8px; }
@container sheet (max-width: 40rem){
    .perm-app{ grid-template-columns:minmax(0, 1fr); }
}
.field-picker{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field-picker .label{ margin-bottom:0; }
.field-picker-list{
    list-style:none; margin:8px 0 0; padding:12px; min-height:160px;
    border:1px solid var(--form-border); border-radius:8px; background:var(--form-surface);
}
.field-picker-item{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px; }
.field-picker-item .checkbox{ display:flex; align-items:center; gap:8px; min-width:0; }
.field-picker-type{ color:var(--placeholder); font-size:12px; }
.field-picker-moves{ display:flex; gap:6px; flex:0 0 auto; }
.field-picker-move{ padding:6px 8px; font-size:12px; font-weight:600; }
#availableFields .field-picker-moves{ display:none; }
.field-picker-actions{ margin-top:16px; }
.mlm-fields{ flex:1 1 100%; min-width:0; }
.mlm-fields .table{ width:auto; min-width:28rem; }
.mlm-fields .checkbox{ display:flex; align-items:center; gap:10px; font-weight:600; }
.mlm-fields td:last-child,
.mlm-fields th:last-child{ width:12rem; }
.mlm-fields .select{ width:12rem; min-width:0; }
.mlm-note{ flex:1 1 20rem; min-width:0; line-height:1.45; color:var(--placeholder); }
.field.is-inline:has(.mlm-note){ align-items:flex-start; }
.sidebar .side-actions > .URL{
    display:flex; align-items:flex-start; gap:8px; line-height:1.35;
}
.sidebar .side-actions > .URL .icon{ flex:0 0 auto; margin-top:2px; }
.sidebar .side-actions > .URL .urllabel{ min-width:0; }
@media (max-width:960px){ .field-picker{ grid-template-columns:1fr; } }

/* ---------- Launchpad grid ---------- */
.launchpad-grid {
    display: grid;
    align-items: stretch;
    row-gap: var(--row-gap, 16px);
    column-gap: var(--col-gap, 16px);
}
.launchpad-grid.-auto { --min: 150px; grid-template-columns: repeat(auto-fit, minmax(var(--min), 1fr)); }
.launchpad-grid.-fixed { grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); }
.launchpad-grid .card.-full { grid-column: 1 / -1; }
.launchpad-grid .card { height: 100%; display: flex; flex-direction: column; }
.launchpad-grid .card__body { flex: 1 1 auto; }
@media (max-width: 640px) {
    .launchpad-grid { row-gap: 16px; }
    .desk{ grid-template-columns:1fr; }
    .toast{ left:12px; right:12px; bottom:12px; transform:none; max-width:none; }
}

/* Homepage: one tile per destination */
.launchpad{ display:flex; flex-direction:column; gap:24px; }
.launchpad__heading{
    margin:0 0 12px;
    font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
    color:var(--title);
}
.launchpad__grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(min(100%, 240px), 320px));
    gap:12px;
    justify-content:start;
}
.launch-tile{
    display:flex; align-items:center; gap:14px;
    min-height:72px; padding:14px 16px;
    border:1px solid var(--border); border-radius:10px;
    background:var(--surface); color:inherit; text-decoration:none;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.launch-tile:hover,
.launch-tile:focus-visible{
    background:var(--hover);
    border-color:color-mix(in srgb, var(--brand) 45%, var(--border));
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(15,23,42,.08);
}
.launch-tile:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; }
.launch-tile__icon{
    flex:0 0 auto; width:44px; height:44px; border-radius:10px;
    display:grid; place-items:center;
    background:linear-gradient(145deg, var(--stone), color-mix(in srgb, var(--stone) 55%, var(--mix-base)));
    color:var(--brand2);
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 18%, transparent);
    transition: transform .18s ease;
}
.launch-tile:hover .launch-tile__icon{ transform:scale(1.04); }
.launch-tile .icon{ width:22px; height:22px; opacity:1; }
.launch-tile__copy{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.launch-tile__title{
    font-size:14.5px; font-weight:700; line-height:1.25; letter-spacing:-0.01em; color:var(--ink);
}
.launch-tile__hint{ font-size:12.5px; line-height:1.35; color:var(--placeholder); }
.launchpad__empty{ margin:0; color:var(--placeholder); }
.launchpad__intro{
    padding:4px 0 0;
    max-width:40rem;
}
.launchpad__intro--illustrated{ max-width:44rem; }
.launchpad__intro--illustrated .empty-state{
    align-items:flex-start; text-align:left;
    padding:22px 24px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface);
}
.launchpad__intro--illustrated .empty-state__art{
    width:min(160px, 55vw);
    margin:0 0 12px;
    filter:none;
}
.launchpad__brand{
    gap:14px; margin:0 0 4px;
}
.launchpad__brand .logoA,
.launchpad__brand .logoA svg{ width:48px; height:48px; }
.launchpad__brand .brandtext{
    font-size:2rem; gap:5px; letter-spacing:-0.035em; color:var(--ink);
}
.empty-state--brand .empty-state__copy{ text-align:left; max-width:32rem; }
.launchpad__intro-title{
    margin:0 0 6px;
    font-size:1.4rem; font-weight:700; letter-spacing:-0.025em; color:var(--ink);
}
.launchpad__intro-copy{ margin:0 0 14px; color:var(--body); line-height:1.45; }
.launchpad__intro-actions{ margin:0; }
@media (max-width:640px){
    .launchpad__grid{ grid-template-columns:1fr; }
    .launch-tile{ min-height:72px; }
}

/* Empty states — the illustrated panel used when a list has nothing in it */
.empty-state{
    display:flex; flex-direction:column; align-items:center; text-align:center;
    gap:12px; padding:48px 24px 40px; max-width:32rem; margin:0 auto;
    animation:empty-in .35s ease both;
}
.empty-state__art{
    width:min(200px, 64vw); height:auto; display:block; margin:0 0 4px;
    filter:drop-shadow(0 12px 18px rgba(15, 118, 110, .14));
}
.empty-state__title{
    margin:0; font-size:1.45rem; font-weight:700; letter-spacing:-0.03em; color:var(--ink);
}
.empty-state__copy{
    margin:0; max-width:26rem; font-size:15px; line-height:1.5; color:var(--title);
}
.empty-state__actions{ margin-top:6px; }
.card:has(> .form-block > .empty-state:only-child){
    min-height:calc(100vh - 220px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:40px 28px;
    background:
        radial-gradient(420px 240px at 50% 42%, color-mix(in srgb, var(--stone) 48%, var(--mix-base)), transparent 70%),
        var(--panel);
}
.card:has(> .form-block > .empty-state:only-child) > .form-block{ width:min(100%, 36rem); }
@keyframes empty-in{
    from{ opacity:0; transform:translateY(6px); }
    to{ opacity:1; transform:none; }
}

/* Guided application builder */
.builder{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(280px, 340px);
    column-gap:16px;
    row-gap:16px;
    align-items:start;
}
.builder__intro{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:18px;
    margin:0;
    min-width:0;
}
.builder__art{
    width:104px; height:auto; flex:0 0 auto; display:block;
}
.builder__title{
    margin:0 0 4px;
    font-size:22px; line-height:1.25; font-weight:700; letter-spacing:-0.02em; color:var(--ink);
}
.builder__lead{
    margin:0; max-width:40rem; color:var(--body); line-height:1.45;
}
.builder__error{
    grid-column:1 / -1;
    margin:0; padding:10px 12px; border-radius:10px;
    border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border));
    background:color-mix(in srgb, var(--danger) 8%, var(--mix-base));
    color:var(--danger-ink);
}
.builder__form{ min-width:0; }
.builder__panel{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:12px;
    padding:20px;
}
.builder__section{ margin:0; padding:18px 0; border-top:1px solid var(--border); }
.builder__section:first-of-type{ border-top:0; padding-top:0; }
.builder__heading{
    margin:0 0 4px;
    font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
    color:var(--title);
}
.builder__section .form-help{ margin:0 0 12px; }
.builder .label{ white-space:normal; overflow:visible; text-overflow:unset; }
.builder__identity{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    align-items:start;
}
.builder__identity .field--wide{ grid-column:1 / -1; }
.builder__name{ font-size:16px; font-weight:600; }
.builder__link{
    display:flex; align-items:center; min-width:0; min-height:42px;
    border:1px solid var(--field-border); border-radius:8px; background:var(--surface);
}
.builder__link:focus-within{ border-color:var(--brand); box-shadow:0 0 0 3px var(--ring); }
.builder__link-prefix{
    flex:0 0 auto; padding:0 0 0 12px;
    color:var(--placeholder); font-weight:600; white-space:nowrap;
}
.builder__link .text{
    border:0; border-radius:0; box-shadow:none; background:transparent;
    min-height:0; height:40px; padding:0 12px 0 4px;
}
.builder__link .text:hover,
.builder__link .text:focus{ border:0; box-shadow:none; background:transparent; }
.builder__blueprints{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.builder__blueprint{
    display:flex; flex-direction:column; gap:4px;
    position:relative; margin:0; padding:14px;
    border:1px solid var(--border); border-radius:10px;
    background:var(--surface); cursor:pointer;
}
.builder__blueprint input{
    position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
    clip:rect(0,0,0,0); border:0;
}
.builder__blueprint.is-selected,
.builder__blueprint:has(input:checked){
    border-color:var(--brand);
    background:color-mix(in srgb, var(--brand) 8%, var(--mix-base));
    box-shadow:inset 0 0 0 1px var(--brand);
}
.builder__blueprint:focus-within{ outline:2px solid var(--ring); outline-offset:2px; }
.builder__blueprint-label{ font-size:14.5px; font-weight:700; letter-spacing:-0.01em; color:var(--ink); }
.builder__blueprint-hint{ font-size:12.5px; line-height:1.35; color:var(--body); }
.builder__blueprint-fields{ margin-top:6px; font-size:12px; font-weight:600; color:var(--brand2); line-height:1.35; }
.builder__choices{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
    gap:8px;
}
.builder__choice{
    display:flex; align-items:flex-start; gap:10px;
    margin:0; padding:12px;
    border:1px solid var(--border); border-radius:10px;
    background:var(--surface); cursor:pointer;
}
.builder__choice input{
    width:16px; height:16px; margin:3px 0 0; flex:0 0 auto; accent-color:var(--brand);
}
.builder__choice.is-selected,
.builder__choice:has(input:checked){
    border-color:var(--brand);
    background:color-mix(in srgb, var(--brand) 8%, var(--mix-base));
    box-shadow:inset 0 0 0 1px var(--brand);
}
.builder__choice:focus-within{ outline:2px solid var(--ring); outline-offset:2px; }
.builder__choice-mark{
    flex:0 0 auto; width:36px; height:36px; border-radius:8px;
    display:grid; place-items:center;
    background:var(--stone); color:var(--brand2);
}
.builder__choice.is-selected .builder__choice-mark,
.builder__choice:has(input:checked) .builder__choice-mark{
    background:linear-gradient(135deg, var(--brand), var(--brand2));
    color:#fff;
}
.builder__choice .icon{ width:18px; height:18px; opacity:1; }
.builder__choice-copy{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.builder__choice-label{ font-size:14px; font-weight:700; letter-spacing:-0.01em; color:var(--ink); line-height:1.25; }
.builder__choice-hint{ font-size:12.5px; line-height:1.35; color:var(--placeholder); }
.builder__choices--compact{ grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); }
.builder__choices--compact .builder__choice{ align-items:center; padding:10px 12px; }
.builder__choices--compact .builder__choice input{ margin-top:0; }
.builder__subhead{
    margin:14px 0 8px;
    font-size:13px; font-weight:700; color:var(--title);
}
.builder__icons{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.builder__icon{
    display:flex; flex-direction:row; align-items:center; gap:0;
    position:relative; margin:0; padding:4px;
    border:1px solid var(--border); border-radius:10px;
    background:var(--surface); cursor:pointer; text-align:left;
}
.builder__icon input{
    position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
    clip:rect(0,0,0,0); border:0;
}
.builder__icon-mark{
    width:36px; height:36px; border-radius:8px;
    display:grid; place-items:center;
    background:var(--stone); color:var(--brand2);
}
.builder__icon .icon{ width:18px; height:18px; opacity:1; }
.builder__icon-name{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
    font-size:13px; font-weight:700; line-height:1.2; color:var(--ink);
}
.builder__icon.is-selected,
.builder__icon:has(input:checked){
    gap:8px;
    padding:4px 12px 4px 4px;
    border-color:var(--brand);
    background:color-mix(in srgb, var(--brand) 8%, var(--mix-base));
    box-shadow:inset 0 0 0 1px var(--brand);
}
.builder__icon.is-selected .builder__icon-name,
.builder__icon:has(input:checked) .builder__icon-name{
    position:static; width:auto; height:auto; margin:0; overflow:visible; clip:auto;
}
.builder__icon.is-selected .builder__icon-mark,
.builder__icon:has(input:checked) .builder__icon-mark{
    background:linear-gradient(135deg, var(--brand), var(--brand2));
    color:#fff;
}
.builder__icon:focus-within{ outline:2px solid var(--ring); outline-offset:2px; }
.builder__preview{
    position:sticky;
    top:112px;
    min-width:0;
    max-height:calc(100vh - 128px);
    overflow:auto;
    display:flex;
    flex-direction:column;
    gap:14px;
}
.builder__kicker{
    margin:0;
    font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
    color:var(--title);
}
.builder__preview > summary{
    cursor:pointer;
    list-style:none;
}
.builder__preview > summary::-webkit-details-marker{ display:none; }
@media (min-width:961px){
    .builder__preview > summary{ pointer-events:none; }
}
.builder__app{ display:flex; align-items:center; gap:12px; min-width:0; }
.builder__app-icon{
    flex:0 0 auto; width:48px; height:48px; border-radius:10px;
    display:grid; place-items:center;
    background:linear-gradient(145deg, var(--stone), color-mix(in srgb, var(--stone) 55%, var(--mix-base)));
    color:var(--brand2);
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 18%, transparent);
}
.builder__app-icon .icon{ width:24px; height:24px; opacity:1; }
.builder__app-copy{ min-width:0; }
.builder__app-name{
    margin:0; font-size:16px; font-weight:700; letter-spacing:-0.02em; color:var(--ink); line-height:1.25;
    overflow-wrap:anywhere;
}
.builder__app-hint{ margin:2px 0 0; font-size:12.5px; line-height:1.35; color:var(--placeholder); }
.builder__app-url{
    margin:0; padding:8px 10px; border-radius:8px;
    background:var(--page-bg); color:var(--title);
    font-size:12.5px; font-weight:600; overflow-wrap:anywhere;
}
.builder__tabs{
    display:flex; flex-wrap:wrap; gap:6px;
}
.builder__tab{
    display:inline-flex; align-items:center; min-height:28px; padding:0 10px;
    border-radius:999px; background:var(--page-bg);
    font-size:12.5px; font-weight:600; color:var(--ink);
}
.builder__facts{ margin:0; display:flex; flex-direction:column; gap:12px; }
.builder__facts div{ margin:0; }
.builder__facts dt{
    margin:0 0 4px;
    font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--title);
}
.builder__facts dd{ margin:0; color:var(--body); line-height:1.4; }
.builder__fields{ display:flex; flex-direction:column; gap:8px; margin:0; padding:0; list-style:none; }
.builder__field-name{ font-weight:700; color:var(--ink); }
.builder__field-values{ display:block; margin-top:2px; font-size:12.5px; color:var(--placeholder); }
.builder__create{ width:100%; margin-top:2px; }
.builder__import{ grid-column:1; }
.builder__import > summary{
    cursor:pointer; font-size:14px; font-weight:700; color:var(--ink); letter-spacing:-0.01em;
}
.builder__import > summary:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; }
.builder__import[open] > summary{ margin-bottom:8px; }
.builder__import .form-help{ margin-bottom:12px; }
@media (max-width:960px){
    .builder{ grid-template-columns:1fr; }
    .builder__preview{ position:static; max-height:none; }
    .builder__import{ grid-column:1; }
}
@media (max-width:640px){
    .builder__intro{ align-items:flex-start; }
    .builder__art{ width:72px; }
    .builder__identity,
    .builder__blueprints{ grid-template-columns:1fr; }
}
.brandhome{
    display:flex; align-items:center; gap:10px;
    color:inherit; text-decoration:none; min-width:0;
}
.brandhome:focus-visible{ outline:2px solid var(--ring); outline-offset:4px; border-radius:8px; }
.login-shell{
    flex:1;
    display:grid;
    grid-template-columns:minmax(0,28rem) minmax(0,380px);
    column-gap:clamp(48px, 8vw, 128px);
    justify-content:center;
    align-content:center;
    width:100%;
    max-width:var(--page-max);
    margin:0 auto;
    padding:0 var(--page-gutter);
    min-height:0;
}
.login-atmosphere{
    position:relative;
    overflow:hidden;
    background:transparent;
    color:var(--ink);
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:40px;
    padding:48px 0;
    animation:login-panel-in .45s ease both;
}
.login-atmosphere__copy{
    position:relative; z-index:1; max-width:28rem;
}
.login-atmosphere__brand .logoA,
.login-atmosphere__brand .logoA svg{ width:64px; height:64px; }
.login-atmosphere__brand .brandwrap{
    align-items:center; gap:16px;
}
.login-atmosphere__brand .brandtext{
    color:var(--ink);
    font-size:clamp(2.4rem, 4.5vw, 3.4rem);
    gap:7px;
    letter-spacing:-0.04em;
}
.login-atmosphere__brand .brand-descriptor{
    font-size:15px;
}
.login-board{
    display:grid;
    grid-template-columns:14fr 7.5fr;
    gap:12px;
    width:min(100%, 420px);
}
.login-board__piece{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-height:108px;
    padding:16px 16px 14px;
    border-radius:14px;
}
.login-board__piece--bone{
    background:var(--logo-piece, #fff);
    color:var(--logo-piece-ink, var(--ink));
    border:1px solid color-mix(in srgb, var(--ink) 8%, transparent);
}
.login-board__piece--stone{
    background:var(--logo-joint, var(--stone));
    color:var(--ink);
    border:1px solid color-mix(in srgb, var(--ink) 8%, transparent);
}
.login-board__piece--ink{
    grid-column:1 / -1;
    min-height:0;
    background:var(--logo-ground, var(--ink));
    color:var(--logo-piece, #f3efe6);
}
.login-board__label{
    font-size:11px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.login-board__rule{
    display:block;
    height:7px;
    width:72%;
    border-radius:4px;
    background:currentColor;
    opacity:.22;
}
.login-board__rule--short{ width:46%; }
.login-center {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    padding: 1.5rem 0;
}
.page-login{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    background:var(--page-bg);
}
.page-login .main{
    flex:1;
    display:flex;
    flex-direction:column;
}
.page-login .app-footer{ background:transparent; }
.page-login .login-center{
    flex:1;
    flex-direction:column;
    gap:18px;
    min-height:0;
    animation:login-form-in .4s ease .08s both;
}
.login-brand{ display:flex; justify-content:center; }
.login-brand--mobile{ display:none; }
.login-brand .logoA,
.login-brand .logoA svg{ width:52px; height:52px; }
.login-brand .brandtext{ font-size:28px; gap:5px; letter-spacing:-0.03em; }
.login-card {
    box-sizing: border-box;
    width: 100%;
    max-width: 380px;
    min-width: 0;
}
.login-theme{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    max-width:380px;
}
.login-theme__label{
    flex:0 0 auto;
    font-size:12px;
    font-weight:600;
    color:var(--placeholder);
}
.theme-swatches{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(148px, 1fr));
    gap:8px;
}
.theme-swatch{
    display:flex;
    align-items:center;
    gap:10px;
    position:relative;
    margin:0;
    padding:10px 12px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface);
    cursor:pointer;
}
.theme-swatch input{
    position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
    clip:rect(0,0,0,0); border:0;
}
.theme-swatch__chip{
    width:28px; height:28px; border-radius:6px; flex:0 0 auto;
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 12%, transparent);
}
.theme-swatch__name{ font-size:13px; font-weight:700; color:var(--ink); }
.theme-swatch.is-selected,
.theme-swatch:has(input:checked){
    border-color:var(--brand);
    box-shadow:inset 0 0 0 1px var(--brand);
}
.theme-swatch:focus-within{ outline:2px solid var(--ring); outline-offset:2px; }
.login-theme .theme-swatches{ margin-top:8px; }
.login-theme .select{
    width:auto;
    flex:1;
    min-height:36px;
    padding:6px 10px;
}
.login-panel {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    padding: 28px 24px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background:var(--surface);
    box-shadow:0 12px 32px rgba(15,23,42,.1);
    min-width: 0;
}
.login-form,
.login-form .field{
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    max-width: 100%;
}
.login-form .field{ min-width: 0; }
.login-form .input,
.login-form .btn{
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
@keyframes login-panel-in{
    from{ opacity:0; transform:translateX(-10px); }
    to{ opacity:1; transform:none; }
}
@keyframes login-form-in{
    from{ opacity:0; transform:translateY(8px); }
    to{ opacity:1; transform:none; }
}
@media (max-width:900px){
    .login-shell{ grid-template-columns:minmax(0,1fr); padding:0 16px; }
    .login-atmosphere{ display:none; }
    .login-brand--mobile{ display:flex; }
    .page-login{
        background:var(--page-bg);
    }
}
.login-title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.login-lead {
    margin: 0;
    color: var(--title);
    font-size: 13.5px;
}
.login-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 4px;
}
.login-form .field{ gap:8px; }
.login-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--title);
    line-height:1.3;
}
.login-submit,
.login-sso-btn,
.login-local-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    margin-top: 0;
}
.login-sso {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.login-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 4px 0;
    color: var(--placeholder);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.login-divider::before,
.login-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: color-mix(in srgb, var(--title-strip-border, #c5d0da) 80%, transparent);
}
.login-alt {
    margin: 8px 0 0;
    font-size: 0.9rem;
}
.login-alt a { color: var(--ink); }
.login-error {
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    color: var(--danger-ink);
    font-size: 0.92rem;
}
.form-help {
    margin: 6px 0 0;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--placeholder);
}
.card--sheet{
    --sheet-px:28px;
    --sheet-pb:24px;
    padding:28px var(--sheet-px) var(--sheet-pb);
    border-radius:12px;
    container:sheet / inline-size;
}
.card--sheet > .card-title,
.card--sheet > .card-head > .card-title{
    display:block;
    margin:0 0 18px;
    padding:0;
    font-size:1.65rem;
    font-weight:700;
    letter-spacing:-0.03em;
    line-height:1.15;
    color:var(--ink);
}
.card-kicker{
    margin:0 0 6px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--brand2);
}
.card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px 16px;
    margin:0 0 22px;
}
.card--sheet > .card-head > .card-title{ margin:0; flex:1 1 auto; min-width:0; }
.card-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    flex:none;
    max-width:100%;
    padding:5px 12px;
    border-radius:999px;
    background:color-mix(in srgb, var(--brand) 16%, var(--mix-base));
    color:var(--brand2);
    font-size:12.5px;
    font-weight:700;
    line-height:1.2;
}
.card-badge::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:999px;
    background:var(--brand);
    flex:none;
}
.card--record{
    border-top:3px solid var(--brand);
    box-shadow:0 18px 40px color-mix(in srgb, var(--ink) 7%, transparent);
    width:100%;
    max-width:52rem;
    justify-self:center;
}
body:has(.sectionbar) .main > .grid > .card.card--sheet > .card-title,
body:has(.sectionbar) .main > .grid > .card.card--sheet > .card-head > .card-title{
    display:block;
}
.card--disclosure > summary.card-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    cursor:pointer;
    list-style:none;
}
.card--disclosure > summary.card-title::-webkit-details-marker{ display:none; }
.card--disclosure > summary.card-title::after{
    content:"";
    display:inline-block;
    width:9px;
    height:9px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg);
    margin-top:-6px;
    flex:none;
    opacity:.55;
}
.card--disclosure[open] > summary.card-title::after{
    transform:rotate(-135deg);
    margin-top:4px;
}
.card--disclosure:not([open]) > summary.card-title{ margin-bottom:0; }
.card--disclosure > summary.card-title:focus-visible{
    outline:2px solid var(--ring);
    outline-offset:4px;
    border-radius:6px;
}
body:has(.sectionbar) .main > .grid > details.card.card--sheet.card--disclosure > summary.card-title{
    display:flex;
}
.card--sheet > .form-block > form{
    display:flex;
    flex-direction:column;
}
.form-grid .form-section,
.form-grid .well{
    margin:6px 0 0;
    padding:0;
    background:none;
    border:0;
    font-family:"Iowan Old Style",Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;
    font-size:1.15rem;
    font-weight:700;
    letter-spacing:-0.02em;
    color:var(--ink);
}
.form-help--spaced{ margin-top:12px; }

.icon{width:16px; height:16px; opacity:.7; transition:opacity .15s ease, transform .15s ease;}

/* --- More menu essentials --- */
.controller-more { position: relative; }
.controller-more__menu[hidden] { display: none; }
.controller-more__menu { margin-top: .25rem; }

/* ---------- Record lists ---------- */
.record-link{
    color:var(--ink); font-weight:600; text-decoration:none;
}
.record-link:hover, .record-link:focus-visible{ color:var(--brand2); }
.btn.btn--quiet{
    color:var(--title); background:transparent; box-shadow:none; text-decoration:none;
    border-color:transparent;
}
.btn.btn--quiet:hover, .btn.btn--quiet:focus-visible{
    color:var(--ink); background:var(--hover);
    border-color:transparent; box-shadow:none;
}
.btn.btn--danger{
    color:var(--danger); background:var(--panel); box-shadow:none; text-decoration:none; border-color:transparent;
}
.btn.btn--danger:hover, .btn.btn--danger:focus-visible{
    color:var(--danger);
    background:color-mix(in srgb, var(--danger) 8%, transparent);
    border-color:color-mix(in srgb, var(--danger) 20%, transparent);
    box-shadow:none;
}
.record-list{ display:flex; flex-direction:column; gap:12px; }
.record-list__bar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.record-list__search{ flex:1 1 220px; width:auto; max-width:none; min-width:0; padding:8px 12px; min-height:34px; }
.record-list__count{
    display:inline-flex; align-items:center; justify-content:center; min-width:2rem;
    padding:4px 10px; border-radius:999px; font-size:12px; font-weight:700;
    color:var(--title); background:var(--title-strip); border:1px solid var(--title-strip-border);
}
.record-list__bar .btn--primary{ margin-left:auto; text-decoration:none; }
.record-list__tools{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px; margin-left:auto; }
.record-list__tools .btn--primary{ margin-left:0; }
.record-list__sort{
    display:inline-flex; align-items:center; gap:5px;
    color:inherit; text-decoration:none;
}
.record-list__sort:hover{ color:var(--brand2); }
.record-list__sort:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; border-radius:4px; }
.record-list__sortmark::after{ content:"↕"; font-size:11px; color:var(--placeholder); }
th[aria-sort="ascending"] .record-list__sortmark::after{ content:"↑"; color:var(--brand2); }
th[aria-sort="descending"] .record-list__sortmark::after{ content:"↓"; color:var(--brand2); }
.record-list__select{ width:42px; text-align:center; }
.record-list__select input{ display:block; margin:auto; }
.work-bulk__status{ width:auto; min-width:10rem; min-height:34px; padding-top:6px; padding-bottom:6px; }
.record-list__tablewrap{ overflow-x:auto; }
.record-list .table{ margin:0; }
.record-list td, .record-list th{ vertical-align:middle; }
.record-list__actions{ display:inline-flex; align-items:center; justify-content:flex-end; gap:6px; }
.record-list__meta{ margin-top:2px; color:var(--placeholder); font-size:12.5px; line-height:1.35; }
.record-list__name{ display:flex; align-items:center; gap:10px; min-width:0; }
.record-list__title{ min-width:0; }
.record-list tbody tr:nth-child(-n+6){ animation:row-in .32s ease; }
.record-list tbody tr:nth-child(2){ animation-delay:.03s; }
.record-list tbody tr:nth-child(3){ animation-delay:.06s; }
.record-list tbody tr:nth-child(4){ animation-delay:.09s; }
.record-list tbody tr:nth-child(5){ animation-delay:.12s; }
.record-list tbody tr:nth-child(6){ animation-delay:.15s; }
@keyframes row-in{
    from{ opacity:0; }
    to{ opacity:1; }
}
.mark{
    display:inline-grid; place-items:center; flex:0 0 auto;
    width:28px; height:28px; border-radius:8px;
    background:var(--stone, #f3eadc); color:var(--brand2, var(--ink));
    font-size:11px; font-weight:700; letter-spacing:0; line-height:1;
}
.pill{
    display:inline-flex; align-items:center; gap:6px; max-width:100%;
    padding:3px 9px; border-radius:999px;
    background:color-mix(in srgb, var(--neutral) 14%, var(--mix-base));
    color:var(--neutral-ink);
    font-size:12px; font-weight:700; line-height:1.3;
    transition:background-color .2s ease, color .2s ease;
}
.pill::before{
    content:""; width:6px; height:6px; border-radius:999px; flex:none;
    background:var(--neutral);
}
.pill--success{ background:color-mix(in srgb, var(--success) 14%, var(--mix-base)); color:var(--success-ink); }
.pill--success::before{ background:var(--success); }
.pill--warning{ background:color-mix(in srgb, var(--warning) 16%, var(--mix-base)); color:var(--warning-ink); }
.pill--warning::before{ background:var(--warning); }
.pill--state-action::before{ border-radius:2px; transform:rotate(45deg); }
.pill--state-external::before{ background:transparent; border:2px solid currentColor; }
.pill--info{ background:color-mix(in srgb, var(--info) 14%, var(--mix-base)); color:var(--info-ink); }
.pill--info::before{ background:var(--info); }
.pill--danger{ background:color-mix(in srgb, var(--danger) 12%, var(--mix-base)); color:var(--danger-ink); }
.pill--danger::before{ background:var(--danger); }
.pill--neutral{ background:color-mix(in srgb, var(--neutral) 12%, var(--mix-base)); color:var(--neutral-ink); }
.identity{
    display:flex; align-items:flex-start; gap:14px;
    margin:0 0 22px;
}
.identity__copy{ flex:1 1 auto; min-width:0; }
.identity .mark{ width:40px; height:40px; border-radius:10px; font-size:13px; margin-top:2px; }
.identity .card-kicker{ margin:0 0 4px; }
.identity .card-title{ margin:0; }
.identity__facts{
    margin:8px 0 0; color:var(--placeholder); font-size:13px; line-height:1.4;
}
.identity .pill{ margin-top:6px; flex:none; }
.sectionbar__mark{
    width:28px; height:28px; margin-right:10px; border-radius:8px;
    display:inline-grid; place-items:center; flex:0 0 auto;
    background:var(--stone); color:var(--brand2);
}
.sectionbar__mark .icon{ width:16px; height:16px; opacity:1; }
.confirm{
    display:flex; flex-direction:column; align-items:flex-start; gap:8px;
    max-width:28rem; margin:12px 0 0;
}
.confirm .empty-state__title{ margin:0; font-size:1.7rem; }
.toast{
    position:fixed; z-index:800; bottom:20px; left:50%; transform:translateX(-50%);
    display:flex; align-items:center; gap:12px;
    max-width:min(92vw, 380px);
    padding:8px 10px 8px 8px;
    background:var(--panel); color:var(--ink);
    border:1px solid var(--border); border-radius:14px;
    box-shadow:0 16px 40px color-mix(in srgb, var(--ink) 14%, transparent);
    animation:toast-in .2s ease;
}
.toast__art{ width:72px; height:54px; flex:none; }
.toast__text{ margin:0; font-weight:600; font-size:14px; line-height:1.35; }
.toast__close{
    margin-left:auto; border:0; background:transparent; color:var(--placeholder);
    font:inherit; font-size:12px; font-weight:700; cursor:pointer; padding:6px 8px; border-radius:8px;
}
.toast__close:hover{ background:var(--hover); color:var(--ink); }
.desk{
    display:grid; grid-template-columns:88px minmax(0, 1fr); gap:16px; align-items:center;
    padding:16px 18px; border:1px solid var(--border); border-radius:14px; background:var(--panel);
}
.desk__art{ width:88px; height:66px; }
.desk__title{
    margin:0 0 6px; font-family:var(--serif); font-size:1.35rem; letter-spacing:-0.03em; color:var(--ink);
}
.desk__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.desk__list a{ color:var(--ink); font-weight:600; text-decoration:none; }
.desk__list a:hover{ color:var(--brand2); }
.desk__meta{ color:var(--placeholder); font-weight:500; font-size:12.5px; }
.desk__wall{ margin:8px 0 0; font-size:13px; color:var(--title); }
.desk__wall a{ color:var(--brand2); font-weight:700; text-decoration:none; }
.launch-tile__meta{ font-size:12px; font-weight:600; color:var(--brand2); }
.record-list__grouphead th{
    padding-top:16px; padding-bottom:8px; background:transparent; border-bottom:none;
    text-align:left; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--title);
}
.record-list tbody:first-of-type .record-list__grouphead th{ padding-top:8px; }
.record-list .empty-state{ padding:56px 20px 48px; max-width:32rem; }
.record-list .table-hover tbody tr.record-list__grouphead:hover{ background:transparent; }
.record-list__badge{
    display:inline-flex; align-items:center; justify-content:center; min-width:1.5rem;
    margin-left:6px; padding:1px 7px; border-radius:999px; font-size:11px; letter-spacing:0;
    text-transform:none; background:var(--title-strip); border:1px solid var(--title-strip-border);
}
.record-list__manage{ width:1%; text-align:right; white-space:nowrap; }
.record-list__cell{
    width:1%; white-space:nowrap; color:var(--body); font-size:13px; font-weight:500;
}
.record-list__cell--wrap{
    width:28%; min-width:12rem; white-space:normal;
}
.record-list th.record-list__cell{ font-weight:700; }
.rowmenu{ position:relative; display:inline-block; text-align:left; }
.rowmenu > summary{ list-style:none; cursor:pointer; }
.rowmenu > summary::-webkit-details-marker{ display:none; }
.rowmenu__panel{
    position:fixed; z-index:40; min-width:180px; padding:6px;
    border-radius:8px; background:var(--surface); border:1px solid var(--border);
    box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.rowmenu__item{
    display:block; padding:8px 10px; border-radius:6px; text-decoration:none;
    color:var(--ink); font-weight:600; font-size:13px;
}
.rowmenu__item:hover, .rowmenu__item:focus-visible{ background:var(--hover); outline:none; }
.rowmenu__item--danger{ color:var(--danger); }
.rowmenu__divider{ height:1px; margin:6px 8px; background:var(--border); }
.record-back{ margin:0 0 12px; }
.record-back a{
    color:var(--brand2);
    font-size:13px;
    font-weight:600;
    text-decoration:none;
}
.record-back a:hover{ text-decoration:underline; }
.record-list__empty, .record-list__nomatch{ margin:0; color:var(--placeholder); }
.record-list__sr{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
@media (max-width:640px){
    .record-list__bar .btn--primary{ margin-left:0; }
    .record-list__tools{ margin-left:0; }
    .record-list__search{ max-width:none; flex-basis:100%; }
}

.record-list td.record-sheet__control{ width:34%; min-width:14rem; white-space:normal; }
.record-sheet__control .input,
.record-sheet__control .text,
.record-sheet__control .select{
    width:100%;
    min-width:10rem;
}
.work-toolbar{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px 16px;
    margin:0 0 16px;
}
.work-toolbar .btn{ margin-left:auto; }
.work-views{
    display:inline-flex;
    gap:2px;
    padding:3px;
    border-radius:8px;
    background:var(--stone);
}
.work-views__link{
    padding:6px 12px;
    border-radius:6px;
    color:var(--body);
    font-size:13px;
    font-weight:600;
    text-decoration:none;
}
.work-views__link:hover{ color:var(--ink); }
.work-views__link.is-selected{
    background:var(--panel);
    color:var(--ink);
}
.work-scope{
    display:flex;
    align-items:baseline;
    gap:14px;
}
.work-scope__link{
    color:var(--placeholder);
    font-size:13px;
    font-weight:600;
    text-decoration:none;
}
.work-scope__link:hover,
.work-scope__link.is-selected{ color:var(--ink); }
.work-scope__link.is-selected{ box-shadow:inset 0 -2px 0 var(--brand); }
.work-empty{ margin:8px 0 0; color:var(--placeholder); }
.work-empty a{ color:var(--brand2); }

.work-board{
    display:flex;
    gap:12px;
    overflow-x:auto;
    align-items:stretch;
    margin:0 0 8px;
    padding-bottom:4px;
}
.work-board__col{
    display:flex;
    flex-direction:column;
    flex:1 0 200px;
    min-width:200px;
    max-width:280px;
    padding:8px;
    border:1px solid var(--border);
    border-radius:8px;
    background:var(--page-bg);
}
.work-board__col[data-tone="success"]{ background:color-mix(in srgb, var(--success) 10%, var(--page-bg)); }
.work-board__col[data-tone="warning"]{ background:color-mix(in srgb, var(--warning) 12%, var(--page-bg)); }
.work-board__col[data-tone="info"]{ background:color-mix(in srgb, var(--info) 10%, var(--page-bg)); }
.work-board__col[data-tone="danger"]{ background:color-mix(in srgb, var(--danger) 9%, var(--page-bg)); }
.work-board__col[data-state="action"]{ border-top:3px solid var(--warning); }
.work-board__col[data-state="external"]{ border-top:3px dashed var(--warning); }
.work-board__col[data-state="action"] .work-board__dot{ border-radius:2px; transform:rotate(45deg); }
.work-board__col[data-state="external"] .work-board__dot{ background:transparent; border:2px solid var(--warning); }
.work-board__label{ display:inline-flex; align-items:center; gap:8px; min-width:0; }
.work-board__dot{ width:8px; height:8px; border-radius:999px; background:var(--neutral); flex:none; }
.work-board__col[data-tone="success"] .work-board__dot{ background:var(--success); }
.work-board__col[data-tone="warning"] .work-board__dot{ background:var(--warning); }
.work-board__col[data-tone="info"] .work-board__dot{ background:var(--info); }
.work-board__col[data-tone="danger"] .work-board__dot{ background:var(--danger); }
.work-board__col.is-over{
    border-color:var(--brand);
    background:var(--hover);
}
.work-board__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:8px;
    font-size:12px;
    font-weight:700;
}
.work-board__count{
    color:var(--placeholder);
    font-variant-numeric:tabular-nums;
}
.work-board__cards{
    display:flex;
    flex-direction:column;
    gap:8px;
    flex:1;
    min-height:4.5rem;
}
.work-card{
    padding:12px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel);
    cursor:grab;
    animation:card-in .32s ease both;
}
.work-card.is-settled{ animation:card-in .28s ease; }
@keyframes card-in{
    from{ opacity:0; transform:translateY(6px); }
    to{ opacity:1; transform:none; }
}
.work-card__foot{
    display:flex; align-items:center; gap:8px; margin-top:10px;
}
.work-card__foot .work-card__owner{ margin:0; display:flex; align-items:center; gap:8px; }
.work-card__owner-name{ color:var(--placeholder); font-size:12px; }
.work-card.is-dragging{ opacity:.55; }
.work-card__title{
    display:block;
    font-weight:700;
    letter-spacing:-0.01em;
    text-decoration:none;
    color:inherit;
}
.work-card__detail,
.work-card__log,
.work-card__owner{
    margin:6px 0 0;
    font-size:13px;
    line-height:1.35;
    color:var(--body);
}
.work-card__owner{ color:var(--placeholder); font-size:12px; }
.work-card__move{
    display:block;
    margin-top:8px;
    font-size:12px;
    color:var(--placeholder);
}
@media (hover:hover){
    .work-card__move{ opacity:0; }
    .work-card:hover .work-card__move,
    .work-card:focus-within .work-card__move{ opacity:1; }
}
.work-card__move select{
    margin-left:4px;
    max-width:100%;
}
@media (prefers-reduced-motion: reduce){
    .launch-tile,.launch-tile__icon,.topnav .menu__panel,.pill,.work-card,.record-list tbody tr,.toast{ transition:none; animation:none; }
    .launch-tile:hover{ transform:none; }
}

.record-tools{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 22px;
}
.record-tool{
    display:flex;
    align-items:baseline;
    gap:10px;
    flex:1 1 9.5rem;
    min-width:0;
    min-height:44px;
    padding:8px 12px;
    border:1px solid var(--border);
    border-radius:10px;
    background:color-mix(in srgb, var(--stone, #f4f1ea) 65%, var(--panel));
    color:var(--ink);
    font:inherit;
    font-weight:700;
    text-align:left;
    cursor:pointer;
}
.record-tool:hover{
    border-color:color-mix(in srgb, var(--brand) 45%, var(--border));
}
.record-tool:focus-visible{
    outline:2px solid var(--ring);
    outline-offset:2px;
}
.record-tool__title{ flex:none; }
.record-tool__meta{
    margin-left:auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--placeholder);
    font-size:13px;
    font-weight:600;
}
.sheet-pop{
    width:min(40rem, calc(100vw - 24px));
    max-height:min(36rem, calc(100dvh - 24px));
    margin:auto;
    padding:0;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--panel);
    color:var(--ink);
    box-shadow:0 24px 60px color-mix(in srgb, var(--ink) 22%, transparent);
}
.sheet-pop:not([open]){ display:none; }
.sheet-pop::backdrop{
    background:color-mix(in srgb, var(--ink) 42%, transparent);
}
.sheet-pop__panel{
    display:flex;
    flex-direction:column;
    max-height:min(36rem, calc(100dvh - 24px));
    margin:0;
}
.sheet-pop__head{
    display:flex;
    align-items:center;
    gap:12px;
    padding:16px 18px 0;
}
.sheet-pop__title{
    margin:0;
    font-size:1.15rem;
    font-weight:700;
    letter-spacing:-0.02em;
}
.sheet-pop__close{ margin-left:auto; }
.sheet-pop__body{
    overflow:auto;
    padding:14px 18px 4px;
}
.sheet-pop__body > .label{ display:block; margin:12px 0 8px; }
.sheet-pop__note{ margin:10px 0 0; }
.sheet-pop__actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:14px 18px 16px;
}
.sheet-pop__body .group-security-list:has(> .group-security-item){
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px 16px;
}
.file-lines{
    list-style:none;
    margin:0 0 4px;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:8px;
}
.file-lines__item{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 12px;
    padding:8px 10px;
    border:1px solid var(--border);
    border-radius:8px;
    background:var(--surface);
}
.file-lines__item .record-link{ flex:1 1 8rem; min-width:0; }
.file-lines__meta{
    color:var(--placeholder);
    font-size:12.5px;
}
.file-lines__item .btn{ margin-left:auto; }
@media (max-width:640px){
    .sheet-pop__body .group-security-list:has(> .group-security-item){
        grid-template-columns:minmax(0, 1fr);
    }
}
.form-grid{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:20px 28px;
    width:100%;
    max-width:none;
}
.form-grid .field{ display:grid; gap:8px; }
.form-grid .label{ font-size:13px; font-weight:600; color:var(--title); white-space:normal; overflow:visible; text-overflow:unset; }
.criteria-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.criteria-row > .select,
.criteria-row > .input{ width:auto; flex:1 1 9rem; min-width:8rem; }
.criteria-row > .select:last-child{ flex:0 1 7.5rem; }
.readonly-value{
    flex:1 1 12rem;
    padding:9px 12px;
    border:1px solid var(--border);
    border-radius:6px;
    background:var(--page-bg);
    color:var(--body);
    line-height:1.4;
}
.choice-list{ display:flex; flex-direction:column; gap:8px; }
.choice-list__row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 12px;
    border:1px solid var(--border);
    border-radius:8px;
    background:var(--surface);
}
.menu-editor-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(8rem,14rem) auto;
    gap:12px;
    align-items:center;
    margin:0 0 8px;
}
.menu-editor-row:last-child{ margin-bottom:0; }
.menu-editor-wrap{ flex:1 1 100%; min-width:0; }
.menu-editor-wrap > .label{ margin:12px 0 8px; }
.menu-editor-wrap > .field-note{ margin:0 0 12px; }
.menu-cascade-label{ margin-top:12px; }
.menu-cascade-gap{ height:8px; }
.choice-list__sort{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--title); }
.field-note{ margin:0; color:var(--placeholder); font-size:13px; line-height:1.4; }
.log-item{
    position:relative;
    margin:0;
    padding:0 0 16px 22px;
    border:0;
}
.log-item::before{
    content:"";
    position:absolute; left:4px; top:8px; bottom:-4px; width:1px;
    background:var(--border);
}
.log-item::after{
    content:"";
    position:absolute; left:0; top:6px; width:9px; height:9px; border-radius:999px;
    background:var(--brand);
    box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 16%, var(--mix-base));
}
.log-item:last-child{ padding-bottom:0; }
.log-item:last-child::before{ display:none; }
.log-heading{ margin:0 0 4px; font-size:12.5px; color:var(--placeholder); }
.log-text{ line-height:1.5; overflow-wrap:anywhere; }

.pagehead{ padding:28px var(--page-gutter) 0; }
.pagehead__title--sr{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.pagehead__eyebrow{
    margin:0;
    font-size:12px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--title);
}
.pagehead__title{
    margin:4px 0 0;
    font-size:28px;
    line-height:1.15;
    font-weight:700;
    letter-spacing:-0.03em;
    color:var(--ink);
}

.topnav__user{
    display:inline-flex;
    align-items:center;
    max-width:11rem;
    min-height:40px;
    font-size:13px;
    font-weight:600;
    color:var(--body);
    padding:0 12px;
    border-radius:6px;
    background:var(--hover);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
@media (max-width:960px){
    .topnav__user{ display:none; }
}

.app-footer{
    display:flex;
    gap:16px;
    align-items:center;
    padding:20px 20px 28px;
    color:var(--placeholder);
    font-size:12px;
}
.app-footer a{ color:inherit; }

.card:has(> .form-block > .notice-wall){
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}
.notice-wall{ display:flex; flex-direction:column; gap:14px; }
.notice{
    padding:20px 22px;
    border:1px solid var(--border);
    border-left-width:3px;
    border-left-color:var(--brand);
    border-radius:12px;
    background:var(--panel);
}
.notice--lead{
    display:grid;
    grid-template-columns:minmax(140px, 200px) minmax(0, 1fr);
    gap:8px 32px;
    align-items:center;
    padding:36px 40px;
    border:0;
    border-radius:16px;
    background:var(--ink);
    color:#e2e8f0;
}
.notice__art{ width:100%; height:auto; display:block; }
.notice__kicker{
    margin:0 0 8px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--placeholder);
}
.notice--lead .notice__kicker{ color:#99f6e4; }
.notice__subject{
    margin:0;
    font-size:1.35rem;
    font-weight:700;
    letter-spacing:-0.03em;
    line-height:1.15;
    color:var(--ink);
}
.notice--lead .notice__subject{
    font-size:clamp(2rem, 4vw, 3.2rem);
    color:#fff;
}
.notice__body{
    margin:10px 0 0;
    max-width:40rem;
    font-size:16px;
    line-height:1.55;
    overflow-wrap:anywhere;
}
.notice--lead .notice__body{ margin-top:14px; color:#cbd5e1; font-size:17px; }
.notice__meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 16px;
    margin-top:18px;
    color:var(--placeholder);
    font-size:13px;
}
.notice--lead .notice__meta{ margin-top:26px; color:#94a3b8; }
.notice__actions{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px; }
.notice--lead .btn--quiet{ color:#e2e8f0; }
.notice--lead .btn--quiet:hover,
.notice--lead .btn--quiet:focus-visible{ color:#fff; background:rgba(255,255,255,.08); }
.notice--lead .btn--danger{ color:#fecaca; background:transparent; }
.notice--lead .btn--danger:hover,
.notice--lead .btn--danger:focus-visible{ color:#fff; background:rgba(185,28,28,.35); }
@media (max-width:720px){
    .notice--lead{ grid-template-columns:1fr; padding:24px 20px; }
    .notice__art{ width:140px; }
    .notice__actions{ margin-left:0; }
}
a.btn{ text-decoration:none; }

.response{
    max-width:44rem;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
}
.response__detail{
    flex:1 1 100%;
    margin:0;
    font-size:15px;
    line-height:1.5;
    color:var(--body);
}
.response a.URL,
.response a.link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:8px 12px;
    border-radius:6px;
    font-weight:600;
    line-height:1.2;
    text-decoration:none;
    color:#fff;
    background:var(--brand);
    border:1px solid transparent;
}
.response a.URL::after{ display:none; }
.response a.URL:hover,
.response a.link:hover{ color:#fff; background:var(--btn-primary-hover); }


/* =========================================================
   Forms — layout, controls, states
   ========================================================= */

/* Short fields pair up when the card has room; anything with more than one control, or a wide one, takes the row. */
@container sheet (min-width: 46rem){
    .form-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .group-security-list:has(> .group-security-item){
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:8px 16px;
    }
}
.form-grid > :not(.field),
.form-grid > .field:has(textarea, table, .field-picker, .field-stack, .group-security-list, .perm-apps, .menu-editor-wrap, .mlm-fields, .criteria-row, .cf-row, .is-inline, .readonly-value, .field-note, input[type="file"]),
.form-grid > .field.field--wide{
    grid-column:1 / -1;
}
.form-grid > .field > :where(.input, .select, .textarea){ max-width:none; }

/* Fields: a quiet marker for required, one place for errors */
.label.is-required::after{
    content:" *";
    color:var(--invalid);
    font-weight:700;
}
.field-error{
    margin:0;
    color:var(--danger-ink, var(--invalid));
    font-size:13px;
    line-height:1.4;
    font-weight:500;
}
.input[aria-invalid="true"],
.textarea[aria-invalid="true"],
.select[aria-invalid="true"],
.input:user-invalid,
.textarea:user-invalid,
.select:user-invalid{
    border-color:var(--invalid);
    box-shadow:0 0 0 1px var(--invalid);
}
.input[aria-invalid="true"]:focus,
.textarea[aria-invalid="true"]:focus,
.select[aria-invalid="true"]:focus,
.input:user-invalid:focus,
.textarea:user-invalid:focus,
.select:user-invalid:focus{
    border-color:var(--invalid);
    box-shadow:0 0 0 1px var(--invalid), 0 0 0 4px color-mix(in srgb, var(--invalid) 25%, transparent);
}
.form-errors{
    margin:0 0 22px;
    padding:12px 16px;
    border:1px solid color-mix(in srgb, var(--invalid) 35%, var(--border));
    border-left-width:3px;
    border-left-color:var(--invalid);
    border-radius:10px;
    background:color-mix(in srgb, var(--invalid) 6%, var(--mix-base));
    color:var(--danger-ink, var(--invalid));
    font-size:13.5px;
    line-height:1.45;
}
.form-errors:focus{ outline:none; }
.form-errors__title{ margin:0 0 4px; font-weight:700; }
.form-errors ul{ margin:0; padding-left:18px; }
.form-errors a{ color:inherit; text-underline-offset:2px; }

/* Controls */
.input:disabled,
.textarea:disabled,
.select:disabled{
    background-color:var(--page-bg);
    color:var(--placeholder);
    border-color:var(--border);
    cursor:not-allowed;
}
.input[readonly],
.textarea[readonly]{
    background-color:var(--page-bg);
    border-color:var(--border);
    box-shadow:none;
}
.textarea{ field-sizing:content; max-height:28rem; }

.select{
    appearance:none;
    -webkit-appearance:none;
    padding-right:42px;
    background-color:var(--surface);
    background-image:
        linear-gradient(45deg, transparent 50%, var(--title) 50%),
        linear-gradient(135deg, var(--title) 50%, transparent 50%);
    background-position:calc(100% - 21px) 50%, calc(100% - 15px) 50%;
    background-size:6px 6px, 6px 6px;
    background-repeat:no-repeat;
    cursor:pointer;
}
.select[multiple],
.select[size]:not([size="0"]):not([size="1"]){
    padding-right:14px;
    background-image:none;
    cursor:default;
}
.select:disabled{ cursor:not-allowed; }

:where(input[type="checkbox"], input[type="radio"]){
    accent-color:var(--brand);
    width:1.125rem;
    height:1.125rem;
    margin:0;
    flex:none;
}
label.checkbox{
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-height:28px;
    cursor:pointer;
}
input[type="file"]{ font:inherit; color:var(--body); }
input[type="file"].input{ padding:6px; }
input[type="file"]::file-selector-button{
    margin-right:12px;
    padding:6px 14px;
    border:1px solid var(--field-border);
    border-radius:6px;
    background:var(--panel);
    color:var(--ink);
    font:inherit;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    transition:background .15s;
}
input[type="file"]::file-selector-button:hover{ background:var(--hover); }

.input-affix{ position:relative; display:block; min-width:0; }
.input-affix > .input{ padding-right:72px; }
.input-affix__toggle{
    position:absolute;
    inset-block:4px;
    right:4px;
    padding:0 12px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:var(--title);
    font:inherit;
    font-size:12.5px;
    font-weight:600;
    cursor:pointer;
}
.input-affix__toggle:hover{ background:var(--hover); }
.input-affix__toggle:focus-visible{ outline:2px solid var(--ring); outline-offset:0; }

.form-help,
.field-note{ text-wrap:pretty; max-width:62ch; }
.card--sheet > .card-title,
.card--sheet > .card-head > .card-title{ text-wrap:balance; }

/* Buttons */
.btn{ min-height:38px; transition:background .15s, border-color .15s, opacity .15s; }
.btn:disabled,
.btn[aria-disabled="true"]{
    opacity:.55;
    cursor:not-allowed;
}
.btn.is-busy{
    cursor:progress;
    opacity:.8;
    background-image:linear-gradient(110deg, transparent 35%, rgba(255,255,255,.35) 50%, transparent 65%);
    background-size:220% 100%;
    animation:btn-busy 1.1s linear infinite;
}
@keyframes btn-busy{
    from{ background-position:120% 0; }
    to{ background-position:-120% 0; }
}

/* The action bar stays with long forms so Save is never a scroll away */
.card--sheet .form-actions{
    position:sticky;
    bottom:0;
    z-index:3;
    margin:28px calc(var(--sheet-px) * -1) calc(var(--sheet-pb) * -1);
    padding:14px var(--sheet-px);
    border-top:1px solid var(--border);
    border-radius:0 0 12px 12px;
    background:color-mix(in srgb, var(--panel) 90%, transparent);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
}
.card--sheet .form-actions .btn--primary{ min-width:7.5rem; }
@media (max-width:640px){
    .card--sheet .form-actions .btn--primary{ flex:1 1 auto; }
}

/* Touch: 16px text keeps iOS from zooming on focus, and targets reach 44px */
@media (pointer:coarse){
    .input,.textarea,.select,.text{ font-size:16px; min-height:46px; }
    .btn{ min-height:44px; }
    label.checkbox{ min-height:36px; }
    :where(input[type="checkbox"], input[type="radio"]){ width:1.25rem; height:1.25rem; }
}

@media (prefers-reduced-motion: reduce){
    .input,.textarea,.select,.btn{ transition:none; }
    .btn.is-busy{ animation:none; }
}
@media (forced-colors: active){
    .input[aria-invalid="true"],
    .textarea[aria-invalid="true"],
    .select[aria-invalid="true"]{ border-width:2px; }
    .btn--primary{ border:1px solid ButtonText; }
}

.page-setup .login-shell{ grid-template-columns:minmax(0,40rem) minmax(0,520px); align-content:start; }
.page-setup .login-atmosphere{ overflow:auto; justify-content:flex-start; }
.page-setup .login-card{ max-width:520px; }
.page-setup .login-atmosphere__copy{ max-width:40rem; }
.page-setup .login-center{ justify-content:flex-start; padding-top:32px; }
.setup-help{ font-size:14px; line-height:1.5; color:var(--ink); }
.setup-help__title{ margin:0 0 10px; font-size:22px; letter-spacing:-0.03em; }
.setup-help__heading{ margin:16px 0 6px; font-size:14px; letter-spacing:-0.01em; }
.setup-help__text{ margin:0 0 8px; }
.setup-help__list{ margin:0 0 8px; padding-left:1.15rem; }
.setup-help code{
    font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size:12px;
    word-break:break-all;
}
.setup-help__pre{
    margin:0 0 10px;
    padding:10px 12px;
    white-space:pre-wrap;
    word-break:break-all;
    font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size:12px;
    line-height:1.45;
    border:1px solid var(--border);
    border-radius:8px;
    background:color-mix(in srgb, var(--ink) 4%, transparent);
}
.setup-facts{ margin:0 0 10px; display:grid; grid-template-columns:8.5rem minmax(0, 1fr); gap:4px 10px; }
.setup-facts dt{ margin:0; font-size:12px; font-weight:700; color:var(--title, var(--ink)); }
.setup-facts dd{ margin:0; }
.setup-form-title{ margin:18px 0 6px; font-size:18px; }
.setup-stores{ list-style:none; margin:0 0 8px; padding:0; display:flex; flex-direction:column; gap:12px; }
.setup-store{ padding:12px 0; border-top:1px solid var(--border); }
.setup-store__name{ font-weight:700; }
.setup-inline{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:6px 0; }
.setup-inline .input{ max-width:220px; }
.login-notice{
    margin:0 0 12px;
    padding:10px 12px;
    border-radius:8px;
    background:color-mix(in srgb, var(--ink) 6%, transparent);
    font-size:14px;
}
@media (max-width:960px){
    .setup-facts{ grid-template-columns:1fr; }
}
@media (max-width:900px){
    .page-setup .login-atmosphere{ display:flex; padding:28px 4px 8px; border-bottom:1px solid var(--border); }
    .page-setup .login-shell{ grid-template-columns:minmax(0,1fr); }
}

.skip-link{
    position:absolute; left:12px; top:-60px; z-index:1000;
    padding:10px 14px; border-radius:10px; background:var(--ink); color:var(--page-bg, #fff);
    font-weight:600; font-size:14px; text-decoration:none;
}
.skip-link:focus{ top:12px; outline:2px solid var(--ring); outline-offset:2px; }
.theme-swatch--follow .theme-swatch__chip{
    background:repeating-linear-gradient(135deg, var(--border) 0 4px, transparent 4px 8px);
}
