/* Kuickr compatibility component library (spec 20 / 22). Scoped under .kapp so it
   only styles the signed-in app shell, never the docs/landing layouts. Tokens
   from the legacy warm-paper vocabulary. The bridge delegates every visual role
   to the current Winter `--kk-*` contract; keep it identical to _doc_tokens. */
:root{
  --k-bg:var(--kk-bg); --k-warm:var(--kk-wash); --k-card:var(--kk-card); --k-elevated:var(--kk-card);
  --k-ink:var(--kk-ink); --k-muted:var(--kk-text-soft); --k-light:var(--kk-text-soft); --k-faint:var(--kk-muted);
  --k-accent:var(--kk-primary); --k-accent-soft:var(--kk-fill); --k-accent-hover:var(--kk-ink); --k-accent-dark:var(--kk-primary);
  --k-green:#1B7D3F; --k-green-soft:#DCF0E3; --k-blue:#1D5BD6; --k-blue-soft:#E0EAFC;
  --k-amber:#C47F17; --k-amber-soft:#FDF2D0; --k-purple:#6B4FCF; --k-purple-soft:#ECE6FB;
  --k-border:var(--kk-border); --k-border-light:var(--kk-line); --k-border-focus:var(--kk-secondary);
  --k-r:10px; --k-rs:6px; --k-rl:16px;
  --k-sh:0 1px 2px rgba(0,0,0,.04); --k-shm:0 8px 30px rgba(0,0,0,.14); --k-shl:0 16px 50px rgba(0,0,0,.20);
  --k-serif:'Instrument Serif',Georgia,serif; --k-sans:'DM Sans','Inter',system-ui,sans-serif; --k-mono:'JetBrains Mono',monospace;
}
:root[data-theme="dark"]{
  --k-bg:var(--kk-bg); --k-warm:var(--kk-wash); --k-card:var(--kk-card); --k-elevated:var(--kk-card);
  --k-ink:var(--kk-ink); --k-muted:var(--kk-text-soft); --k-light:var(--kk-text-soft); --k-faint:var(--kk-muted);
  --k-accent:var(--kk-primary); --k-accent-soft:var(--kk-fill); --k-accent-hover:var(--kk-ink); --k-accent-dark:var(--kk-primary);
  --k-green:#4FB87A; --k-green-soft:#16251C; --k-blue:#7FB0FF; --k-blue-soft:#172033;
  --k-amber:#E0A93C; --k-amber-soft:#2A2210; --k-purple:#A28BF0; --k-purple-soft:#221C33;
  --k-border:var(--kk-border); --k-border-light:var(--kk-line); --k-border-focus:var(--kk-secondary);
  --k-sh:none; --k-shm:0 8px 30px rgba(0,0,0,.40); --k-shl:0 16px 50px rgba(0,0,0,.55);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --k-bg:var(--kk-bg); --k-warm:var(--kk-wash); --k-card:var(--kk-card); --k-elevated:var(--kk-card);
  --k-ink:var(--kk-ink); --k-muted:var(--kk-text-soft); --k-light:var(--kk-text-soft); --k-faint:var(--kk-muted);
  --k-accent:var(--kk-primary); --k-accent-soft:var(--kk-fill); --k-accent-hover:var(--kk-ink); --k-accent-dark:var(--kk-primary);
  --k-green:#4FB87A; --k-green-soft:#16251C; --k-blue:#7FB0FF; --k-blue-soft:#172033;
  --k-amber:#E0A93C; --k-amber-soft:#2A2210; --k-purple:#A28BF0; --k-purple-soft:#221C33;
  --k-border:var(--kk-border); --k-border-light:var(--kk-line); --k-border-focus:var(--kk-secondary);
  --k-sh:none; --k-shm:0 8px 30px rgba(0,0,0,.40); --k-shl:0 16px 50px rgba(0,0,0,.55);
}}

body.kapp{background:var(--k-bg);color:var(--k-ink);font-family:var(--k-sans);-webkit-font-smoothing:antialiased;}
.kapp a{color:inherit;text-decoration:none;}

/* top nav */
.kapp .knav{position:sticky;top:0;z-index:100;height:54px;display:flex;align-items:center;justify-content:space-between;
     padding:0 24px;background:color-mix(in srgb,var(--k-bg) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--k-border-light);}
.kapp .knav .left{display:flex;align-items:center;gap:14px;}
.kapp .knav .brand{font-family:var(--k-serif);font-size:20px;letter-spacing:-.02em;color:var(--k-ink);}
.kapp .knav .tab{font-size:13px;color:var(--k-ink);background:var(--k-warm);padding:5px 12px;border-radius:var(--k-rs);font-weight:550;}
.kapp .knav .actions{display:flex;align-items:center;gap:4px;}
.kapp .knav .actions a,.kapp .knav .actions button{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:var(--k-rs);color:var(--k-light);background:none;border:none;cursor:pointer;}
.kapp .knav .actions a:hover,.kapp .knav .actions button:hover{background:var(--k-warm);color:var(--k-ink);}
.kapp .hidden{display:none;}

.kapp .kwrap{max-width:940px;margin:0 auto;padding:34px 24px 100px;}

/* buttons */
.kapp .btn{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;border:none;padding:10px 16px;font-family:var(--k-sans);}
.kapp .btn-accent{background:var(--kk-primary);color:var(--kk-on-primary);} .kapp .btn-accent:hover{filter:brightness(.96);}
.kapp .btn-dark{background:var(--k-ink);color:var(--k-bg);}
.kapp .btn-outline{background:transparent;color:var(--k-ink);border:1px solid var(--k-border);}
.kapp .btn-outline:hover{border-color:var(--k-accent);color:var(--k-accent);}
.kapp .btn-sm{padding:7px 13px;font-size:13px;}

/* header */
.kapp .khead{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px;}
.kapp .khead h1{font-family:var(--k-serif);font-weight:400;font-size:clamp(1.6rem,7vw,36px);letter-spacing:-.02em;line-height:1;}
.kapp .khead .sub{font-size:13.5px;color:var(--k-muted);margin-top:6px;}

/* pills */
.kapp .kpills{display:flex;align-items:center;gap:6px;margin-bottom:22px;flex-wrap:wrap;}
.kapp .pill{font-size:12.5px;font-weight:550;padding:4px 13px;border-radius:18px;border:none;cursor:pointer;background:var(--k-warm);color:var(--k-muted);text-decoration:none;}
.kapp .pill.on{background:var(--k-ink);color:var(--k-bg);}
.kapp .pill.amber{background:var(--k-amber-soft);color:var(--k-amber);display:inline-flex;align-items:center;gap:5px;}

/* panels (settings / admin sections) */
.kapp .kpanel{background:var(--k-card);border:1px solid var(--k-border);border-radius:var(--k-r);padding:20px 22px;margin-bottom:16px;}
.kapp .kpanel.danger{border-color:#d9a89e;}
.kapp .kpanel h2{font-family:var(--k-serif);font-weight:400;font-size:21px;color:var(--k-ink);margin:0 0 3px;}
.kapp .kpanel .psub{font-size:13px;color:var(--k-muted);margin:0 0 14px;}
.kapp .btn-danger{background:transparent;color:#b23b2a;border:1px solid #d9a89e;}
.kapp .btn-danger:hover{background:#b23b2a;color:#fff;}
.kapp .muted-link{font-size:13px;color:var(--k-muted);} .kapp .muted-link:hover{color:var(--k-ink);}
.kapp .tok{font-family:var(--k-mono);font-size:13px;background:var(--k-warm);border:1px solid var(--k-border-light);border-radius:var(--k-rs);padding:9px 12px;word-break:break-all;}

/* groups + rows (LibraryMode) */
.kapp .kgroup{margin-bottom:28px;}
.kapp .gh{display:flex;align-items:baseline;gap:9px;margin:0 4px 10px;}
.kapp .gh .name{font-family:var(--k-serif);font-size:22px;color:var(--k-ink);}
.kapp .gh .slug{font-family:var(--k-mono);font-size:11px;color:var(--k-light);}
.kapp .gh .count{font-family:var(--k-mono);font-size:11px;color:var(--k-faint);margin-left:auto;}
.kapp .kcard{border:1px solid var(--k-border);border-radius:var(--k-r);overflow:hidden;background:var(--k-card);}
.kapp .krow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;cursor:pointer;transition:background .12s;}
.kapp .krow:hover{background:var(--k-warm);}
.kapp .krow .l{display:flex;align-items:center;gap:14px;min-width:0;}
.kapp .krow .type{font-family:var(--k-mono);font-size:9.5px;font-weight:500;color:var(--k-light);text-transform:uppercase;letter-spacing:.06em;width:58px;flex-shrink:0;}
.kapp .krow .title{font-size:14px;font-weight:550;color:var(--k-ink);}
.kapp .krow .meta{font-size:12px;color:var(--k-light);margin-top:1px;}
.kapp .krow .r{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.kapp .krow .act{font-size:12.5px;color:var(--k-light);} .kapp .krow .act:hover{color:var(--k-ink);} .kapp .krow .act.view{color:var(--k-blue);}
.kapp .divline{height:1px;background:var(--k-border-light);margin:0 16px;}
.kapp .badge{font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:999px;}
.kapp .badge.green{background:var(--k-green-soft);color:var(--k-green);} .kapp .badge.gray{background:var(--k-warm);color:var(--k-muted);}
.kapp .badge.amber{background:var(--k-amber-soft);color:var(--k-amber);}
.kapp .badge.blue{background:var(--k-blue-soft);color:var(--k-blue);}

/* disclosure (progressive) */
.kapp details.kdisc{border-top:1px solid var(--k-border-light);}
.kapp details.kdisc>summary{list-style:none;cursor:pointer;padding:11px 16px;font-size:12.5px;font-weight:600;color:var(--k-muted);display:flex;align-items:center;gap:7px;}
.kapp details.kdisc>summary::-webkit-details-marker{display:none;}
.kapp details.kdisc>summary::before{content:"＋";color:var(--k-accent);font-weight:700;}
.kapp details.kdisc[open]>summary::before{content:"–";}
.kapp .kdisc-body{padding:0 16px 14px;}

/* forms */
.kapp .field{margin-bottom:16px;}
.kapp .field label{display:block;font-size:13px;font-weight:600;color:var(--k-ink);margin-bottom:6px;}
.kapp .field .hint{font-size:11.5px;color:var(--k-light);margin-top:6px;}
.kapp .input,.kapp .textarea,.kapp .select{width:100%;border:1px solid var(--k-border);background:var(--k-card);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--k-ink);font-family:var(--k-sans);}
.kapp .textarea{font-family:var(--k-mono);font-size:13px;resize:vertical;}
.kapp .inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.kapp .inline-form .input{width:auto;}

/* activity feed icon chip */
.kapp .actic{width:30px;height:30px;border-radius:8px;background:var(--k-warm);color:var(--k-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* doc reading (used in management previews) */
.kapp .empty{padding:20px 16px;text-align:center;color:var(--k-light);font-size:13px;}
.kapp .empty a{color:var(--k-accent);}

/* first-run hero + big tiles + template chips (spec 22 onboarding) */
.kapp .khero{text-align:center;padding:18px 0 6px;}
.kapp .khero .wave{font-size:38px;line-height:1;margin-bottom:8px;}
.kapp .khero h1{font-family:var(--k-serif);font-weight:400;font-size:clamp(1.6rem,7vw,36px);letter-spacing:-.02em;line-height:1.05;margin:0 0 6px;}
.kapp .khero h1 em{font-style:italic;color:var(--k-accent);}
.kapp .khero .sub{font-size:14.5px;color:var(--k-muted);max-width:440px;margin:0 auto;}
.kapp .ktiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0;}
.kapp .ktile{display:flex;flex-direction:column;gap:8px;background:var(--k-card);border:1px solid var(--k-border);border-radius:var(--k-r);padding:18px 16px;cursor:pointer;transition:border-color .12s,transform .12s;text-decoration:none;}
.kapp .ktile:hover{border-color:var(--k-accent);transform:translateY(-2px);}
.kapp .ktile .ico{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--k-accent-soft);color:var(--k-accent);}
.kapp .ktile .tt{font-size:15px;font-weight:650;color:var(--k-ink);}
.kapp .ktile .td{font-size:12.5px;color:var(--k-muted);line-height:1.5;}
.kapp .ktile .step{font-family:var(--k-mono);font-size:10px;color:var(--k-light);text-transform:uppercase;letter-spacing:.06em;}
.kapp .ktmpls{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 22px;}
.kapp .ktmpl{display:inline-flex;align-items:center;gap:7px;background:var(--k-card);border:1px solid var(--k-border);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:550;color:var(--k-ink);text-decoration:none;cursor:pointer;transition:border-color .12s;}
.kapp .ktmpl:hover{border-color:var(--k-accent);color:var(--k-accent);}
.kapp .seclabel{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--k-light);margin:0 2px 10px;}
@media (max-width:640px){.kapp .ktiles{grid-template-columns:1fr;}}

/* modal / drawer (Hotwire) */
.kapp .kscrim{position:fixed;inset:0;background:rgba(20,18,16,.45);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:200;}
.kapp .kmodal{width:460px;max-width:calc(100% - 32px);background:var(--k-card);border:1px solid var(--k-border);border-radius:var(--k-r);box-shadow:var(--k-shm);padding:22px;}
.kapp .kmodal h3{font-family:var(--k-serif);font-weight:400;font-size:24px;margin-bottom:4px;}
.kapp .radiocard{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--k-border);border-radius:8px;padding:12px 14px;margin-bottom:8px;cursor:pointer;}
.kapp .radiocard.on{border-color:var(--k-accent);background:var(--k-accent-soft);}
.kapp .radiocard .t{font-size:13.5px;font-weight:600;color:var(--k-ink);} .kapp .radiocard .d{font-size:12px;color:var(--k-muted);margin-top:1px;}
.kapp .linkpill{display:flex;align-items:center;gap:8px;background:var(--k-warm);border:1px solid var(--k-border-light);border-radius:var(--k-rs);padding:8px 10px;margin:14px 0;font-family:var(--k-mono);font-size:12px;}
.kapp .linkpill .u{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--k-ink);}
.kapp .kscrim{position:fixed;inset:0;background:rgba(20,18,16,.45);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding-top:9vh;z-index:200;}
.kapp .kmodal .md-sub{font-size:13px;color:var(--k-muted);margin-bottom:18px;}
/* RadioCard: hide the native input; active state + dependent reveal via :has (progressive disclosure, no JS) */
.kapp .radiocard input{position:absolute;opacity:0;width:0;height:0;}
.kapp .radiocard:has(input:checked){border-color:var(--k-accent);background:var(--k-accent-soft);}
.kapp .pw-field{display:none;}
.kapp .idx-field{display:none;margin:8px 2px 0;font-size:12.5px;color:var(--k-ink);}
.kapp form:has(#access_unlisted:checked) .pw-field{display:block;}
.kapp form:has(#access_public:checked) .idx-field{display:block;}
.kapp form:has(#access_private:checked) .kadv{display:none;}
.kapp .kshare-password{margin-top:8px;}
.kapp .kshare-check{display:flex;align-items:center;gap:7px;cursor:pointer;}
.kapp .kshare-check-spaced{margin-top:8px;}
.kapp .idx-field .hint{display:block;font-size:11.5px;color:var(--k-light);margin-top:3px;}
.kapp .kadv{border:1px solid var(--k-border-light);border-radius:var(--k-r);margin:12px 0;overflow:hidden;}
.kapp .kadv>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:13px;font-weight:600;color:var(--k-ink);user-select:none;background:var(--k-warm);}
.kapp .kadv>summary::-webkit-details-marker{display:none;}
.kapp .kadv>summary .chev{margin-left:auto;transition:transform .15s ease;color:var(--k-light);}
.kapp .kadv[open]>summary .chev{transform:rotate(180deg);}
.kapp .kadv[open]>summary{border-bottom:1px solid var(--k-border-light);}
.kapp .kadv-body{padding:14px;display:flex;flex-direction:column;gap:14px;}
.kapp .kadv-f{display:flex;flex-direction:column;gap:5px;}
.kapp .kadv-f>.lbl{font-size:12.5px;font-weight:600;color:var(--k-ink);}
.kapp .kadv-f .select{width:100%;}
.kapp .kadv-f .hint{font-size:11.5px;color:var(--k-light);line-height:1.4;}
.kapp .kadv-types{display:flex;flex-wrap:wrap;gap:6px;}
.kapp .kadv-types label{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;border:1px solid var(--k-border);border-radius:999px;padding:5px 10px;cursor:pointer;}
.kapp .kadv-types label:has(input:checked){border-color:var(--k-accent);background:var(--k-accent-soft);color:var(--k-accent);}

/* Page/Folder settings scope sheet (spec 23 · KUX-1110). One warm-paper token
   family, one control scale, and progressive disclosure by ownership scope. */
.kapp .ksettings-sheet{
  width:560px;max-width:calc(100% - 32px);max-height:82dvh;padding:0;overflow:auto;
  border-radius:var(--k-rl);background:var(--k-card);color:var(--k-ink);
}
.kapp .ksettings-head{
  position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 18px;border-bottom:1px solid var(--k-border-light);background:var(--k-card);
}
.kapp .ksettings-title{font-family:var(--k-serif);font-size:22px;line-height:1.1;}
.kapp .ksettings-head .md-sub{margin:3px 0 0;font-size:12px;color:var(--k-muted);}
.kapp .ksettings-close{
  display:grid;place-items:center;flex:none;width:34px;height:34px;padding:0;border:1px solid var(--k-border);
  border-radius:var(--k-rs);background:transparent;color:var(--k-muted);cursor:pointer;
}
.kapp .ksettings-close:hover{border-color:var(--k-accent);color:var(--k-accent);}
.kapp .ksettings-scope{padding:16px 18px;border-bottom:1px solid var(--k-border-light);}
.kapp .ksettings-eyebrow{
  margin-bottom:10px;font-family:var(--k-mono);font-size:10px;font-weight:650;letter-spacing:.08em;
  text-transform:uppercase;color:var(--k-accent);
}
.kapp .ksettings-action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;}
.kapp .ksettings-placement-control{display:flex;align-items:center;gap:8px;}
.kapp .ksettings-row-title{font-size:13px;font-weight:650;color:var(--k-ink);}
.kapp .ksettings-row-copy{margin-top:2px;font-size:12px;line-height:1.4;color:var(--k-muted);}
.kapp .ksettings-sharing-title{padding-top:14px;border-top:1px solid var(--k-border-light);}
.kapp .ksettings-sheet .radiocard{margin:8px 0 0;}
.kapp .ksettings-sheet .btn{
  min-height:34px;padding:0 12px;border-radius:var(--k-rs);font-size:13px;line-height:1;white-space:nowrap;
}
.kapp details.ksettings-disclosure{border-bottom:1px solid var(--k-border-light);}
.kapp details.ksettings-disclosure>summary{
  list-style:none;display:flex;align-items:center;min-height:58px;padding:10px 18px;cursor:pointer;color:var(--k-ink);
}
.kapp details.ksettings-disclosure>summary::-webkit-details-marker{display:none;}
.kapp details.ksettings-disclosure>summary::after{content:"›";margin-left:auto;font-size:20px;color:var(--k-light);transform:rotate(0);transition:transform .15s ease;}
.kapp details.ksettings-disclosure[open]>summary::after{transform:rotate(90deg);}
.kapp details.ksettings-disclosure>summary span{display:flex;flex-direction:column;gap:2px;}
.kapp details.ksettings-disclosure>summary b{font-size:13px;font-weight:650;}
.kapp details.ksettings-disclosure>summary small{font-size:12px;font-weight:400;color:var(--k-muted);}
.kapp .ksettings-disclosure-body{padding:2px 18px 16px;}
.kapp .ksettings-field-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;}
.kapp .ksettings-select{width:auto;min-width:160px;}
.kapp .ksettings-field-group{margin-top:16px;padding-top:14px;border-top:1px solid var(--k-border-light);}
.kapp .ksettings-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:10px;}
.kapp .ksettings-check-grid label{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--k-muted);}
.kapp .ksettings-actions{display:flex;justify-content:flex-end;margin-top:14px;}
.kapp .ksettings-actions-gap{gap:8px;}
.kapp .ksettings-notice{width:100%;border-radius:var(--k-r);padding:8px 12px;margin:8px 0 10px;font-size:12.5px;line-height:1.4;justify-content:flex-start;}
.kapp .ksettings-stats,.kapp .ksettings-hint{font-size:12px;color:var(--k-muted);margin:2px 0 8px;}
.kapp .ksettings-hint-spaced{margin-top:8px;}
.kapp .ksettings-link-secondary{margin-top:8px;}
.kapp .ksettings-qr{display:flex;align-items:center;gap:14px;border:1px solid var(--k-border-light);border-radius:var(--k-r);padding:12px;margin-top:10px;font-size:12.5px;color:var(--k-muted);}
.kapp .ksettings-qr b{display:block;margin-bottom:2px;font-size:13px;color:var(--k-ink);}
.kapp .ksettings-member-title{margin-bottom:8px;font-size:13px;font-weight:600;}
.kapp .ksettings-member-title span,.kapp .ksettings-muted{color:var(--k-muted);font-weight:400;}
.kapp .ksettings-member-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.kapp .ksettings-member-form .input{flex:1;min-width:160px;}
.kapp .ksettings-member-row{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:13px;}
.kapp .ksettings-member-between{justify-content:space-between;border-top:1px solid var(--k-border-light);}
.kapp .ksettings-member-email{min-width:0;word-break:break-all;}
.kapp .kmember-typeahead{position:relative;flex:1;min-width:220px;}
.kapp .kmember-typeahead>input{width:100%;}
.kapp .kmember-typeahead turbo-frame{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;background:var(--k-paper);border:1px solid var(--k-line);border-radius:var(--k-rm);box-shadow:var(--k-shm);overflow:hidden;}
.kapp .kmember-candidate{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;border-bottom:1px solid var(--k-line);background:transparent;text-align:left;cursor:pointer;color:var(--k-ink);}
.kapp .kmember-candidate:last-child{border-bottom:0}.kapp .kmember-candidate:hover{background:var(--k-wash)}
.kapp .kmember-candidate span:first-child,.kapp .kmember-candidate small{display:block}.kapp .kmember-candidate small{color:var(--k-muted)}
.kapp .ksettings-member-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.kapp .ksettings-inline-form{display:inline;}
.kapp .ksettings-name-field,.kapp .ksettings-colour-field{margin:0 0 10px;}
.kapp .ksettings-input-spaced{margin-top:6px;}
.kapp .ksettings-swatches{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:6px;}
.kapp .kc-swin{position:absolute;opacity:0;width:0;height:0;}
.kapp .kc-sw{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;cursor:pointer;}
.kapp .kc-swin:checked+.kc-sw{box-shadow:0 0 0 2px var(--k-card),0 0 0 4px var(--k-ink);}
.kapp .kc-sw-inherit{border:1.5px dashed var(--k-border);color:var(--k-muted);font-size:12px;}
.kapp .kc-sw-decision{background:var(--kk-decision);}.kapp .kc-sw-idea{background:var(--kk-idea);}
.kapp .kc-sw-outcome{background:var(--kk-outcome);}.kapp .kc-sw-question{background:var(--kk-question);}
.kapp .kc-sw-blocker{background:var(--kk-blocker);}.kapp .kc-sw-link{background:var(--kk-link);}
.kapp .kc-sw-secondary{background:var(--kk-secondary);}
.kapp .ksettings-check-row{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:13px;}
.kapp .ksettings-danger>summary b{color:var(--k-accent-dark);}
.kapp .ksettings-structural-group{display:flex;flex-direction:column;gap:10px;padding:14px 0;border-top:1px solid var(--k-border-light);}
.kapp .ksettings-structural-group:first-child{padding-top:4px;border-top:0;}
.kapp .ksettings-structural-group .ksettings-eyebrow{margin:0;}
.kapp .ksettings-structural-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;}
.kapp .ksettings-structural-form label{grid-column:1/-1;font-size:12px;font-weight:650;color:var(--k-muted);}
.kapp .ksettings-structural-form .select{min-height:34px;}

@media (max-width: 640px) {
  .kapp .kscrim:has(.ksettings-sheet){align-items:flex-end;padding:0;}
  .kapp .ksettings-sheet{
    width:100%;max-width:none;max-height:92dvh;border-width:1px 0 0;
    border-radius:var(--k-rl) var(--k-rl) 0 0;
  }
  .kapp .ksettings-head{padding:14px 16px;}
  .kapp .ksettings-close{width:44px;height:44px;}
  .kapp .ksettings-scope{padding:14px 16px;}
  .kapp details.ksettings-disclosure>summary{min-height:60px;padding:10px 16px;}
  .kapp .ksettings-disclosure-body{padding:2px 16px 18px;}
  .kapp .ksettings-sheet .btn{min-height:44px;padding:0 14px;}
  .kapp .ksettings-field-row{align-items:flex-start;flex-direction:column;gap:7px;}
  .kapp .ksettings-placement-form{align-items:stretch;flex-direction:column;gap:8px;}
  .kapp .ksettings-placement-control{align-items:stretch;flex-direction:column;}
  .kapp .ksettings-select{width:100%;min-height:44px;}
  .kapp .ksettings-check-grid{grid-template-columns:1fr;gap:10px;}
  .kapp .ksettings-check-grid label{min-height:32px;}
  .kapp .ksettings-structural-form{grid-template-columns:1fr;}
  .kapp .ksettings-structural-form label{grid-column:auto;}
}

/* ── Dashboard document feed (spec 27) ─────────────────────────────── */
.kapp .badge.purple{background:var(--k-purple-soft);color:var(--k-purple);}

/* feed header: global entry points + a compact Manage menu */
.kapp .feed-header{display:flex;align-items:center;gap:8px;margin-bottom:18px;}
.kapp .kmenu{position:relative;}
.kapp .kmenu>summary{list-style:none;}
.kapp .kmenu>summary::-webkit-details-marker{display:none;}
.kapp .kmenu-body{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:180px;background:var(--k-card);border:1px solid var(--k-border);border-radius:var(--k-r);box-shadow:var(--k-shm);padding:6px;display:flex;flex-direction:column;}
.kapp .kmenu .manage-link{padding:8px 10px;border-radius:var(--k-rs);font-size:13px;color:var(--k-ink);text-decoration:none;}
.kapp .kmenu .manage-link:hover{background:var(--k-warm);color:var(--k-accent);}

/* filter chips */
.kapp .filters{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.kapp .chips{display:flex;flex-wrap:wrap;gap:7px;}
.kapp .fchip{font-size:12.5px;font-weight:550;color:var(--k-muted);background:var(--k-card);border:1px solid var(--k-border);border-radius:999px;padding:5px 13px;cursor:pointer;font-family:var(--k-sans);transition:border-color .12s,color .12s,background .12s;}
.kapp .fchip:hover{border-color:var(--k-accent);color:var(--k-accent);}
.kapp .fchip.is-active{background:var(--k-ink);border-color:var(--k-ink);color:var(--k-bg);}
.kapp .secondary-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.kapp .fchip.ghost{border-style:dashed;color:var(--k-light);}
.kapp .secondary-wrap.is-collapsed .collapsible{display:none;}

/* view-mode segmented control (spec 28) */
.kapp .view-modes{display:inline-flex;gap:2px;background:var(--k-warm);border:1px solid var(--k-border);border-radius:999px;padding:3px;margin-bottom:16px;}
.kapp .vmode{font-size:12.5px;font-weight:550;color:var(--k-muted);background:none;border:none;border-radius:999px;padding:5px 14px;cursor:pointer;font-family:var(--k-sans);}
.kapp .vmode:hover{color:var(--k-ink);}
.kapp .vmode.is-active{background:var(--k-card);color:var(--k-ink);box-shadow:var(--k-sh);}

/* grouped view (spec 28) */
.kapp .feed-group{margin-bottom:24px;}
.kapp .feed-group-head{display:flex;align-items:baseline;gap:9px;}
.kapp .feed-group-head .g-label{font-family:var(--k-serif);font-size:18px;letter-spacing:-.01em;color:var(--k-ink);text-transform:none;}
.kapp .feed-group-head .g-sub{font-family:var(--k-mono);font-size:11px;color:var(--k-light);text-transform:none;}
.kapp .feed-group-head .g-count{font-family:var(--k-mono);font-size:11px;color:var(--k-faint);margin-left:auto;}
.kapp .show-more{display:inline-block;margin:8px 2px 0;font-size:12.5px;font-weight:600;color:var(--k-accent);text-decoration:none;}
.kapp .show-more:hover{text-decoration:underline;}

/* manage-menu search (spec 28) */
.kapp .kmenu .menu-search-input{width:100%;margin-bottom:6px;padding:7px 10px;font-size:13px;}
.kapp .kmenu .manage-link[hidden]{display:none;}

/* ── search-first dashboard chrome (spec 30) ───────────────────────── */
.kapp .feed-header{gap:10px;}
/* compact, modern buttons in this chrome */
.kapp .feed-header .btn{padding:7px 12px;font-size:13px;border-radius:8px;}

/* the search field that opens the palette */
.kapp .palette-trigger{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;
  background:var(--k-card);border:1px solid var(--k-border);border-radius:8px;
  padding:8px 12px;font-size:13.5px;color:var(--k-light);cursor:text;font-family:var(--k-sans);}
.kapp .palette-trigger:hover{border-color:var(--k-accent);}
.kapp .palette-trigger span{flex:1;text-align:left;}
.kapp .palette-trigger kbd{font-family:var(--k-mono);font-size:11px;color:var(--k-light);
  border:1px solid var(--k-border);border-radius:5px;padding:1px 6px;background:var(--k-warm);}

/* the palette overlay (mirrors the docs kpalette) */
.kapp .kpalette{position:fixed;inset:0;background:rgba(20,18,16,.42);backdrop-filter:blur(2px);
  z-index:300;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;}
.kapp .kpalette[hidden]{display:none;}
.kapp .kpalette-box{width:560px;max-width:calc(100% - 32px);background:var(--k-bg);
  border:1px solid var(--k-border);border-radius:var(--k-r);box-shadow:0 24px 60px rgba(0,0,0,.28);overflow:hidden;}
.kapp .kpalette-input{width:100%;border:none;border-bottom:1px solid var(--k-border-light);
  padding:15px 18px;font-size:16px;font-family:var(--k-sans);background:transparent;color:var(--k-ink);outline:none;}
.kapp .kpalette-list{list-style:none;margin:0;padding:6px;max-height:54vh;overflow:auto;}
.kapp .kp-section{font-size:10.5px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;
  color:var(--k-light);padding:10px 12px 4px;}
.kapp .kp-item[hidden]{display:none;}
.kapp .kp-item a{display:block;padding:8px 12px;border-radius:var(--k-rs);font-size:14px;
  color:var(--k-ink);text-decoration:none;}
.kapp .kp-item a:hover{background:var(--k-accent-soft);color:var(--k-accent);}
.kapp .kpalette-empty{padding:14px 18px;font-size:13px;color:var(--k-light);}
@media (max-width:560px){
  .kapp .palette-trigger{min-width:44px;min-height:44px;flex:0 0 44px;padding:0;justify-content:center;cursor:pointer;}
  .kapp .palette-trigger span,.kapp .palette-trigger kbd{display:none;}
  .kapp .kpalette{padding:0;align-items:stretch;}
  .kapp .kpalette-box{width:100%;max-width:none;min-height:100dvh;max-height:100dvh;border:0;border-radius:0;}
  .kapp .kpalette-query{position:sticky;top:0;z-index:2;background:var(--k-bg);}
  .kapp .kpalette-input{min-height:64px;font-size:16px;}
  .kapp .kpalette-list{max-height:calc(100dvh - 64px);}
}

/* active-filter bar — only rendered when a filter is on (progressive disclosure) */
.kapp .active-filters{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:12.5px;}
.kapp .active-filters .af-label{color:var(--k-light);}
.kapp .active-filters .af-chip{background:var(--k-ink);color:var(--k-bg);border-radius:999px;padding:3px 11px;font-weight:550;}
.kapp .active-filters .af-clear{color:var(--k-accent);font-weight:600;text-decoration:none;}
.kapp .active-filters .af-clear:hover{text-decoration:underline;}

/* dropdown menu polish (#7): comfortable width + tidy items + separators */
.kapp .kmenu-body{min-width:220px;}
.kapp .kmenu .manage-link{display:flex;align-items:center;gap:8px;white-space:nowrap;}
.kapp .kmenu-sep{height:1px;background:var(--k-border-light);margin:6px 0;}

/* ── public Space show, in the app shell (spec 30 #3) ──────────────── */
.kapp .space-show{padding-top:26px;}
.kapp .space-show .space-brand{font-family:var(--k-serif);font-size:17px;color:var(--k-light);text-decoration:none;}
.kapp .space-show .space-brand:hover{color:var(--k-accent);}
.kapp .space-show .space-head h1{font-family:var(--k-serif);font-weight:400;font-size:34px;letter-spacing:-.02em;line-height:1.1;margin:6px 0 4px;}
.kapp .space-show .space-head .sub{font-size:13px;color:var(--k-muted);}
.kapp .space-show .space-head .ln{color:var(--k-accent);font-weight:600;}
.kapp .share-card{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:18px 20px;margin:18px 0 26px;}
.kapp .share-card .sc-main{flex:1;min-width:240px;}
.kapp .share-card .sc-title{font-size:13px;font-weight:650;margin-bottom:8px;}
.kapp .share-card .sc-link{display:flex;gap:8px;align-items:center;}
.kapp .share-card .sc-url{flex:1;font-family:var(--k-mono);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kapp .share-card .sc-hint{font-size:12px;color:var(--k-light);margin-top:8px;}
.kapp .space-row{cursor:default;}

/* saved views row */
.kapp .saved-views{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px;}

/* feed rows live in a kcard; the row reuses .krow but isn't a whole-row link */
.kapp .feed-row{cursor:default;}
.kapp .kcard .krow + .krow{border-top:1px solid var(--k-border-light);}
.kapp .feed-row .l{gap:11px;align-items:center;}
.kapp .feed-row .tt{min-width:0;}
.kapp .feed-row .tt .title{display:block;text-decoration:none;}
.kapp .feed-row .tt .title:hover{color:var(--k-accent);}

/* star toggle */
.kapp .star{background:none;border:none;cursor:pointer;font-size:15px;line-height:1;color:var(--k-faint);padding:0;flex-shrink:0;transition:color .12s;}
.kapp .star:hover{color:var(--k-amber);}
.kapp .star.is-on{color:var(--k-amber);}

/* starred group + collapse */
.kapp .starred{margin-bottom:22px;}
.kapp .seclabel .collapse-toggle{background:none;border:none;cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;}
.kapp .is-collapsed .collapsible{display:none;}
.kapp form:has(#access_password:checked) .pw-field{display:block;}

/* Mobile (house-style principle 4/6): the warm-paper .knav — 44px tap targets, and
   drop the redundant "Dashboard" tab (the brand already links there) so the action
   row fits without overflow on a phone. */
@media (max-width: 560px) {
  .kapp .knav { padding: 0 12px; }
  .kapp .knav .tab { display: none; }
  .kapp .knav .actions { gap: 2px; }
  .kapp .knav .actions a, .kapp .knav .actions button { width: 44px; height: 44px; }
}

/* Inline pin-to-top star per reader-sidebar row (spec 44 Q-44-5). Owner-only
   toggle: hover-reveals on a row, stays lit (ice) when the page is pinned.
   Scoped to the deck reader nav; styled here (not kk-shell.css) to stay in-lane. */
.kk-rnav .tree li { position: relative; }
.kk-rnav .tree a { padding-right: 30px; }
.kk-pin-form { position: absolute; top: 3px; right: 4px; margin: 0; line-height: 0; }
.kk-pin-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; padding: 0; border: 0; border-radius: 6px;
  background: none; color: var(--kk-text-soft, #3a434c); cursor: pointer;
  opacity: 0; transition: opacity .12s ease, color .12s ease, background .12s ease;
}
.kk-rnav .tree li:hover .kk-pin-toggle,
.kk-pin-toggle:focus-visible { opacity: 1; }
.kk-pin-toggle:hover { background: var(--kk-fill, #eef2f5); color: var(--kk-ink, #12181f); }
.kk-pin-toggle.is-on { opacity: 1; color: var(--kk-orientation); }
.kk-pin-toggle.is-on:hover { color: var(--kk-ink, #12181f); }
/* Non-owner read-only marker on a pinned row. */
.kk-pin-mark { position: absolute; top: 6px; right: 8px; color: var(--kk-text-soft, #3a434c); opacity: .6; }

/* Pinned-pages tab in the reader right panel (spec 44 Q-44-5) — searchable quick-nav.
   Reuses the .kk-rp-* panel look; styled here (not kk-shell.css) to stay in-lane. */
.kk-rp-search { display: flex; align-items: center; gap: 6px; margin: 0 0 var(--kk-s-3, 12px);
  padding: 6px 9px; border: 1px solid var(--kk-line, #e6ecef); border-radius: var(--kk-r-sm, 7px); }
.kk-rp-search .ic { width: 14px; height: 14px; color: var(--kk-text-soft, #3a434c); flex: none; }
.kk-rp-search input { border: 0; background: none; outline: none; width: 100%; font: inherit; font-size: 16px; color: var(--kk-ink, #12181f); } /* 16px avoids iOS focus-zoom */
.kk-rp-empty { margin: 8px 2px 0; font-size: 12.5px; color: var(--kk-text-soft, #3a434c); }
.kk-rp-pins { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
.kk-rp-pins a { display: flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius: var(--kk-r-sm, 7px);
  color: var(--kk-text-soft, #3a434c); font-size: 13px; text-decoration: none; overflow: hidden; }
.kk-rp-pins a .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kk-rp-pins a svg { color: var(--kk-orientation); flex: none; }
.kk-rp-pins a:hover { background: var(--kk-fill, #eef2f5); color: var(--kk-ink, #12181f); }
.kk-rp-pins a.is-active { background: var(--kk-fill, #eef2f5); color: var(--kk-ink, #12181f); font-weight: 600; }

/* Mobile: the sidebar pin star has no hover to reveal it, so show it + give it a
   44px tap target on phones (spec: mobile touch targets). Audit #4. */
@media (max-width: 560px) {
  .kk-pin-form { top: 0; right: 2px; }
  .kk-pin-toggle { width: 44px; height: 44px; opacity: 1; }
  .kk-rnav .tree a { padding-right: 46px; }
}
