/* Krovio design system v2.1 — portal and kiosk share category colors, not destructive shared layout. */
:root{--k4-navy:#17253a;--k4-blue:#2d65f6;--k4-ink:#132238;--k4-muted:#687991;--k4-line:#dfe6ef;--k4-bg:#f6f8fc;--k4-green:#009d73;--k4-red:#ed4354;--k4-orange:#e98918;--k4-violet:#7454ed;--k4-radius:16px;--k4-surface:#fff}
.krovio-app-body,.krovio-public,.krovio-setup-body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--k4-ink);-webkit-font-smoothing:antialiased}
/* Exactly two principal button treatments, secondary utility text remains unobtrusive. */
.krovio-app-body :where(.page-actions button,.button-primary,.button-secondary,.kfc-btn,.krovio-ms-button,.kb-button,.krovio-fr-save,.k3-add-building,.k3-profile-form button,.k3-form-actions button,.krovio-next-pair button,.krovio-next-pair [type=submit],.app-search button,[data-ai-send],.app-modal-sheet button[type=submit]),
.krovio-public :where(.k-btn,.k-header-cta,.k-live-services-foot a),
.krovio-setup-body :where(button[type=submit],.setup-primary){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border:1px solid var(--k4-navy);border-radius:11px;font-size:13px;line-height:1.35;font-weight:700;letter-spacing:0;background:var(--k4-navy);color:#fff;text-decoration:none;box-shadow:none;transition:background-color .16s,border-color .16s,color .16s}
.krovio-app-body :where(.page-actions button:not(.primary),.button-secondary,.k3-add-building),
.krovio-public :where(.k-btn-outline,.k-btn-plain),
.krovio-setup-body :where(.setup-secondary){background:#fff;color:var(--k4-navy);border-color:var(--k4-line)}
.krovio-app-body :where(.page-actions button,.button-primary,.kfc-btn,.krovio-ms-button,.kb-button,[data-ai-send],.app-search button):hover,
.krovio-public :where(.k-btn-dark,.k-header-cta):hover{background:#2a3e5a;color:#fff;border-color:#2a3e5a;filter:none}
.krovio-app-body :where(.page-actions button:not(.primary),.button-secondary,.k3-add-building):hover,
.krovio-public :where(.k-btn-outline,.k-btn-plain):hover{background:#f2f5fa;color:var(--k4-navy);border-color:#becbdc}
.krovio-app-body :where(.kfc-btn,.krovio-ms-button,.kb-button){background:var(--k4-navy)!important;background-image:none!important;color:#fff!important;border-color:var(--k4-navy)!important}
.krovio-app-body :where(.krovio-next-pair,.krovio-ms-card,.kb-preview,.krovio-prod-finance,.krovio-ledger,.kf54){background:#fff!important;background-image:none!important;border-color:var(--k4-line)!important;box-shadow:none!important}
.krovio-app-body .app-main{max-width:1550px;padding-top:32px}
.krovio-app-body .app-page-header h1{font-size:clamp(29px,2.65vw,40px);line-height:1.12;letter-spacing:-.04em}
.krovio-app-body .card-head h2{letter-spacing:-.03em}
.krovio-app-body .app-sidebar{background:var(--k4-navy)}
.krovio-app-body .app-sidebar nav a.active{background:#2b405d}
.krovio-app-body .app-sidebar nav a:focus-visible{outline-color:#a6c5ff}
.krovio-app-body :where(.app-card,.dash-kpis article,.finance-summary article,.kfc-metric){border-radius:var(--k4-radius);border-color:var(--k4-line);box-shadow:0 5px 20px rgba(21,40,69,.025)}
.krovio-app-body .dash-kpis article{min-height:124px}
.krovio-app-body .dash-kpis article:nth-child(1){border-top:3px solid #a7c1ff}
.krovio-app-body .dash-kpis article:nth-child(2){border-top:3px solid #98deca}
.krovio-app-body .dash-kpis article:nth-child(3){border-top:3px solid #ffc7cc}
.krovio-app-body .dash-kpis article:nth-child(4){border-top:3px solid #e1d1ff}
.krovio-app-body .dash-kpis article strong{font-variant-numeric:tabular-nums}
.krovio-app-body :where(.app-card,.krovio-next-integrations) :where(ul,ol){padding-left:19px}
/* Setup: real statuses and useful links, instead of orphan bullet glyphs. */
.krovio-app-body .k4-readiness{padding:25px}
.krovio-app-body .k4-readiness-head{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:22px}
.k4-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#677e9e}
.k4-readiness-head h2{font-size:22px;letter-spacing:-.035em;margin:5px 0 6px}.k4-readiness-head p{font-size:13px;color:var(--k4-muted);margin:0}
.k4-progress{min-width:130px;text-align:right}.k4-progress strong{display:block;font-size:13px;margin-bottom:9px}.k4-progress-bar{height:7px;background:#e7edf4;border-radius:99px;overflow:hidden}.k4-progress-bar span{display:block;height:100%;background:#0aa479;border-radius:99px}
.k4-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
.k4-step{display:flex;gap:10px;align-items:flex-start;position:relative;border:1px solid var(--k4-line);background:#fff;border-radius:12px;min-height:85px;padding:15px 13px;text-decoration:none;color:var(--k4-ink);transition:border-color .16s,background-color .16s}
.k4-step:hover{border-color:#9ebaf7;background:#fafdff}.k4-step.is-done{background:#f5fbf9;border-color:#cbeae0}.k4-step-mark{flex:0 0 24px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800;background:#edf1f6;color:#617089}.k4-step.is-done .k4-step-mark{background:#0fa278;color:#fff}
.k4-step-copy{min-width:0;display:grid;gap:7px}.k4-step-copy strong{font-size:12px;line-height:1.35}.k4-step-copy small{font-size:11px;color:#728199}.k4-step.is-done small{color:#058564}.k4-step-chevron{margin-left:auto;font-size:20px;line-height:20px;color:#aab8c8}
/* Category cards: kiosk's blue/green/red/orange/violet communicate type, not decoration. */
.k4-blue{--k4-category:#2d65f6;--k4-soft:#eef3ff;--k4-category-line:#cbdcff}.k4-green{--k4-category:#009d73;--k4-soft:#eaf9f4;--k4-category-line:#c8eddf}.k4-red{--k4-category:#ec3e59;--k4-soft:#fff0f2;--k4-category-line:#ffd0d7}.k4-orange{--k4-category:#e98b15;--k4-soft:#fff5e8;--k4-category-line:#fbdcaf}.k4-violet{--k4-category:#7454ed;--k4-soft:#f5f0ff;--k4-category-line:#e0d3ff}
.krovio-app-body .krovio-next-pair{padding:22px;border-radius:13px}.krovio-app-body .krovio-next-pair form{align-items:end}.krovio-app-body .krovio-next-pair input{min-height:44px}.krovio-app-body :where(.krovio-next-pair,.krovio-ms-card,.kb-preview) h3{font-size:16px;letter-spacing:-.02em}
/* Landing page editorial system */
.krovio-public .k-hero{gap:clamp(32px,5vw,80px);padding-top:78px;padding-bottom:75px}.krovio-public .k-hero-copy h1{font-size:clamp(49px,5.7vw,82px);max-width:800px;line-height:1.03;letter-spacing:-.065em}.krovio-public .k-hero-copy>p{max-width:590px;line-height:1.65}.krovio-public .k-hero-actions{gap:12px}.krovio-public .k-hero-photo{border-radius:22px;box-shadow:none}.krovio-public .k-hero-status{border:1px solid var(--k4-line);box-shadow:0 18px 40px rgba(20,35,57,.10)}
.krovio-public .k-home :where(h2,h3){letter-spacing:-.045em}.krovio-public .k-live-services{background:#f6f8fb;border-color:#e3eaf3;box-shadow:none}.krovio-public .k-live-service-card{box-shadow:none;border:1px solid #e4eaf3;border-radius:15px}
.k4-feature-strip{padding:58px 0 76px;border-top:1px solid #edf0f5}.k4-feature-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);column-gap:36px;align-items:end}.k4-feature-top .k4-eyebrow{grid-column:1/-1;margin-bottom:16px}.k4-feature-top h2{font-size:clamp(30px,3.5vw,46px);line-height:1.08;max-width:640px;margin:0}.k4-feature-top p{max-width:340px;margin:0 0 5px;color:var(--k4-muted);font-size:15px;line-height:1.6}.k4-feature-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.k4-feature{border:1px solid var(--k4-category-line);background:#fff;border-radius:18px;padding:26px;min-height:280px;display:flex;flex-direction:column;align-items:flex-start;gap:13px}.k4-feature-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:var(--k4-category);background:var(--k4-soft);font-weight:800;font-size:25px}.k4-feature-kicker{color:var(--k4-category);font-size:10px;font-weight:850;letter-spacing:.13em}.k4-feature h3{font-size:24px;line-height:1.16;margin:0}.k4-feature p{font-size:14px;line-height:1.6;margin:0;color:var(--k4-muted)}.k4-feature a{margin-top:auto;font-size:13px;font-weight:800;text-decoration:none;color:var(--k4-ink);padding-top:16px}.k4-feature a span{color:var(--k4-category)}
.k4-kiosk-section{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:clamp(30px,5vw,80px);padding:75px 0 95px;border-top:1px solid #edf0f5}.k4-kiosk-copy h2{font-size:clamp(32px,4vw,50px);line-height:1.08;margin:15px 0 20px}.k4-kiosk-copy p{max-width:490px;color:var(--k4-muted);line-height:1.7;margin:0 0 24px;font-size:15px}
.k4-kiosk-demo{padding:27px;background:#f6f8fc;border:1px solid #e2e8f2;border-radius:28px}.k4-demo-label{font-size:11px;letter-spacing:.16em;color:#7b8aa1;font-weight:800}.k4-kiosk-demo h3{font-size:27px;margin:8px 0 22px}.k4-demo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.k4-demo-tile{display:grid;grid-template-columns:42px 1fr;column-gap:11px;align-items:center;min-height:96px;padding:12px;background:var(--k4-soft);border:1px solid var(--k4-category-line);border-radius:17px}.k4-demo-tile>span{grid-row:span 2;display:grid;place-items:center;background:#ffffffaa;width:42px;height:42px;border-radius:12px;color:var(--k4-category);font-weight:800;font-size:22px}.k4-demo-tile strong{font-size:12px}.k4-demo-tile small{font-size:10px;color:var(--k4-muted);align-self:start}.k4-demo-bottom{display:flex;justify-content:space-around;margin-top:23px;font-size:11px;color:#6d7c93}.k4-demo-bottom strong{color:var(--k4-ink)}
@media(max-width:1150px){.k4-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.k4-feature-cards{gap:10px}.k4-feature{padding:20px}}
@media(max-width:820px){.k4-feature-top{grid-template-columns:1fr;gap:14px}.k4-feature-top p{max-width:640px}.k4-feature-cards{grid-template-columns:1fr}.k4-feature{min-height:210px}.k4-kiosk-section{grid-template-columns:1fr}.k4-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.krovio-app-body .k4-readiness-head{align-items:flex-start}.krovio-app-body .app-main{padding-left:17px;padding-right:17px}}
@media(max-width:530px){.krovio-app-body .k4-readiness{padding:16px}.k4-steps{grid-template-columns:1fr}.k4-step{min-height:66px}.k4-readiness-head{flex-direction:column;gap:14px}.k4-progress{width:100%;text-align:left}.k4-kiosk-demo{padding:17px}.k4-demo-grid{gap:9px}.k4-demo-tile{grid-template-columns:1fr;min-height:125px}.k4-demo-tile>span{grid-row:auto;margin-bottom:4px}.krovio-public .k-hero-copy h1{font-size:clamp(38px,10vw,55px)}}
@media(prefers-reduced-motion:reduce){.k4-step,.krovio-public .k-btn{transition:none}}
/* Feed status language aligns with the kiosk categories and preserves every existing action. */
.krovio-app-body :where(.krovio-status-new,.krovio-status-pending,.access-pill.pending){color:#d45b32;background:#fff3e9}
.krovio-app-body :where(.krovio-status-in_progress,.krovio-status-waiting,.access-pill.invited){color:#986317;background:#fff5e2}
.krovio-app-body :where(.krovio-status-done,.access-pill.active){color:#067c5b;background:#eaf9f2}
.krovio-app-body :where(.task-row,.attention-row,.record-row){min-height:58px;align-items:center}
.krovio-app-body :where(.task-row,.attention-row,.record-row):last-child{border-bottom:0}
.krovio-app-body .task-row .krovio-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.krovio-app-body .krovio-delete-action{background:#fff!important;border:1px solid #f0d9de!important;color:#b9344b!important;border-radius:9px!important;min-height:34px!important;padding:6px 11px!important;font-size:11px!important}
.krovio-app-body .krovio-delete-action:hover{background:#fff0f2!important}
.krovio-app-body .access-pill{font-size:11px;font-weight:700;border-radius:99px;padding:5px 9px}
.krovio-app-body .card-head .text-action{border:1px solid var(--k4-line)!important;background:#fff!important;color:var(--k4-ink)!important;padding:8px 12px!important;border-radius:9px!important;font-size:12px!important;font-weight:700!important}
.krovio-app-body .card-head .text-action:hover{background:#f6f8fc!important}
.krovio-app-body :where(.app-card,.krovio-next-integrations) h2{letter-spacing:-.035em}
.krovio-app-body .app-search input{min-height:44px}
.krovio-app-body .app-sidebar-foot a{text-decoration:none}
.krovio-public .k-live-services-foot a{background:var(--k4-navy);color:#fff;padding:11px 16px;border-radius:10px;text-decoration:none}
