*{box-sizing:border-box}html{font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif}body{margin:0;background:#f4f6f9;color:#102741}button,input,select{font:inherit}.app{display:flex;min-height:100vh}.sidebar{width:257px;background:#071e37;color:#d4e2ed;display:flex;flex-direction:column;padding:24px 14px;flex-shrink:0}.brand{display:flex;align-items:center;gap:13px;padding:0 11px 25px}.brand img{height:44px;width:44px;object-fit:contain}.brand strong{display:block;font-size:28px;color:#e3b264;letter-spacing:1px}.brand small{font-size:12px}.environment{color:#e2b66f;font-size:12px;letter-spacing:1.2px;border:1px solid #3c5874;border-radius:8px;padding:10px;margin:0 8px 19px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav{border:0;text-align:left;background:transparent;color:#cbd9e5;border-radius:9px;padding:12px 14px;cursor:pointer;display:flex;gap:13px;align-items:center}.nav:hover{background:#163756}.nav.active{background:#24476b;color:#f9cb77;border-left:3px solid #dfa94f;font-weight:600}.nav .ico{font-size:18px;min-width:21px}.sidefoot{margin-top:auto;padding:20px 12px 0;color:#a3bcd2;font-size:12px;line-height:1.8}.sidefoot span{color:#88a1b8}.layout{min-width:0;flex:1}header{height:87px;background:#fff;border-bottom:1px solid #e5eaf0;display:flex;align-items:center;gap:15px;padding:0 34px}header b,header small{display:block}header b{font-size:18px}header small{font-size:12px;color:#4f6275;margin-top:6px}.status{margin-left:auto;border:1px solid #dbe5ea;border-radius:9px;padding:12px 16px;color:#27694d;font-size:12px;font-weight:600}.dot{display:inline-block;width:8px;height:8px;border-radius:99px;background:#cc9a46;margin-right:8px}#menu{display:none;background:none;border:none;font-size:22px}main{padding:31px 34px;max-width:1500px;margin:auto}.topline{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:27px}.eyebrow{font-size:12px;color:#7d5a1e;letter-spacing:2.4px;font-weight:700}h1{font-size:34px;margin:8px 0 5px;font-weight:700}.topline p{margin:0;color:#60738a;font-size:14px}.date{text-align:right;font-size:14px;color:#4d6380;line-height:1.8}.date span{font-size:12px;color:#4f6275}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:21px}.metric,.panel{border:1px solid #e1e7ee;background:white;border-radius:13px;box-shadow:0 3px 14px #132b4406}.metric{padding:20px}.metric .tiny{color:#4f6275;font-size:12px}.metric .num{font-size:34px;font-weight:700;display:block;margin-top:12px}.metric .foot{font-size:12px;color:#4f6275;margin-top:5px}.panel{padding:23px;margin-bottom:19px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}.panel h2{font-size:18px;margin:0}.caption{font-size:12px;color:#4f6275}.pill{background:#fff5dd;color:#91641d;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700}.green{background:#e6f7ec;color:#24744e}.grid2{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #edf1f5;padding:16px 0}.row:first-of-type{border-top:0}.row strong{font-size:14px}.row small{display:block;color:#4f6275;margin-top:6px;font-size:12px}.row .minor{font-size:12px;color:#4f6275}.bar{height:7px;background:#edf1f4;border-radius:30px;overflow:hidden;margin-top:8px}.bar i{height:100%;display:block;background:#c79b50;border-radius:30px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;background:#f6f8fa;color:#4f6275;font-size:12px;font-weight:700}th,td{padding:14px 13px;border-bottom:1px solid #e9eef2}td{color:#283e55}footer{color:#4f6275;font-size:12px;padding:23px 0;text-align:center}.search{width:260px;max-width:100%;padding:10px 13px;border:1px solid #dce5ec;border-radius:9px;background:white}.empty{padding:24px;background:#f7f9fb;border-radius:10px;color:#4f6275;line-height:1.65}.detail{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.detail .panel{margin:0}.detail p{line-height:1.7;font-size:14px;color:#60738a}.notice{border:1px solid #f2dfb6;background:#fffaf0;color:#795a21;padding:15px 18px;border-radius:10px;font-size:14px;margin-bottom:20px}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:1fr}.detail{grid-template-columns:1fr}}@media(max-width:720px){.sidebar{position:fixed;z-index:9;inset:0 auto 0 0;transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}header{height:70px;padding:0 18px}#menu{display:block}.status{font-size:0;padding:9px}.status .dot{margin:0}main{padding:24px 18px}.topline{align-items:flex-start}.date{display:none}.cards{gap:10px}.metric{padding:16px}.metric .num{font-size:28px}h1{font-size:28px}}
/* CRM Stage V2 */
.crm-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.crm-toolbar .search{width:min(390px,100%)}.primary{background:#113858;color:#fff;border:1px solid #113858;border-radius:9px;padding:11px 17px;cursor:pointer;font-weight:600}.primary:hover{background:#215575}.crm-layout{display:grid;grid-template-columns:minmax(260px,.84fr) minmax(330px,1.3fr);gap:18px}.crm-customer{display:flex;flex-direction:column;text-align:left;width:100%;gap:7px;background:#fff;border:1px solid #e2eaf0;border-radius:10px;padding:13px;margin-bottom:9px;cursor:pointer;color:#102741}.crm-customer:hover,.crm-customer.selected{background:#f6f9fc;border-color:#c9a15c}.crm-customer small,.site-card small{color:#4f6275}.crm-customer .pill{align-self:flex-start}.crm-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.crm-actions button{background:#fff;border:1px solid #d5e0e9;border-radius:8px;padding:9px 12px;cursor:pointer;font-size:12px}.crm-actions .primary{background:#113858;color:white}.crm-actions .danger-button{color:#ac3c3c}.site-card{border:1px solid #e4ebf0;border-radius:10px;padding:14px;margin:10px 0;display:flex;flex-direction:column;gap:7px;font-size:14px}.crm-message{padding:12px 15px;color:#1d614a;background:#e9f7ef;border-radius:9px;font-size:14px}.modal-backdrop{position:fixed;inset:0;background:#061829aa;display:flex;align-items:center;justify-content:center;z-index:30;padding:16px}.modal{width:min(520px,100%);max-height:90vh;overflow:auto;background:white;border-radius:14px;padding:27px;box-shadow:0 15px 65px #0c193366}.modal h2{margin-top:0}.modal form{display:grid;gap:12px}.modal label{display:grid;gap:5px;font-size:14px;font-weight:600}.modal input,.modal select{width:100%;border:1px solid #d7e1e9;border-radius:8px;padding:11px;background:white}.modal .crm-actions{justify-content:flex-end}.crm-list{max-height:680px;overflow:auto}h3{font-size:16px}@media(max-width:970px){.crm-layout{grid-template-columns:1fr}}

.stage-login{width:min(450px,90vw);margin:10vh auto;padding:36px;background:white;border:1px solid #d8e2ea;border-radius:18px;box-shadow:0 8px 40px #0001;color:#092238}.stage-login h1{font-size:28px}.stage-login label{display:block;margin:16px 0}.stage-login input{width:100%;padding:13px;border:1px solid #ccd6e1;border-radius:8px;display:block;margin:7px 0}.stage-login button{padding:12px 22px}.stage-login p{color:#506780}

[hidden]{display:none!important}#stage-login{display:block}.stage-login [role=alert]{color:#963c22;background:#fff1e9;padding:10px;border-radius:8px}.stage-login button:disabled{opacity:.55;cursor:wait}

.customer-wrap{max-width:860px;margin:3rem auto;padding:1rem}.customer-wrap .panel{padding:2rem}.customer-wrap form{margin:1.5rem 0;padding:1rem;border:1px solid #ddd;border-radius:12px}.customer-wrap label{display:block;margin:12px 0}.customer-wrap input{display:block;width:100%;padding:10px}.customer-wrap li{padding:.7rem;border-bottom:1px solid #ddd}.brand img{width:48px;height:56px;object-fit:contain;background:#fff;border-radius:10px;padding:5px}

.invoice-sheet{background:white;color:#132b40;margin-top:24px;padding:36px;border:1px solid #cdd8e4;box-shadow:0 6px 24px #1232;border-radius:10px}.invoice-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.invoice-top div{display:flex;align-items:center;gap:12px}.invoice-top img{width:72px;background:#fff;border-radius:8px}.invoice-watermark{color:#ad6500;font-weight:700}.invoice-sheet table{width:100%;margin-top:24px;border-collapse:collapse}.invoice-sheet th,.invoice-sheet td{border-bottom:1px solid #cdd8e4;text-align:left;padding:12px}.invoice-totals{text-align:right;padding:20px}.invoice-totals strong{font-size:22px}.invoice-warning{border-top:1px solid #ddd;font-size:14px;color:#ad6500}.invoice-actions{display:flex;gap:12px;padding:10px 0}@media print{body *{visibility:hidden!important}#invoice-print,#invoice-print *{visibility:visible!important}#invoice-print{position:absolute;top:0;left:0;width:100%;box-shadow:none!important;border:0!important;margin:0;padding:15mm}}

/* KEMET ONE V6 role portals */
.customer-wrap{max-width:1090px}.portal-top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:20px 0}.portal-top p{font-size:14px;color:#61758d}.portal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.portal-card{text-align:left;background:#f8fafc;border:1px solid #dde6ef;padding:20px;min-height:95px;border-radius:12px;display:flex;flex-direction:column;gap:9px;color:#102741}.portal-card span,.portal-card strong{font-weight:700}.portal-card small{color:#4f6275;line-height:1.5}.portal-nav{display:flex;align-items:center;gap:12px;margin:22px 0}.portal-nav button,.portal-top button,.portal-actions button,#emp-back{border:1px solid #cad9e4;border-radius:8px;padding:10px 14px;background:white;cursor:pointer}.portal-job{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;border:1px solid #dce6ef;padding:15px;margin:8px 0;border-radius:9px;background:#fff;cursor:pointer}.portal-job span{font-size:12px;color:#4f6275}.portal-list{list-style:none;padding:0}.portal-list li{background:#f8fafc;border:1px solid #e6edf3;margin:8px 0;padding:16px;border-radius:9px}.portal-step{display:flex!important;align-items:flex-start;gap:12px;padding:14px!important;border-bottom:1px solid #e7edf2}.portal-step input{width:22px!important;flex:none;margin:2px!important;accent-color:#238c60}.portal-step span{display:flex;flex-direction:column;gap:7px}.portal-step small{line-height:1.5;color:#4f6275}.portal-step input:checked+span strong{color:#17633f}.portal-progress{height:9px;border-radius:12px;background:#e8ecf1;overflow:hidden}.portal-progress span{display:block;height:100%;background:#238c60}.portal-actions{display:flex;gap:10px;margin:16px 0}.portal-actions button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:740px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-card{padding:13px;min-height:90px}.customer-wrap .panel{padding:18px}.portal-top{flex-wrap:wrap}}

/* V6.3 unified design foundation: isolated stage */
:root{--kemet-navy:#081f36;--kemet-deep:#061827;--kemet-gold:#c79b50;--kemet-paper:#f5f7fa;--kemet-border:#e2e8ef;--kemet-muted:#62758a;--kemet-radius:18px}body{background:var(--kemet-paper);line-height:1.5}.sidebar{background:linear-gradient(165deg,#06182b,#0c2b49);padding-top:28px}.brand{border-bottom:1px solid #ffffff1b;margin-bottom:18px}.brand strong{letter-spacing:.08em}.nav{border-radius:11px;transition:background .15s,transform .15s}.nav:hover{transform:translateX(2px)}.nav.active{background:#ffffff18;border-left-color:var(--kemet-gold);color:#f5cf91}header{height:82px}.panel,.metric{border-radius:var(--kemet-radius);box-shadow:0 5px 24px #142b4510}.metric{border-top:3px solid var(--kemet-gold);padding:23px}.metric .num{font-size:34px;letter-spacing:-.04em}.stage-tag{font-size:12px;border:1px solid #e0c89d;color:#865f29;padding:7px 12px;border-radius:99px;background:#fcf5e8}.hero{background:linear-gradient(115deg,#071e36,#153c59);color:#fff;border-radius:22px;display:flex;justify-content:space-between;align-items:center;gap:26px;padding:34px 40px;margin-bottom:32px;overflow:hidden;position:relative}.hero .eyebrow{color:#eac47f}.hero h2{font-size:34px;margin:12px 0}.hero p{max-width:640px;color:#ccdae5;font-size:14px;line-height:1.75}.hero-mark{background:#ffffff10;border:1px solid #ffffff20;border-radius:100%;width:150px;height:150px;flex:none;display:grid;place-items:center}.hero-mark img{width:95px;height:100px;object-fit:contain}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.hero-actions button{border-radius:10px;padding:11px 17px;cursor:pointer;border:1px solid #ffffff50;color:white;background:#ffffff12}.hero-actions .primary{background:var(--kemet-gold);color:var(--kemet-deep);border-color:var(--kemet-gold)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:10px;margin:22px 0 14px}.section-heading h2{font-size:22px;margin:7px 0 0}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.quick-tile{text-align:left;background:#fff;border:1px solid var(--kemet-border);border-radius:16px;padding:20px;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:140px;color:#112d45;transition:box-shadow .15s,transform .15s}.quick-tile:hover{box-shadow:0 9px 30px #142b4517;transform:translateY(-2px)}.quick-tile strong{font-size:14px}.quick-tile small{color:var(--kemet-muted)}.tile-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#f9f1e3;color:#866327;font-size:22px;margin-bottom:7px}:focus-visible{outline:3px solid #d6a857;outline-offset:3px}@media(max-width:1100px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.hero{padding:24px}.hero-mark{display:none}.quick-grid{gap:10px}.quick-tile{padding:16px;min-height:125px}.section-heading h2{font-size:18px}.stage-tag{white-space:nowrap}.hero h2{font-size:28px}}@media(prefers-reduced-motion:reduce){.nav,.quick-tile{transition:none}}
/* Employee direction C: accessible responsive operational flow */
.emp-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.emp-summary>div{background:#f8fafc;border:1px solid #e1e7ed;border-radius:14px;padding:18px;min-width:0}.emp-summary small{display:block;color:#4f6275;font-size:12px}.emp-summary strong{display:block;color:#082740;font-size:22px;margin-top:9px;overflow-wrap:anywhere}.emp-visit-head{background:linear-gradient(125deg,#071f38,#153e5a);padding:26px;border-radius:18px;color:white;margin-top:15px}.emp-visit-head h2{font-size:28px;margin:8px 0}.emp-visit-head p,.emp-visit-head small{color:#d4dfe8}.emp-report{padding:18px;background:#f8fafc;border:1px solid #e1e7ed;border-radius:14px;margin-top:22px}.emp-report label{display:block;margin:10px 0;font-weight:600}.emp-report textarea{width:100%;border:1px solid #c9d6e2;border-radius:10px;padding:13px;font:inherit;resize:vertical}.emp-report button{background:#103a59;color:white;border:0;border-radius:9px;padding:12px 18px;margin-top:12px;cursor:pointer}.portal-actions{flex-wrap:wrap}.portal-actions .primary{background:#103a59;color:white}.portal-job:hover{border-color:#bd985c;background:#fffaf1}@media(max-width:720px){.emp-summary{grid-template-columns:1fr 1fr}.emp-summary strong{font-size:16px}.portal-actions button{flex:1 1 150px}}

/* Unified responsive operations workspace */
.manager-wrap{max-width:1320px;margin:0 auto;padding:24px}.manager-wrap header{height:auto;padding:20px;gap:24px;border-radius:16px;margin-bottom:24px;flex-wrap:wrap}.manager-wrap .portal-top h1{margin:0}.manager-wrap .portal-top p{color:#4f6275}.manager-wrap label,.ops-form label{display:grid;gap:8px;font-size:14px;font-weight:600}.manager-wrap form,.ops-form{display:flex;gap:15px;align-items:end;flex-wrap:wrap;margin:18px 0 26px}.manager-wrap input,.manager-wrap select,.ops-form select,.customer-wrap textarea,.customer-wrap select{padding:11px;border:1px solid #ccd9e5;border-radius:9px;min-width:170px;max-width:100%;background:#fff}.manager-wrap button,.ops-form button{padding:11px 17px;border-radius:9px;border:1px solid #cad7e1;cursor:pointer}#manager-error{color:#9c421f;margin-bottom:20px}.portal-card:focus-visible,.nav:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bc9350;outline-offset:3px}@media(max-width:640px){.manager-wrap{padding:12px}.manager-wrap form,.ops-form{display:grid}.manager-wrap header{align-items:flex-start}.portal-top img{max-width:100px}}

/* V6.3 unified forms and notifications */
:root{--form-ring:#b98a39;--field-bg:#fff;--field-border:#bacbdb}
:where(.panel,.customer-wrap,.manager-wrap,.emp-report,.modal,.crm-layout) :where(input:not([type=checkbox]):not([type=radio]),select,textarea){font:inherit;color:#102e46;background:var(--field-bg);border:1px solid var(--field-border);border-radius:11px;padding:12px 14px;min-height:44px;max-width:100%;box-sizing:border-box;box-shadow:0 1px 3px #1231;transition:border-color .15s,box-shadow .15s}
:where(.panel,.customer-wrap,.manager-wrap,.emp-report,.modal,.crm-layout) :where(input,select,textarea):focus{border-color:var(--form-ring);box-shadow:0 0 0 3px #c89d4b2a;outline:0}
:where(.panel,.customer-wrap,.manager-wrap,.emp-report,.modal,.crm-layout) textarea{width:100%;min-height:100px;resize:vertical}
:where(.panel,.customer-wrap,.manager-wrap,.emp-report,.modal,.crm-layout) label{line-height:1.45;overflow-wrap:anywhere}
:where(.panel,.customer-wrap,.manager-wrap,.emp-report,.modal,.crm-layout) button{min-height:42px;border-radius:10px;white-space:normal;line-height:1.35}
.crm-actions,.portal-actions,.invoice-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.panel,.site-card,.portal-job{overflow-wrap:anywhere}
.founder-notice-panel{margin-top:22px}.notice-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.notice-count{background:#fbf1de;border-radius:99px;padding:5px 11px;color:#79501a}.notice-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dfe7ee;padding:15px 0}.notice-item small{display:block;color:#61758a;margin-top:4px}.notice-unread{border-inline-start:3px solid #c89b50;padding-inline-start:12px;background:#fffaf3}
@media(max-width:740px){.notice-item,.notice-head{flex-wrap:wrap}.portal-grid{grid-template-columns:1fr}.crm-actions button,.portal-actions button{flex:1 1 160px}.customer-wrap{margin:12px auto}.emp-summary{grid-template-columns:1fr 1fr}}

/* KEMET V6.4: unified cross-portal accessible foundation */
:root{--kemet-primary:#0b2942;--kemet-accent:#c79b50;--kemet-surface:#fff;--kemet-focus:#ae7727}
.kemet-skip{position:fixed;z-index:9999;left:16px;top:-80px;color:white;background:#08273e;padding:12px 17px;border-radius:10px;text-decoration:none;font-weight:700}
.kemet-skip:focus{top:12px}
.kemet-connectivity{position:fixed;bottom:18px;left:18px;right:18px;z-index:9000;max-width:600px;margin:auto;background:#762d24;color:white;border:2px solid #eec6ac;padding:13px 17px;border-radius:12px;box-shadow:0 14px 45px #0003;text-align:center;font-weight:700}
.kemet-connectivity[hidden]{display:none!important}
.kemet-portal-footer{color:#4f6275;text-align:center;font-size:12px;padding:22px 12px;border-top:1px solid #dfe7ee;margin-top:26px;letter-spacing:.015em}
body[data-kemet-portal=manager] .manager-wrap,body[data-kemet-portal=employee] .customer-wrap,body[data-kemet-portal=customer] .customer-wrap{width:min(100% - 24px,1320px)}
body[data-kemet-portal=employee] .customer-wrap,body[data-kemet-portal=customer] .customer-wrap{max-width:1040px}
body[data-kemet-portal=employee] .customer-wrap>.panel,body[data-kemet-portal=customer] .customer-wrap>.panel{border-top:4px solid var(--kemet-accent)}
body[data-kemet-portal=manager] .portal-top{border-top:4px solid var(--kemet-accent)}
:where(.manager-wrap,.customer-wrap,#stage-app) :where(button,a,input,select,textarea):focus-visible{outline:3px solid var(--kemet-focus);outline-offset:3px}
:where(.manager-wrap,.customer-wrap,#stage-app) button:disabled{cursor:not-allowed;opacity:.58}
@media(max-width:480px){body[data-kemet-portal=manager] .manager-wrap,body[data-kemet-portal=employee] .customer-wrap,body[data-kemet-portal=customer] .customer-wrap{width:100%}.portal-top{align-items:flex-start}.kemet-portal-footer{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V6.4.1 role-specific portal templates; no change to API permissions */
.kemet-workspace-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:12px;margin:12px 0 20px;border:1px solid #dbe5ec;border-radius:16px;background:#fff}
.kemet-workspace-tabs button{appearance:none;padding:10px 15px;border:1px solid transparent;border-radius:10px;background:transparent;color:#344e63;font:inherit;font-weight:600;cursor:pointer}
.kemet-workspace-tabs button[aria-current=page],.kemet-workspace-tabs button.active{background:#0d304a;color:#fff;border-color:#0d304a}
.kemet-portal-intro,.kemet-founder-workflow{margin:16px 0 20px;padding:22px 24px;border-radius:16px;background:linear-gradient(116deg,#082740,#16435b);color:#fff}
.kemet-portal-intro p,.kemet-founder-workflow small{display:block;color:#d3e2ec;margin:8px 0 0;line-height:1.65}
.kemet-portal-intro h2,.kemet-portal-intro h3{color:#fff;margin:7px 0}.kemet-portal-intro .eyebrow{color:#f2ca88}
.kemet-founder-workflow{display:grid;gap:7px}.kemet-founder-workflow span{font-size:14px}
.kemet-count-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 20px}
.kemet-count-grid>div{border:1px solid #d9e4eb;border-radius:14px;padding:18px;background:#fff;min-width:0}
.kemet-count-grid small{display:block;font-size:12px;color:#4f6275}.kemet-count-grid strong{font-size:28px;color:#0a2942}
.kemet-live-label{border:1px solid #d7bc8b;color:#835a26;border-radius:99px;padding:5px 11px;font-size:12px}
[data-ops-panel][hidden],.kemet-portal-intro[hidden]{display:none!important}
body[data-kemet-portal=manager] .grid2:has(>[data-ops-panel]){align-items:start}
@media(max-width:740px){.kemet-workspace-tabs{flex-wrap:wrap}.kemet-workspace-tabs button{white-space:nowrap;flex:none}.kemet-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kemet-portal-intro{padding:18px}.kemet-live-label{display:none}}

/* V6.4.2 Employee self-service, mobile-first */
.employee-hub-nav{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.employee-hub-nav button{border:1px solid #b6c8d5;background:#fff;color:#113858;padding:10px 13px;border-radius:10px;font-weight:600;cursor:pointer}.employee-hub-nav button:hover{background:#f7f2e8;border-color:#bb934d}.employee-card{background:white;border:1px solid #d9e4ec;padding:22px;border-radius:16px;margin:18px 0;box-shadow:0 8px 22px #072b4610}.employee-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.employee-form label{display:grid;gap:6px;font-weight:600;font-size:14px;color:#24465b}.employee-form label:has(textarea),.employee-form h3,.employee-form .caption,.employee-form button{grid-column:1/-1}.employee-form input,.employee-form select,.employee-form textarea{width:100%;box-sizing:border-box;min-width:0;padding:12px;border-radius:9px;border:1px solid #c9d7df;font:inherit}.employee-request-item{padding:16px 0;border-top:1px solid #e3e9ee}.employee-request-item p{margin:9px 0}.employee-request-item small{color:#597386}.employee-status{display:inline-block;margin-left:12px;border:1px solid #c8b180;background:#fcf6e9;color:#60471f;border-radius:20px;padding:4px 10px;font-size:12px}.employee-back{margin:12px 0;cursor:pointer}@media(max-width:620px){.employee-form{grid-template-columns:1fr}.employee-card{padding:17px}.employee-hub-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.employee-hub-nav button{font-size:14px}}


/* KEMET customer workspace V6.4.3. Isolated namespace, shared brand tokens. */
body[data-kemet-portal="customer"] .customer-wrap{max-width:1280px;margin:18px auto;padding:0 16px}
.customer-top,.customer-identity,.customer-item,.customer-request-item>div{display:flex;align-items:center;justify-content:space-between;gap:16px}
.customer-identity{justify-content:flex-start}.customer-identity img{object-fit:contain}.customer-identity span,.customer-heading span,.customer-kicker{font-size:12px;letter-spacing:.14em;font-weight:700;color:#7d5a1e}.customer-identity h2{margin:4px 0 0;font-size:22px}.customer-top>button{border:1px solid #d2dce7;background:#fff;padding:10px 14px;border-radius:10px}
.customer-nav{display:flex;gap:5px;padding:8px 0 14px;overflow-x:auto;border-bottom:1px solid #e0e7ef;margin:14px 0 22px;scrollbar-width:thin}.customer-nav button{white-space:nowrap;border:0;background:transparent;color:#426078;border-radius:9px;padding:11px 13px;font-weight:600}.customer-nav button[aria-current="page"]{color:white;background:#0e3048}
.customer-hero{background:linear-gradient(115deg,#082b40,#164960);border-radius:18px;color:white;padding:28px 30px;position:relative;overflow:hidden}.customer-hero:after{content:"";width:190px;height:190px;position:absolute;border:1px solid #ffffff22;border-radius:50%;right:-25px;top:-50px;pointer-events:none}.customer-hero h2{font-size:34px;margin:8px 0}.customer-hero p{color:#d7e4ec;max-width:580px;line-height:1.55}.customer-hero .customer-kicker{color:#eac683}
.customer-action{background:#c9a15c;color:#102c40;border:0;border-radius:10px;font-weight:700;padding:12px 17px;cursor:pointer;position:relative}.customer-hero .customer-action{margin-top:8px}
.customer-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 22px}.customer-metrics article{border:1px solid #e0e7ee;border-radius:13px;padding:17px;background:#fff;display:grid;gap:8px}.customer-metrics span{font-size:12px;color:#607589}.customer-metrics strong{font-size:28px;color:#133750;font-variant-numeric:tabular-nums}
.customer-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.customer-section{min-width:0;border:1px solid #e0e7ee;background:#fff;border-radius:15px;padding:21px;margin-bottom:16px}.customer-section>header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:15px}.customer-section h3{margin:0;color:#173b54;font-size:18px}.customer-item{border-top:1px solid #e8edf1;padding:16px 0;align-items:flex-start}.customer-item:first-child{border-top:0}.customer-item>div:first-child{min-width:0}.customer-item strong,.customer-request-item strong{display:block;color:#193d55}.customer-item small,.customer-request-item small{display:block;color:#61788b;margin-top:6px}.customer-item p,.customer-request-item p{margin:8px 0 0;color:#42586b}.customer-item b{white-space:nowrap;color:#173b54}.customer-pill{font-size:12px;font-weight:700;border-radius:30px;color:#31536b;background:#edf3f7;padding:6px 9px;white-space:nowrap}.customer-empty{padding:20px;text-align:center;color:#4f6275;background:#f7fafc;border-radius:10px}.customer-empty p{margin:7px 0 0}.customer-link{background:transparent;border:0;color:#276987;font-weight:700;cursor:pointer;text-align:left}.customer-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:6px 0 24px}.customer-shortcuts button{display:grid;text-align:left;gap:8px;border:1px solid #dae5ec;background:#f7f9fb;padding:17px;border-radius:12px;cursor:pointer}.customer-shortcuts small{color:#4f6275}.customer-shortcuts span{justify-self:end;font-size:22px;color:#7d5a1e}
.customer-heading{padding:5px 0 22px}.customer-heading h2{margin:7px 0;font-size:28px}.customer-heading p{color:#4f6275;margin:0}.customer-stack{display:grid;gap:2px}.customer-invoice-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.customer-invoice-actions a{color:#165e87;text-decoration:underline;font-size:14px}.customer-longtext{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.customer-request-item{border-top:1px solid #e4ebef;padding:15px 0}.customer-request-item:first-child{border-top:0}.customer-request-item>div{align-items:flex-start}.customer-form{display:grid;gap:14px}.customer-form label{display:grid;gap:7px;font-size:14px;font-weight:600}.customer-form textarea{min-height:120px}.customer-form-feedback{min-height:1.4em;font-size:14px}.customer-setting{display:flex;align-items:center;justify-content:space-between;gap:20px}.customer-setting p,.customer-security p{line-height:1.6;color:#61788b}.customer-switch{display:flex;gap:8px;align-items:center}.customer-security{border-top:1px solid #e2e8ee;margin-top:18px;padding-top:18px}.customer-footer{font-size:12px;color:#4f6275;text-align:center;padding:22px 0 9px}
@media(max-width:900px){.customer-metrics,.customer-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-two{grid-template-columns:1fr}}
@media(max-width:540px){.customer-top{align-items:flex-start}.customer-identity h2{font-size:18px}.customer-identity img{width:38px}.customer-metrics article{padding:13px}.customer-hero{padding:23px 19px}.customer-section{padding:15px}.customer-item{gap:10px;flex-wrap:wrap}.customer-setting{flex-direction:column;align-items:flex-start}.customer-invoice-actions{align-items:flex-start}.customer-shortcuts{grid-template-columns:1fr 1fr}}

/* V6.4.4 founder cockpit, shared staging API: responsive executive command center */
.founder-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0 22px}.founder-metrics .metric{min-width:0}.founder-workspaces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}.founder-workspace{position:relative;display:flex;min-height:115px;flex-direction:column;gap:9px;padding:22px 47px 20px 22px;text-align:left;background:#fff;color:#102e46;border:1px solid #dee7ef;border-radius:16px;cursor:pointer;box-shadow:0 3px 12px #1229440b}.founder-workspace:hover{border-color:#bc9350;box-shadow:0 8px 25px #12294418}.founder-ws-title{font-size:16px;font-weight:700}.founder-workspace small{font-size:12px;color:#4f6275}.founder-ws-arrow{position:absolute;right:18px;top:18px;color:#7d5a1e}.founder-queue{display:grid;gap:8px}.founder-queue-item{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px;width:100%;border:1px solid #e4ebf2;border-radius:11px;background:#fbfcfe;text-align:left;cursor:pointer;color:#163652}.founder-queue-item strong{margin-left:auto;font-size:18px;color:#926c2f}.founder-queue-item:hover{background:#f9f2e6}@media(max-width:1150px){.founder-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.founder-workspaces{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.founder-metrics,.founder-workspaces{grid-template-columns:1fr}.founder-workspace{min-height:92px;padding:18px 43px 18px 18px}}
/* V6.3 QA port (Phase 3): founder quality evidence, publication gate status and inbox labels. No inline styles (CSP style-src self). */
.qa-evidence{margin:8px 0;padding:12px;border:1px solid var(--kemet-border,#e2e8ef);border-radius:12px;overflow-wrap:anywhere}.qa-evidence h4{margin:8px 0 4px;font-size:16px}.qa-evidence p{white-space:pre-wrap;line-height:1.6;margin:4px 0}.qa-evidence ul{padding-inline-start:22px;line-height:1.7;margin:4px 0}
.qa-report-text{width:100%;padding:10px;box-sizing:border-box}.qa-gate{margin:4px 0 0;font-size:12px;color:var(--kemet-muted,#62758a)}.qa-gate-error{color:#a3361f;font-weight:600}
.notice-kind{display:inline-block;margin-bottom:4px;padding:2px 8px;border-radius:999px;background:#fbf3e4;color:#7a5418;font-size:12px;font-weight:700;letter-spacing:.02em}
@media(max-width:680px){.qa-evidence{padding:10px}.notice-item button{margin-top:6px}}
/* V6.3 QA port (Phase 4): customer notices on the overview. Unread state uses a border and weight, not colour alone. */
.customer-notice{display:flex;justify-content:space-between;gap:12px;overflow-wrap:anywhere}.customer-notice strong{display:block}.customer-notice small{display:block;color:#62758a;margin-top:3px}
.customer-notice-unread{border-left:4px solid var(--kemet-gold,#c79b50);padding-left:12px}.customer-notice-unread strong{font-weight:700}
@media(max-width:680px){.customer-notice{flex-direction:column;align-items:flex-start}.customer-notice .customer-link{padding:8px 0;min-height:44px}}
/* Inbox entries with two actions: keep the text column flexible and the buttons on one line each (found in the Phase 3/4 browser pass). */
.notice-item{flex-wrap:wrap}.notice-item>div:first-child{flex:1 1 220px;min-width:min(220px,100%)}.notice-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-left:auto}.notice-actions button{white-space:nowrap}
/* B3: former inline style attributes (blocked by CSP style-src self) moved here. */
.founder-admin-link{font-size:12px}.customer-admin-wrap{max-width:1000px;margin:2rem auto;padding:1.5rem}
/* Founder forms (finance fix, generalised in M1/6.6): each label above its own field at every width.
   Dialog forms (.modal) and .ops-form keep their own rules; checkbox/radio labels stay on one line. */
#stage-app #content form:not(.ops-form){display:grid;gap:12px;align-content:start;min-width:0}
#stage-app #content form:not(.ops-form) label{display:grid;gap:6px;font-size:14px;font-weight:600;min-width:0}
#stage-app #content form:not(.ops-form) :is(input,select,textarea){width:100%;min-width:0;box-sizing:border-box}
#stage-app #content form:not(.ops-form) label:has(>input:is([type=checkbox],[type=radio])){display:flex;align-items:center;gap:8px;font-weight:600}
#stage-app #content form:not(.ops-form) input:is([type=checkbox],[type=radio]){width:auto;flex:none}
#stage-app #content form:not(.ops-form)>button{justify-self:start}
/* R2: why the start button is disabled (draft or closed visit). Text plus border, not colour alone. */
.emp-start-blocked{margin:10px 0;padding:10px 12px;border-left:4px solid var(--kemet-gold,#c79b50);background:#fbf3e4;color:#5c3f12;font-weight:600;border-radius:8px}
/* Operations Center: per-section load error (text + border, not colour alone). */
.ops-load-error{border-left:4px solid #a3361f;color:#7a2a17;font-weight:600;text-align:left}.ops-load-error button{margin-left:8px}
/* M1: on phones the off-canvas founder sidebar is fixed to the screen height; let it scroll so every entry is reachable. */
@media(max-width:720px){.sidebar{overflow-y:auto;overscroll-behavior:contain}}
/* Firmendaten (central company settings). DS 1.0 tokens, scoped to this view only (global rollout = Phase 7c). */
.company-settings,.issue-company{--k-navy-700:#0f2f4d;--k-gold-text:#7d5a1e;--k-text-strong:#0b2238;--k-text:#24394d;--k-text-muted:#4f6275;--k-border:#e2e8ef;--k-border-field:#7d8d9e;--k-focus:#b98a39;--k-success:#17633f;--k-success-bg:#e6f4ec;--k-warning:#7a4b00;--k-warning-bg:#fdf1dc;--k-danger:#9a2f1a;--k-danger-bg:#fbe9e5;--k-draft:#5b4a8a;--k-draft-bg:#efeaf8;color:var(--k-text)}
.company-settings{display:grid;gap:24px}
.cs-banner{border-radius:10px;padding:12px 16px;font-size:14px;line-height:1.5;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.cs-banner.is-verified{background:var(--k-success-bg);color:var(--k-success)}.cs-banner.is-pending{background:var(--k-warning-bg);color:var(--k-warning)}
.cs-next{margin-left:auto;color:var(--k-text)}
.cs-group h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--k-gold-text);margin:0 0 10px}
.cs-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.company-settings form.cs-form{margin:0;padding:20px;border:1px solid var(--k-border);border-radius:16px;background:#fff;display:grid;gap:14px;box-shadow:0 1px 2px rgba(8,31,54,.06),0 2px 8px rgba(8,31,54,.06)}
.cs-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.cs-head h4{margin:0;font-size:16px;color:var(--k-text-strong)}
.cs-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;line-height:20px;white-space:nowrap}
.cs-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.cs-badge.is-verified{color:var(--k-success);background:var(--k-success-bg)}.cs-badge.is-proposed{color:var(--k-draft);background:var(--k-draft-bg)}.cs-badge.is-pending{color:var(--k-warning);background:var(--k-warning-bg)}
.cs-fields{display:grid;gap:12px}
.company-settings label{display:grid;gap:6px;margin:0;font-size:14px;font-weight:600;color:var(--k-text-strong)}
.company-settings input:not([type=checkbox]),.company-settings select,.company-settings textarea{font:inherit;font-size:16px;font-weight:400;min-height:44px;padding:8px 12px;border:1px solid var(--k-border-field);border-radius:6px;background:#fff;color:var(--k-text);width:100%;box-sizing:border-box}
.company-settings input[readonly]{background:#f4f6f9;color:var(--k-text-muted)}
.company-settings :focus-visible{outline:3px solid var(--k-focus);outline-offset:2px}
.cs-hint{font-size:14px;font-weight:400;color:var(--k-text-muted)}
.company-settings label.cs-check{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600}
.cs-check input{width:20px;height:20px;accent-color:var(--k-navy-700);flex:none}
.cs-confirm{border-top:1px solid var(--k-border);padding-top:10px}
.cs-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cs-actions .primary{min-height:44px}
.cs-msg{font-size:14px;font-weight:600}.cs-msg.is-ok{color:var(--k-success)}.cs-msg.is-error{color:var(--k-danger)}
.issue-company{border:1px solid var(--k-border);border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.6;background:#f8fafc}
.issue-company.is-blocked{border-color:var(--k-warning);background:var(--k-warning-bg)}
.issue-company .cs-why{margin:8px 0;color:var(--k-warning);font-weight:600}
.issue-company .cs-go{min-height:44px}
@media (max-width:599px){.cs-forms{grid-template-columns:1fr}.company-settings form.cs-form{padding:16px}.cs-next{margin-left:0}.cs-actions .primary{width:100%}}

/* Environment indicator (portal-shell.js). Hidden only when the server confirms production. */
body[data-kemet-env="production"] [data-env-test]{display:none!important}
.kemet-env-banner{background:#efeaf8;color:#5b4a8a;font-size:14px;font-weight:700;line-height:1.4;text-align:center;padding:6px 16px;border-bottom:1px solid #ddd3ef}
.data-load-error{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;padding:12px 16px;border:2px solid #9a2f1a;border-radius:10px;background:#fbe9e5;color:#9a2f1a;font-size:14px}
.data-load-error .primary{min-height:40px}
td.table-empty{text-align:center;color:#4f6275;font-size:14px;padding:18px 12px}

/* U8: navigation stays reachable on long pages (desktop/tablet); the customer documents entry is a regular nav item. */
@media (min-width:721px){.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;align-self:flex-start}}
#navigation a.nav{text-decoration:none;color:#cbd9e5}
#navigation a.nav:hover{color:#fff}

/* DS 1.0 tokens (D1, founder-approved 2026-10-18): AA text colours, 12 px minimum for secondary text, 44 px phone targets. */
:root{--k-text-muted:#4f6275;--k-gold-text:#7d5a1e;--k-link:#1d5f80}
a:not([class]){color:var(--k-link)}
@media (max-width:720px){
 button,select,textarea,[role=button],input:not([type=checkbox]):not([type=radio]):not([type=hidden]){min-height:44px}
 /* H1: width minimum only for the icon-only menu button; text buttons keep min-width:auto so they never shrink below their label. */
 [aria-label="Menü öffnen"]{min-width:44px}
 a.nav,.customer-admin-wrap>a{display:inline-flex;align-items:center;min-height:44px}
}

/* Browser-default <small> shrinks below 12 px inside 13 px text: keep the 12 px floor (explicit small rules still win). */

@media (max-width:720px){
 .customer-wrap article a,.customer-footer a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
 .customer-switch{display:flex;align-items:center;gap:10px;min-height:44px}
}

/* H2: Audit view toolbar with an explicit refresh action. */
.audit-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.audit-toolbar .caption{margin:0}

/* Slice 1 / D6 (Option A): no sideways scrolling. portal-shell.js keeps a table only if every column fits its longest
   word; otherwise the table is shown as labelled cards (all cells, statuses and actions stay visible). */
.panel table td,.panel table th{overflow-wrap:normal;word-break:normal}
table.kemet-measure{width:min-content!important}
table.kemet-cards{border:0}
table.kemet-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
table.kemet-cards,table.kemet-cards tbody,table.kemet-cards tr{display:block;width:100%}
table.kemet-cards tbody{display:grid;gap:12px}
@media(min-width:600px){table.kemet-cards tbody{grid-template-columns:repeat(2,minmax(0,1fr))}}
table.kemet-cards tr{border:1px solid #e2e8ef;border-radius:12px;padding:6px 14px;background:#fff;box-shadow:0 1px 2px rgba(8,31,54,.05)}
table.kemet-cards td{display:grid;grid-template-columns:minmax(88px,38%) minmax(0,1fr);gap:4px 10px;align-items:start;padding:8px 0;border:0;overflow-wrap:anywhere}
table.kemet-cards td+td{border-top:1px solid #edf1f5}
table.kemet-cards td::before{content:attr(data-label);color:#4f6275;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
table.kemet-cards td:not([data-label])::before{content:none}
table.kemet-cards td.cell-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
table.kemet-cards td.cell-actions::before{flex-basis:100%}
table.kemet-cards td.table-empty{display:block;text-align:center}
table.kemet-cards td.table-empty::before{content:none}
/* Action rows (e.g. Betriebszentrale): the button keeps its label on one line and moves below the text when space is short. */
.row{flex-wrap:wrap}
.row>div:first-child{flex:1 1 220px;min-width:0}
.row button{white-space:nowrap;flex:none}
/* Slice 1 / D6: customer tab bar wraps instead of hiding tabs sideways (interim until the slice 2 bottom navigation). */
.customer-nav{flex-wrap:wrap;overflow-x:visible}

/* Slice 1 / D8: employee visit — action bar stays in view, disabled actions stay readable and explain why, 56 px rows. */
.emp-actionbar{position:sticky;bottom:0;z-index:5;background:#fff;margin:16px 0;padding:10px 0 12px;border-top:1px solid #e2e8ef;box-shadow:0 -6px 16px rgba(8,31,54,.07)}
.emp-actionbar .portal-actions{margin:0;flex-wrap:wrap}
.portal-actions button:disabled{opacity:1;background:#e9edf2;color:#4f6275;border-color:#e9edf2}
.portal-actions button.primary{background:#0f2f4d;color:#fff;border-color:#0f2f4d}
.emp-why{margin:8px 0 0;padding-left:18px;color:#4f6275;font-size:14px;line-height:1.5}
.emp-why-checklist{margin:4px 0 8px;color:#4f6275;font-size:14px}
.portal-step{min-height:56px;align-items:center}
@media(max-width:720px){.emp-actionbar .portal-actions button.primary{flex:1 1 100%;min-height:52px;font-size:16px}}

/* Slice 2a / D3: one app shell. Sidebar >= 1100 px · 76 px icon rail 600-1099 px · drawer + bottom bar < 600 px.
   Icons come from /brand/icons.svg (stroke drawn here). The Founder keeps its .sidebar; other portals get .k-side. */
.k-ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.k-bottom,.k-mtop,.k-scrim{display:none}
.k-nav[hidden],.sidebar .nav[hidden]{display:none!important}
#menu .k-ico{width:24px;height:24px}
.k-app{display:flex;align-items:flex-start;min-height:100vh}
.k-main{flex:1;min-width:0}
.k-side{width:248px;flex:none;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(165deg,#06182b,#0c2b49);color:#d4e2ed;padding:22px 12px;display:flex;flex-direction:column;gap:4px;z-index:6}
.k-brand{display:flex;gap:11px;align-items:center;padding:2px 8px 16px;margin-bottom:8px;border-bottom:1px solid #ffffff1f}
.k-brand img{width:40px;height:40px;background:#fff;border-radius:10px;padding:4px;object-fit:contain;flex:none}
.k-brand b{display:block;color:#e3b264;font-size:16px;letter-spacing:.08em}
.k-brand small{display:block;color:#c9d6e2;font-size:12px;margin-top:2px}
.k-side .k-navlist{display:flex;flex-direction:column;flex-wrap:nowrap;gap:4px;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;position:static}
.k-side .k-navlist .k-nav{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;margin:0;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#cbd9e5;font:inherit;font-size:14px;font-weight:600;text-align:left;white-space:normal;cursor:pointer;box-shadow:none}
.k-side .k-navlist .k-nav:hover{background:#ffffff14;color:#fff}
.k-side .k-navlist .k-nav[aria-current="page"],.k-side .k-navlist .k-nav.active{background:#ffffff1a;color:#f5cf91;box-shadow:inset 3px 0 0 #dfa94f}
.k-side .k-navlist .k-nav:focus-visible,.sidebar .nav:focus-visible,.k-bottom button:focus-visible,.k-mtop button:focus-visible{outline:3px solid #dfa94f;outline-offset:2px}
.k-group{margin:16px 12px 4px;color:#a9bccd;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.k-shell .employee-hub-nav{display:none}
.k-shell .manager-wrap,.k-shell .customer-wrap{margin-top:0}
@media(min-width:600px) and (max-width:1099px){
 #stage-app .sidebar,.k-side{position:sticky;inset:0 auto auto auto;align-self:flex-start;height:100vh;transform:none;width:76px;padding:16px 8px;overflow-x:hidden}
 #stage-app .sidebar .brand{justify-content:center;padding:0 0 16px}
 #stage-app .sidebar .brand div,#stage-app .sidebar .environment,#stage-app .sidebar .sidefoot,.k-brand div,.k-group{display:none}
 .k-brand{justify-content:center;padding:0 0 14px}
 #stage-app .sidebar .nav,.k-side .k-navlist .k-nav{justify-content:center;padding:12px 0;min-height:48px;gap:0}
 #stage-app .sidebar .nav.active{border-left:0;box-shadow:inset 3px 0 0 #dfa94f}
 #stage-app .sidebar .nav:hover{transform:none}
 .sidebar .k-label,.k-side .k-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 #menu{display:none}
}
@media(max-width:599px){
 #stage-app .sidebar,.k-side{position:fixed;z-index:20;inset:0 auto 0 0;height:100%;width:min(300px,86vw);transform:translateX(-100%);transition:transform .2s;overflow-y:auto}
 #stage-app .sidebar.open,.k-side.open{transform:none;box-shadow:12px 0 32px rgba(6,24,43,.35)}
 body.k-nav-open .k-scrim{display:block;position:fixed;inset:0;z-index:19;background:rgba(6,24,43,.45)}
 .k-mtop{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:7;background:#fff;border-bottom:1px solid #e2e8ef;padding:6px 12px}
 .k-mtop button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;border-radius:10px;background:transparent;color:#0b2238}
 .k-mtop button .k-ico{width:24px;height:24px}
 .k-mtop img{width:30px;height:30px}
 .k-mtop b{color:#0b2238;font-size:16px;letter-spacing:.04em;line-height:1.2}
 .k-mtop small{display:block;color:#4f6275;font-size:12px;font-weight:600;letter-spacing:0}
 .k-bottom{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:18;gap:2px;background:#fff;border-top:1px solid #e2e8ef;box-shadow:0 -4px 14px rgba(8,31,54,.08);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
 .k-bottom button{flex:1 1 0;min-width:44px;hyphens:manual;overflow-wrap:normal;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border:0;border-radius:10px;background:transparent;color:#4f6275;font:inherit;font-size:12px;font-weight:600;line-height:1.2;text-align:center}
 .k-bottom button[aria-current="page"]{color:#0f2f4d;background:#eef3f8;box-shadow:inset 0 3px 0 #c79b50}
 body.k-has-bottom{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
 body.k-focus .k-bottom{display:none}
 body.k-has-bottom.k-focus{padding-bottom:0}
}
@media(prefers-reduced-motion:reduce){#stage-app .sidebar,.k-side{transition:none}}

/* Slice 2b / D4: counters (gold on navy text, >= 12 px), Betriebszentrale tabs as wrapping chips, group headings. */
.k-count{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:#c79b50;color:#081a2c;font-size:12px;font-weight:700;line-height:22px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.k-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#navigation .k-group{margin:14px 12px 4px}
#navigation .k-group:first-child{margin-top:0}
.k-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px;padding-bottom:12px;border-bottom:1px solid #e2e8ef}
.k-tabs [role="tab"]{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid #cdd8e2;border-radius:999px;background:#fff;color:#344e63;font:inherit;font-weight:600;cursor:pointer}
.k-tabs [role="tab"][aria-selected="true"]{background:#0d304a;color:#fff;border-color:#0d304a}
.k-tabs [role="tab"]:focus-visible{outline:3px solid #dfa94f;outline-offset:2px}
.k-tabs .k-count{margin-left:0}
[role="tabpanel"][hidden]{display:none!important}
[role="tabpanel"]:focus-visible{outline:2px solid #dfa94f;outline-offset:4px}
.ops-attendance{margin-top:22px;padding-top:6px;border-top:1px solid #e2e8ef}
@media(min-width:600px) and (max-width:1099px){
 #stage-app .sidebar .nav,.k-side .k-navlist .k-nav{position:relative}
 #stage-app .sidebar .nav .k-count,.k-side .k-nav .k-count{position:absolute;top:2px;right:4px;min-width:20px;height:20px;line-height:20px;padding:0 5px}
}
@media(max-width:599px){
 .k-bottom button{position:relative}
 .k-bottom .k-count{position:absolute;top:2px;left:calc(50% + 4px);margin:0;min-width:20px;height:20px;line-height:20px;padding:0 5px}
}
/* Slice 2b / L1: while the shell carries the brand, the page headers of Objektleitung, Mitarbeiter and Kunde show no second logo. */
.k-shell .portal-top>img,.k-shell .customer-wrap>.panel>img,.k-shell .customer-identity>img{display:none}

/* Slice 3 / D2 (founder-approved T1, T3): one family for every element incl. form fields; weights 400/600/700 only. */
button,input,select,textarea{font-family:inherit}

/* Slice 3 / D2 (founder-approved T2): role hierarchy on the 7-step scale. Desktop: page title 28 · hero 34 · section 22 ·
   panel/card title 18 · sub-heading 16 · body 16 · secondary and tables 14 · labels/eyebrows 12. Phone (< 600 px): title 22 ·
   hero 28 · section 18 · key figures 22. Line height 1.5 for text, 1.25 for headings. */
body{font-size:16px;line-height:1.5}
h1,h2,h3,h4{line-height:1.25}
h1{font-size:28px}h2{font-size:22px}h3,h4{font-size:16px}small{font-size:14px}
input,select,textarea{font-size:16px}
#title,.stage-login h1,.portal-top h1,.customer-heading h2,.emp-visit-head h2{font-size:28px}
.hero h2,.customer-hero h2{font-size:34px}
.section-heading h2{font-size:22px}
.panel h2,.panelhead h2{font-size:18px}
.metric .num,.customer-metrics strong,.kemet-count-grid strong,.emp-summary strong{font-size:28px}
@media(max-width:599px){
 h1,#title,.stage-login h1,.portal-top h1,.customer-heading h2,.emp-visit-head h2{font-size:22px}
 .hero h2,.customer-hero h2{font-size:28px}
 .section-heading h2{font-size:18px}
 .metric .num,.customer-metrics strong,.kemet-count-grid strong,.emp-summary strong{font-size:22px}
}

/* Slice 3 / D2 (founder-approved T4): tabular numerals for numbers, amounts, dates and numeric table cells only. */
td.k-num,.metric .num,.k-count,.founder-queue-item strong,.customer-metrics strong,.emp-summary strong,.kemet-count-grid strong,.invoice-totals{font-variant-numeric:tabular-nums}

/* Slice 4 / P3 (D7): form pattern. Required marker and note, error summary, inline errors, sticky actions, numbered sections. */
.k-req{color:#9a2f1a;font-weight:700}
.k-req-note{grid-column:1/-1;margin:0 0 8px;color:#4f6275;font-size:14px}
.k-error-summary{grid-column:1/-1;margin:0 0 14px;padding:12px 16px;border:2px solid #b42318;border-left-width:6px;border-radius:10px;background:#fff5f4;color:#0b2238}
.k-error-summary:focus{outline:3px solid #dfa94f;outline-offset:2px}
.k-error-title{margin:0 0 6px;font-size:16px;font-weight:700}
.k-error-summary ul{margin:0;padding-left:18px}
.k-error-summary a{color:#9a2f1a;font-weight:600;text-decoration:underline}
.k-field-error{display:block;margin:4px 0 0;color:#9a2f1a;font-size:14px;font-weight:600}
form [aria-invalid="true"]{border-color:#b42318!important;box-shadow:0 0 0 1px #b42318}
.k-form-actions{grid-column:1/-1;position:sticky;bottom:0;z-index:4;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding:10px 0;background:#fff;border-top:1px solid #e2e8ef}
form :is(input,select,textarea){scroll-margin-top:96px}
form.k-sections{counter-reset:ks}
form.k-sections :is(fieldset>legend,h3,h4)::before{counter-increment:ks;content:counter(ks) ". "}
@media(max-width:599px){body.k-has-bottom .k-form-actions{bottom:calc(72px + env(safe-area-inset-bottom))}}

/* Staff deactivation: status rows, result note, warning pill (AA contrast). */
.pill.warn{background:#fff1db;color:#6b4200;border:1px solid #e8c37c}
.staff-status{margin-top:22px;padding-top:6px;border-top:1px solid #e2e8ef}
.staff-status-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf1f5}
.staff-status-row small{display:block;color:#4f6275;font-size:14px}
.staff-status-row form{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:0}
button.danger{background:#fff5f4;color:#9a2f1a;border:1px solid #d9a199}
.deactivation-result{margin:12px 0;padding:12px 16px;border-left:6px solid #c79b50;border-radius:10px;background:#fbf6ec;color:#0b2238}
.deactivation-result ul{margin:6px 0 10px;padding-left:18px}
.time-review{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid #edf1f5}
/* Legal links (Impressum, Datenschutzerklärung): readable 14 px, touch target 44 px, wrap on phones. */
.k-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0 16px;margin-top:6px;font-size:14px}.k-legal a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:#0f4c7a;text-decoration:underline;text-underline-offset:3px}.k-legal a:focus-visible{outline:3px solid #dfa94f;outline-offset:2px;border-radius:4px}.stage-login .k-legal{margin-top:18px}
/* i18n (founder decision 2026-10-20): language switch (Deutsch · English · العربية) and the right-to-left layout for Arabic.
   The page stays hidden until the selected catalog is loaded (public/i18n.js, max. 4 s). */
html.k-i18n-wait body{visibility:hidden}
.k-lang{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px;margin-top:6px}
.k-lang button{min-height:44px;padding:0 12px;border:1px solid #c9d6e2;border-radius:10px;background:#fff;color:#0f4c7a;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.k-lang button[aria-pressed="true"]{background:#0f2f4d;border-color:#0f2f4d;color:#fff}
.k-lang button:focus-visible{outline:3px solid #dfa94f;outline-offset:2px}
.k-lang-side{justify-content:flex-start;margin:16px 8px 8px}
.k-lang-side button{background:transparent;border-color:#3c5874;color:#cbd9e5}
.k-lang-side button[aria-pressed="true"]{background:#c79b50;border-color:#c79b50;color:#081a2c}
@media(min-width:600px) and (max-width:1099px){.k-lang-side{display:none}}
/* Arabic: no letter spacing (it breaks the joined script); mirrored alignment, accents, drawers and counters. */
[dir=rtl] *{letter-spacing:0!important}
[dir=rtl] .nav,[dir=rtl] th,[dir=rtl] .crm-customer,[dir=rtl] .portal-card,[dir=rtl] .portal-job,[dir=rtl] .quick-tile,[dir=rtl] .customer-link,[dir=rtl] .customer-shortcuts button,[dir=rtl] .founder-workspace,[dir=rtl] .founder-queue-item,[dir=rtl] .ops-load-error,[dir=rtl] .k-side .k-navlist .k-nav{text-align:right}
[dir=rtl] .date{text-align:left}
[dir=rtl] .nav.active{border-left:0;border-right:3px solid var(--kemet-gold,#dfa94f)}
[dir=rtl] #stage-app .sidebar .nav.active{border-right:0;box-shadow:inset -3px 0 0 #dfa94f}
[dir=rtl] .nav:hover{transform:translateX(-2px)}
[dir=rtl] .status,[dir=rtl] .founder-queue-item strong,[dir=rtl] .notice-actions,[dir=rtl] .k-count,[dir=rtl] .cs-next{margin-left:0;margin-right:auto}
[dir=rtl] .k-tabs .k-count{margin-right:0}
[dir=rtl] .dot{margin-right:0;margin-left:8px}
[dir=rtl] .employee-status{margin-left:0;margin-right:12px}
[dir=rtl] .ops-load-error button{margin-left:0;margin-right:8px}
[dir=rtl] .customer-notice-unread{border-left:0;border-right:4px solid var(--kemet-gold,#c79b50);padding-left:0;padding-right:12px}
[dir=rtl] .emp-start-blocked{border-left:0;border-right:4px solid var(--kemet-gold,#c79b50)}
[dir=rtl] .ops-load-error{border-left:0;border-right:4px solid #a3361f}
[dir=rtl] .deactivation-result{border-left:0;border-right:6px solid #c79b50}
[dir=rtl] .k-error-summary{border-left-width:2px;border-right-width:6px}
[dir=rtl] .emp-why,[dir=rtl] .k-error-summary ul,[dir=rtl] .deactivation-result ul{padding-left:0;padding-right:18px}
[dir=rtl] .founder-workspace{padding:22px 22px 20px 47px}
[dir=rtl] .founder-ws-arrow{right:auto;left:18px}
[dir=rtl] .customer-hero:after{right:auto;left:-25px}
[dir=rtl] .kemet-skip{left:auto;right:16px}
[dir=rtl] #stage-app .sidebar .nav .k-count,[dir=rtl] .k-side .k-nav .k-count{right:auto;left:4px}
[dir=rtl] .k-bottom .k-count{left:auto;right:calc(50% + 4px)}
/* Addresses, links and numbers keep their reading order; the invoice preview is a German document. */
[dir=rtl] input[type=email],[dir=rtl] input[type=url],[dir=rtl] input[type=tel],[dir=rtl] input[name=iban],[dir=rtl] input[name=bic]{direction:ltr;text-align:right}
[dir=rtl] .invoice-sheet{direction:ltr;text-align:left}
@media(max-width:720px){[dir=rtl] .sidebar{inset:0 0 0 auto;transform:translateX(100%)}[dir=rtl] .sidebar.open{transform:translateX(0)}}
@media(max-width:680px){[dir=rtl] .founder-workspace{padding:18px 18px 18px 43px}}
@media(max-width:599px){[dir=rtl] #stage-app .sidebar,[dir=rtl] .k-side{inset:0 0 0 auto;transform:translateX(100%)}[dir=rtl] #stage-app .sidebar.open,[dir=rtl] .k-side.open{transform:none;box-shadow:-12px 0 32px rgba(6,24,43,.35)}[dir=rtl] .cs-next{margin-right:0}}
[dir=rtl] .k-side .k-navlist .k-nav[aria-current="page"],[dir=rtl] .k-side .k-navlist .k-nav.active{box-shadow:inset -3px 0 0 #dfa94f}
[dir=rtl] .tile-icon,[dir=rtl] .customer-shortcuts button span,[dir=rtl] .founder-queue-item span[aria-hidden]{display:inline-block;transform:scaleX(-1)}
[dir=rtl] td.k-num,[dir=rtl] .founder-kpi strong,[dir=rtl] .customer-item b,[dir=rtl] .customer-invoice-actions b{direction:ltr;unicode-bidi:isolate;text-align:right}
/* rc10: visit clock, site notes, visit photos (employee, Founder review, customer), Founder home sections. */
.emp-notes,.site-notes{display:block;background:#fff8e8;border:1px solid #ecd9a8;border-radius:10px;padding:12px 14px;margin:12px 0;font-size:14px;color:#3d3220;white-space:pre-line}
.emp-notes strong{display:block;margin-bottom:4px}
.emp-photo-add{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #d5e0e9;border-radius:10px;background:#fff;cursor:pointer;font-weight:600;font-size:14px}
.emp-photo-add:focus-within{outline:3px solid #dfa94f;outline-offset:2px}
.emp-photo-input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.emp-photo-grid,.qa-photos,.customer-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:10px 0}
.emp-photo,.qa-photo,.customer-photos figure{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.emp-photo img,.qa-photo img,.customer-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid #e2e8ef;background:#f4f6f9}
.emp-photo figcaption,.qa-photo figcaption,.customer-photos figcaption{font-size:12px;color:#4f6275;overflow-wrap:anywhere}
.qa-photo .crm-actions{margin:0}
.qa-rating,.customer-rating{font-size:14px;margin:8px 0}
.customer-hint{font-size:12px;color:#4f6275;margin:4px 0}
.founder-today{display:grid;gap:8px;margin-bottom:18px}
.founder-today-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:start;background:#fff;border:1px solid #e2e8ef;border-inline-start:4px solid #2a7884;border-radius:10px;padding:12px 14px;cursor:pointer;font-size:14px;color:#102741}
.founder-today-item.is-late{border-inline-start-color:#ac3c3c;background:#fff6f5}
.founder-today-item small{color:#4f6275}
.founder-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:18px}
.founder-day{display:flex;flex-direction:column;gap:4px;align-items:center;background:#fff;border:1px solid #e2e8ef;border-radius:10px;padding:10px 4px;min-width:0;text-align:center}
.founder-day small{font-size:12px;color:#4f6275;overflow-wrap:anywhere}
@media(max-width:599px){.founder-week{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* rc10.1 Founder home: designed cards (founder request 2026-10-25). One data series (teal columns); status colours always with icon + label. */
.fh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0 28px}
.fh-money,.fh-quality{grid-column:1/-1}
.fh-card{background:#fff;border:1px solid #e2e8ef;border-radius:18px;box-shadow:0 6px 24px #142b4510;padding:20px 22px;min-width:0;display:flex;flex-direction:column;gap:14px}
.fh-head{display:flex;align-items:center;gap:12px}
.fh-head h2{margin:2px 0 0;font-size:18px}
.fh-head>div{flex:1;min-width:0}
.fh-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#e6f1f2;color:#2a7883}
.fh-ico .k-ico,.fh-tile-ico .k-ico,.fh-forecast-ico .k-ico,.fh-empty-ico .k-ico{width:20px;height:20px}
.fh-badge{flex:none;min-width:32px;height:32px;padding:0 10px;border-radius:16px;background:#081f36;color:#fff;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center}
.fh-sub{margin:-6px 0 0;color:#4f6275;font-size:14px}.fh-sub strong{color:#102741}
/* today */
.fh-visits{display:grid;gap:10px}
.fh-visit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;text-align:start;background:#f8fafc;border:1px solid #e2e8ef;border-radius:14px;padding:10px 12px;cursor:pointer;color:#102741;font-size:14px}
.fh-visit:hover{border-color:#c9a15c;background:#fff}
.fh-time{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:72px;padding:8px 10px;border-radius:12px;background:#081f36;color:#fff}
.fh-time strong{font-size:18px;line-height:1.2}.fh-time small{font-size:12px;color:#c9d6e2}
.fh-visit-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.fh-visit-main strong,.fh-visit-main small{overflow-wrap:anywhere}.fh-visit-main small{color:#4f6275}
.fh-person{display:inline-flex;align-items:center;gap:6px;color:#4f6275;font-size:12px;margin-top:2px}
.fh-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#e6f1f2;color:#1f5e66;font-weight:700;font-size:12px}
.fh-state{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#eef3f7;color:#3c5a75;white-space:nowrap}
.fh-state .k-ico{width:14px;height:14px}
.fh-visit.is-run .fh-state{background:#e6f1f2;color:#1f5e66}
.fh-visit.is-done .fh-state{background:#e7f4ee;color:#22654a}
.fh-visit.is-late{border-color:#f1b9b2;background:#fff8f7}.fh-visit.is-late .fh-state{background:#fdecea;color:#8a1c13}
.fh-empty{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:14px;background:#f8fafc;border:1px dashed #d5e0e9}
.fh-empty-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#e7f4ee;color:#2e7d5b}
.fh-empty>div{display:flex;flex-direction:column;gap:4px;min-width:0}.fh-empty small{color:#4f6275;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-top:6px}
.fh-next{display:flex;flex-direction:column;gap:2px;font-size:14px}.fh-next bdi{font-weight:700;font-size:16px;color:#081f36}.fh-next span{color:#4f6275;overflow-wrap:anywhere}
/* next 7 days: one series, columns <=24px, 4px rounded data end, baseline */
.fh-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;align-items:end}
.fh-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px 2px;border-radius:10px}
.fh-col.is-today{background:#f1f6f8}
.fh-col-val{font-weight:700;font-size:14px;color:#102741}.fh-col.is-empty .fh-col-val{color:#8a9bab}
.fh-col-track{position:relative;display:block;width:100%;height:120px;border-bottom:1px solid #d5e0e9}
.fh-col-bar{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(24px,70%);height:0;border-radius:4px 4px 0 0;background:#2a7883}
.fh-col-day{font-size:12px;font-weight:600;color:#3c5a75;white-space:nowrap}.fh-col.is-today .fh-col-day{color:#081f36}
.fh-col small{font-size:12px;color:#4f6275;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* money */
.fh-money-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:14px}
.fh-hero{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:18px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8ef}
.fh-hero-num{font-size:34px;line-height:1.1;color:#081f36}
.fh-hero small{color:#4f6275;font-size:12px}
.fh-meter{height:8px;border-radius:4px;background:#e1ebe6;overflow:hidden}.fh-meter span{display:block;height:100%;width:0;border-radius:4px;background:#2e7d5b}
.fh-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fh-tile{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:10px;align-items:center;padding:14px;border-radius:14px;border:1px solid #e2e8ef;background:#fff;min-width:0}
.fh-tile-ico{grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#eef3f7;color:#3c5a75}
.fh-tile strong{font-size:22px;color:#102741;overflow-wrap:anywhere}.fh-tile small{grid-column:2;font-size:12px;color:#4f6275}
.fh-tile.is-good .fh-tile-ico{background:#e7f4ee;color:#2e7d5b}
.fh-tile.is-critical{border-color:#f1b9b2;background:#fff8f7}.fh-tile.is-critical .fh-tile-ico{background:#fdecea;color:#b42318}.fh-tile.is-critical small{color:#8a1c13;font-weight:600}
.fh-forecast{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:14px;background:linear-gradient(135deg,#081f36,#123a5c);color:#fff}
.fh-forecast-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#ffffff1a;color:#c79b50}
.fh-forecast>div{display:flex;flex-direction:column;gap:2px;min-width:0}.fh-forecast .tiny{color:#c9d6e2}
.fh-forecast strong{font-size:28px;color:#c79b50}.fh-forecast small{font-size:12px;color:#c9d6e2}
/* quality */
.fh-q-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fh-q{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:14px;border:1px solid #e2e8ef;background:#f8fafc;min-width:0}
.fh-q-num{font-size:28px;color:#102741}.fh-q-num small{font-size:16px;color:#4f6275}
.fh-q small{font-size:12px;color:#4f6275}.fh-q-empty{margin:0;font-size:14px;color:#4f6275}
.fh-compare{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 10px;font-size:12px;color:#3c5a75}
.fh-compare strong{font-size:14px;color:#102741}
.fh-cmp-track{display:block;height:10px;border-radius:5px;background:#e7eef3;overflow:hidden}
.fh-cmp-bar{display:block;height:100%;width:0;border-radius:5px;background:#2a7883}.fh-cmp-bar.is-plan{background:#9fb3c6}
.fh-stars{display:inline-flex;gap:2px;color:#cfd8e0}.fh-stars .k-ico{width:18px;height:18px}.fh-stars .is-on{color:#a8741f}.fh-stars .is-on .k-ico{fill:currentColor}
.fh-link{align-self:flex-start;background:none;border:0;padding:0;color:#1f5e66;font-weight:600;font-size:14px;text-decoration:underline;cursor:pointer}
@media(max-width:1099px){.fh-grid{grid-template-columns:minmax(0,1fr)}.fh-money-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){.fh-q-grid{grid-template-columns:minmax(0,1fr)}.fh-visit{grid-template-columns:auto minmax(0,1fr)}.fh-state{grid-column:1/-1;justify-self:start}}
@media(max-width:599px){.fh-col small{display:none}.fh-tiles{grid-template-columns:minmax(0,1fr)}.fh-col-track{height:90px}.fh-forecast strong{font-size:22px}.fh-hero-num{font-size:28px}.fh-card{padding:16px}}
/* rc10.2 Founder home layout: compact hero, decision tiles, compact key figures, slim workflow line. */
.hero.hero-compact{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:22px 28px;min-height:0}
.hero.hero-compact h2{margin:6px 0 4px}.hero.hero-compact p{margin:0;font-size:14px;max-width:620px}
.hero.hero-compact .hero-actions{margin:0;display:flex;gap:10px;flex-wrap:wrap}
.fh-queue{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:14px 0 24px}
.founder-queue .fh-qtile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:12px 14px;border-radius:14px;border:1px solid #e2e8ef;background:#fff;box-shadow:0 3px 14px #142b450a;text-align:start;cursor:pointer;color:#4f6275;font-size:14px}
.fh-qtile:hover{border-color:#c9a15c}
.fh-qtile-ico{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#f1f4f7;color:#8a9bab}
.fh-qtile-ico .k-ico{width:18px;height:18px}
.fh-qtile-label{min-width:0;overflow-wrap:anywhere;line-height:1.3}
.founder-queue .fh-qtile strong{font-size:22px;color:#8a9bab;font-variant-numeric:tabular-nums}
.fh-qtile.is-active{border-color:#ecd9a8;background:#fffcf4;color:#102741}.fh-qtile.is-active .fh-qtile-ico{background:#081f36;color:#c79b50}.fh-qtile.is-active strong{color:#081f36}
.fh-qtile.is-critical{border-color:#f1b9b2;background:#fff8f7;color:#102741}.fh-qtile.is-critical .fh-qtile-ico{background:#fdecea;color:#b42318}.fh-qtile.is-critical strong{color:#8a1c13}
.founder-metrics.fh-chips{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.fh-chips .metric{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-radius:12px;box-shadow:none;border:1px solid #e2e8ef}
.fh-chips .metric .num{font-size:18px}
.fh-flow{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin:6px 0 0;padding:10px 14px;border-radius:12px;background:#f1f4f7;color:#4f6275;font-size:12px}
.fh-flow strong{color:#102741}
@media(max-width:599px){.hero.hero-compact{padding:18px}.fh-queue{grid-template-columns:minmax(0,1fr)}.founder-metrics.fh-chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* rc11 installable app: install page, offline page, footer install link. */
.app-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.app-card{width:min(560px,100%);display:flex;flex-direction:column;gap:12px;text-align:start}
.app-card h1{margin:0;font-size:28px}.app-card h2{margin:8px 0 0;font-size:18px}
.app-card p{margin:0;font-size:16px;color:#2c4258}.app-card .caption{font-size:14px;color:#4f6275}
.app-icon{width:72px;height:72px;border-radius:18px;box-shadow:0 6px 20px #142b4522}
.app-choice{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}
.app-choice a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid #d5e0e9;background:#fff;color:#163652;text-decoration:none;font-size:14px;font-weight:600}
.app-choice a[aria-current="page"]{background:#081f36;border-color:#081f36;color:#fff}
.app-step{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8ef}
.app-step ol,.app-step ul{margin:0;padding-inline-start:20px;display:grid;gap:6px;font-size:16px}
.app-step .primary,.app-open{align-self:flex-start;min-height:48px;padding:12px 22px;font-size:16px;text-decoration:none;display:inline-flex;align-items:center;border-radius:12px}
.app-continue{font-size:14px}.app-continue a{color:#1f5e66;font-weight:600}
.app-lang{margin-top:6px}
/* rc11.3 monthly invoice form (founder). */
.monthly-invoice{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:16px;margin:12px 0;border:1px solid #e2e8ef;border-radius:14px;background:#f8fafc}.monthly-invoice h3{flex-basis:100%;margin:0;font-size:18px}.monthly-invoice .caption{flex-basis:100%;margin:0}.monthly-invoice button{min-height:44px}#monthly-result{flex-basis:100%;font-size:14px}#monthly-result table{width:100%;margin-top:8px}
/* rc11.2 invoice correction indicator, billing address and agreed prices in the customer portal. */
.customer-correction{display:inline-block;margin:4px 0;padding:2px 10px;border-radius:999px;background:#fdf3dc;color:#7a5200;font-size:12px;font-weight:700}
.customer-billing{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.customer-billing h3{margin:0 0 6px;font-size:16px}.customer-billing p,.customer-billing li{font-size:14px;margin:0}.customer-billing ul{margin:0;padding-inline-start:18px;display:grid;gap:4px}
/* rc11.1 one app KEMET ONE: start page with the three areas. */
.app-start{align-items:center;text-align:center}.app-start>p{text-align:center}
.app-logo{width:112px;height:112px;border-radius:50%;box-shadow:0 8px 24px #142b4524}
.app-areas{display:grid;gap:10px;width:100%;margin:8px 0}
.app-areas a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:14px 18px;border-radius:14px;border:1px solid #d5e0e9;background:#fff;color:#163652;text-decoration:none;text-align:start;box-shadow:0 2px 8px #142b4510}
.app-areas a strong{font-size:18px}.app-areas a span{font-size:14px;color:#4f6275}
.app-areas a:hover,.app-areas a:focus-visible{border-color:#081f36;box-shadow:0 4px 14px #142b4522}
.app-areas a.is-last{border-color:#c9a227;border-width:2px}
.k-install{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;margin-top:6px;color:#1f5e66;font-weight:600;font-size:14px}
#offline-retry{align-self:flex-start;min-height:48px;padding:12px 22px;font-size:16px}

/* Founder sign-in and customer visit directory */
.founder-signin{max-width:440px;padding:clamp(24px,5vw,44px);border:1px solid #dbe6ef;border-radius:24px;box-shadow:0 20px 64px #1027411c}
.founder-signin h1{font-size:clamp(24px,5vw,32px);letter-spacing:-.035em}
.founder-signin form{gap:16px}
.founder-signin input{min-height:46px;border-radius:12px}
.visit-directory{display:grid;gap:12px;margin-top:20px}
.visit-directory>label{font-weight:650}
.visit-directory>input{width:min(420px,100%);min-height:44px;padding:10px 14px;border:1px solid #d4e0ea;border-radius:12px}
.visit-customer{min-width:0;background:#fff;border:1px solid #dce7ee;border-radius:16px;overflow:hidden}
.visit-customer[hidden]{display:none}
.visit-customer>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;cursor:pointer;background:#f7fafc}
.visit-customer>summary:focus-visible,.visit-directory>input:focus-visible{outline:2px solid #1f6491;outline-offset:-2px}
.visit-customer>summary strong,.visit-customer>summary small{display:block}
.visit-customer>summary small{color:#475e70;margin-top:4px}
.visit-customer>summary::after{content:'+';font-size:20px;color:#235678}
.visit-customer[open]>summary::after{content:'−'}
.visit-count{margin-inline-start:auto;background:#e5eff7;color:#16466a;border-radius:999px;padding:5px 10px;white-space:nowrap}
.visit-customer .tablewrap{overflow:auto}
.visit-empty{padding:0 18px}

/* Shared visual treatment across the working KEMET portals. */
:root {
  --workspace-ground: #f3f6f8;
  --workspace-rule: #dce5ed;
  --workspace-ink: #102b43;
  --workspace-muted: #4f6275;
  --workspace-radius: 16px;
}
.k-main { background: var(--workspace-ground); color: var(--workspace-ink); }
:where(#stage-app,.k-main) :where(.panel,.customer-wrap article) {
  border-color: var(--workspace-rule);
  border-radius: var(--workspace-radius);
  box-shadow: 0 2px 8px #102b4308;
}
:where(#stage-app,.k-main) :where(h1,h2,h3) { line-height: 1.22; }
:where(#stage-app,.k-main) :where(.caption,.portal-top p) { color: var(--workspace-muted); line-height: 1.5; }
:where(#stage-app,.k-main) .panelhead { gap: 12px; align-items: baseline; }
:where(#stage-app,.k-main) .panelhead h2 { letter-spacing: -.018em; }
:where(#stage-app,.k-main) .tablewrap { border: 1px solid var(--workspace-rule); border-radius: 12px; }
:where(#stage-app,.k-main) .tablewrap th { background: #edf3f7; color: var(--workspace-ink); }
:where(#stage-app,.k-main) .tablewrap tbody tr:hover { background: #f6f9fb; }
:where(#stage-app,.k-main) .primary { border-radius: 10px; }
:where(#stage-app,.k-main) :where(.crm-actions,.portal-actions) { gap: 10px; }
:where(#stage-app,.k-main) .modal { border: 1px solid var(--workspace-rule); }
:where(#manual-invoice-root,#job-modal-root) .modal { width: min(600px,100%); }
#manual-invoice-root fieldset {
  min-width: 0; display: grid; gap: 12px; padding: 12px;
  border: 1px solid var(--workspace-rule); border-radius: 12px;
}
#manual-invoice-root [data-lines] { display: grid; gap: 12px; }
#manual-invoice-root [data-lines] fieldset { background: #f7fafc; }
#manual-invoice-root textarea { font: inherit; color: inherit; }
.visit-customer .tablewrap { border: 0; border-top: 1px solid var(--workspace-rule); border-radius: 0; }
@media (max-width: 480px) {
  :where(#stage-app,.k-main) .modal { padding: 18px; }
  .visit-customer > summary { padding: 14px; gap: 10px; }
  .visit-customer > summary strong { overflow-wrap: anywhere; }
}

/* Portal composition follows the shared brand, with a quiet frame around the active task. */
:where(#stage-app,.k-app) {
  --portal-gutter: clamp(16px, 3vw, 32px);
  --portal-ink: #102b43;
  --portal-line: #dce5ed;
  --portal-paper: #fff;
}
#stage-app .topline,
.k-app :where(.portal-top,.customer-heading,.emp-visit-head) {
  color: var(--portal-ink);
}
#stage-app .topline {
  margin-block: 0 22px;
  padding-block: 14px 18px;
  border-bottom: 1px solid var(--portal-line);
}
:where(#stage-app,.k-main) .panelhead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  column-gap: 12px;
  row-gap: 10px;
}
:where(#stage-app,.k-main) .panelhead .primary {
  margin-inline-start: auto;
  min-height: 44px;
}
:where(#stage-app,.k-main) .panelhead:has(.primary) {
  padding-block-end: 14px;
  border-bottom: 1px solid var(--portal-line);
}
:where(#stage-app,.k-main) .panelhead:has(.primary) .pill { order: 0; }
:where(#stage-app,.k-main) .panelhead:has(.primary) .primary { order: 1; }
:where(#stage-app,.k-main) :where(.site-card,.portal-card,.portal-job,.customer-shortcuts button) {
  border-color: var(--portal-line);
  border-radius: 12px;
}
:where(#stage-app,.k-main) :where(.site-card,.portal-job) {
  line-height: 1.45;
  padding: 14px;
}
.k-side .k-navlist .k-nav:where(:hover,[aria-current="page"]) { transition: background-color .15s ease; }
.visit-directory > input { background-color: var(--portal-paper); }
.visit-customer[open] > summary { background: #edf4f8; }
.visit-customer > summary > span:first-child { min-width: 0; }
.visit-customer .tablewrap td { vertical-align: top; }
@media (max-width: 480px) {
  #stage-app .topline { padding-block-start: 8px; margin-block-end: 16px; }
  :where(#stage-app,.k-main) .panelhead .primary { margin-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .k-side .k-navlist .k-nav { transition: none; }
}

/* Home screens prioritize the numbers or appointments needed for the next action. */
.fh-overview { align-items: start; }
.fh-overview > .fh-money { grid-column: 1 / -1; }
.fh-overview .fh-head { padding-block-end: 12px; border-bottom: 1px solid var(--workspace-rule); }
.fh-overview .fh-money-grid { margin-block-start: 14px; }
.fh-overview .fh-hero { background: #eaf2f7; border-color: #d0e0eb; }
.fh-overview .fh-hero-num { font-size: clamp(28px, 4vw, 46px); overflow-wrap: anywhere; }
.fh-overview :where(.fh-hero-num,.fh-tile strong,.fh-forecast strong,.fh-time strong,.fh-col-val) {
  font-variant-numeric: tabular-nums;
}
.fh-overview .fh-forecast {
  background: #f4f7f9;
  color: var(--workspace-ink);
  border: 1px solid var(--workspace-rule);
}
.fh-overview .fh-forecast-ico { background: #e5edf3; color: #315874; }
.fh-overview .fh-forecast :where(.tiny,small) { color: var(--workspace-muted); }
.fh-overview .fh-forecast strong { color: var(--workspace-ink); font-size: 23px; }
.fh-quality-wrap { margin-block: 16px 24px; }
.customer-hero { display: grid; gap: 8px; align-items: start; }
.customer-hero :where(h2,p) { margin: 0; }
.customer-hero .customer-action { justify-self: start; min-height: 44px; }
.customer-two .customer-item { gap: 12px; }
.customer-two .customer-item b { font-variant-numeric: tabular-nums; white-space: nowrap; }
#employee-dashboard .portal-job { margin-block-end: 8px; }
#employee-dashboard .portal-job:focus-visible { outline-offset: 2px; }
#manager-jobs .row { padding-block: 12px; border-block-end: 1px solid var(--workspace-rule); }
#manager-jobs .row:last-child { border-block-end: 0; }

.visit-hourly { display:grid; gap:4px; margin-block:8px; padding:9px 12px; border-radius:10px; background:#edf4f8; }
.visit-hourly small { color:#4f6275; }
.visit-delete { display:inline-grid; place-items:center; min-width:44px; color:#962821; }
.visit-delete:hover { background:#fff0ef; }
.visit-delete .k-ico { pointer-events:none; }
.ops-quick-actions { display:flex; flex-wrap:wrap; gap:10px; margin-block:12px; }
.customer-hero .customer-link { justify-self:start; color:inherit; min-height:44px; }
.modal [data-hourly-field][hidden] { display:none; }

.visit-duration { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }

.crm-onboard-site { display:grid; gap:10px; padding:12px; border:1px solid var(--workspace-rule); border-radius:12px; }
.crm-onboard-site summary { cursor:pointer; font-weight:600; }
.crm-onboard-site label { margin-block-start:10px; }
.modal .crm-invite-choice { display:flex; align-items:center; gap:10px; }
.modal .crm-invite-choice input { width:auto; }
#customer-password-form { margin-block:14px; max-width:460px; }
#customer-passkey-settings button { min-height:44px; }

.qa-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-block:16px; }
.qa-toolbar label { display:grid; gap:6px; min-width:min(220px,100%); }
.qa-card { padding:0; }
.qa-card summary { display:grid; gap:5px; padding:14px; cursor:pointer; }
.qa-card summary small { display:block; }
.qa-card[open] summary { background:#eef4f8; border-radius:10px 10px 0 0; }
.qa-card-body { padding:14px; display:grid; gap:12px; }
.qa-card-body textarea { width:100%; }


/* A visit shows its date and status first; editing controls stay with that visit. */
.visit-list { display:grid; gap:10px; padding:12px; background:#f3f7fa; }
.visit-card { min-width:0; padding:14px; border:1px solid #dce7ee; border-radius:14px; background:#fff; }
.visit-card-main { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:start; }
.visit-card-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; color:#1e567b; background:#eaf2f8; }
.visit-card-info { min-width:0; display:grid; gap:4px; }
.visit-card-info strong { color:#102b43; overflow-wrap:anywhere; }
.visit-card-info bdi { width:max-content; max-width:100%; color:#235678; font-size:14px; font-variant-numeric:tabular-nums; }
.visit-card-info small { color:#4f6275; overflow-wrap:anywhere; }
.visit-state { padding:5px 9px; border-radius:999px; background:#edf1f4; color:#3c5265; font-size:12px; font-weight:650; }
.visit-state.is-planned { background:#e7f2fa; color:#174c72; }
.visit-state.is-running { background:#f9eed9; color:#714c13; }
.visit-state.is-done { background:#e6f3eb; color:#215a3d; }
.visit-card > .pill { display:inline-block; margin-block-start:10px; }
.visit-card-actions { margin-block-start:10px; border-block-start:1px solid #edf2f6; }
.visit-card-actions > summary { width:fit-content; min-height:42px; display:flex; align-items:center; gap:7px; cursor:pointer; color:#1e567b; font-weight:650; }
.visit-card-actions > summary .k-ico,.visit-action-buttons .k-ico { width:16px; height:16px; }
.visit-card-actions[open] > summary { color:#102b43; }
.visit-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.visit-action-grid label { display:grid; gap:5px; }
.visit-action-buttons { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.visit-action-buttons button { display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border:1px solid #d2e0ea; background:#f8fafc; color:#153a56; }
.visit-action-buttons button:hover { background:#eaf2f8; }
.visit-action-buttons .visit-delete { color:#962821; }
.visit-card > .visit-hourly { margin-block-end:0; }
@media (max-width:480px) {
 .visit-list { padding:8px; }
 .visit-card { padding:11px; }
 .visit-card-main { gap:8px; }
 .visit-card-icon { width:32px; height:32px; border-radius:9px; }
 .visit-action-grid { grid-template-columns:minmax(0,1fr); }
}

.employee-hours-card,.employee-guide { margin-block:14px; }
.employee-hours-card .panelhead button { min-height:44px; }
.employee-digital-times,.employee-color-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.employee-digital-times > div,.employee-color-card { min-width:0; padding:12px; border:1px solid #dce5ed; border-radius:12px; background:#f4f8fb; }
.employee-digital-times strong { display:block; width:fit-content; margin-block-start:5px; font-size:clamp(20px,5vw,32px); font-variant-numeric:tabular-nums; color:#102b43; }
.employee-guide details { padding-block:10px; border-block-start:1px solid #dce5ed; }
.employee-guide summary { min-height:40px; cursor:pointer; font-weight:700; }
.employee-color-card { display:flex; align-items:start; gap:10px; }
.employee-color-card small { display:block; color:#4f6275; overflow-wrap:anywhere; }
.employee-swatch { flex:none; width:20px; height:20px; border-radius:6px; }
.employee-swatch.is-red { background:#b63137; }
.employee-swatch.is-blue { background:#286596; }
.employee-swatch.is-green { background:#2b7550; }
.employee-swatch.is-yellow { background:#e6b52b; border:1px solid #86640b; }
@media(max-width:440px) { .employee-color-grid { grid-template-columns:minmax(0,1fr); } }

.emp-schedule-group { margin-block:10px; border:1px solid #dce5ed; border-radius:14px; overflow:hidden; background:#fff; }
.emp-schedule-group > summary { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; background:#eef4f8; cursor:pointer; }
.emp-schedule-list { display:grid; }
#employee-dashboard .emp-schedule-job { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px 14px; align-items:center; border:0; border-radius:0; margin:0; padding:12px 14px; text-align:start; }
.emp-schedule-job + .emp-schedule-job { border-block-start:1px solid #dce5ed!important; }
.emp-schedule-job:hover { background:#f3f7fa; }
.emp-schedule-job small { display:block; color:#4f6275; margin-block-start:4px; overflow-wrap:anywhere; }
.emp-schedule-job bdi { color:#235678; font-variant-numeric:tabular-nums; }
@media(max-width:650px) {
 #employee-dashboard .emp-schedule-job { grid-template-columns:minmax(0,1fr) auto; }
 .emp-schedule-job > div { grid-column:1/-1; }
}

.kemet-view-history { display:flex; gap:8px; margin-block:0 12px; }
.kemet-view-history button { min-height:44px; padding:7px 12px; border:1px solid #dce5ed; border-radius:10px; background:#fff; color:#153a56; }
.kemet-view-history button:disabled { opacity:.5; }
.kemet-portal-slogan { font:600 clamp(16px,3vw,22px)/1.35 Georgia,serif; letter-spacing:-.01em; }
.customer-hero .kemet-portal-slogan { color:#f5d59a; }
.customer-checklist { margin-block-start:16px; border-block-start:1px solid #dce5ed; padding-block-start:12px; }
.customer-checklist summary { cursor:pointer; font-weight:700; margin-block-end:10px; }
.customer-checklist-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:8px; margin-block-end:8px; }
.customer-checklist-row label { display:flex; align-items:center; gap:8px; }
.customer-checklist-row label input { min-width:0; flex:1; }
.customer-request-item .customer-longtext { white-space:pre-wrap; }
.customer-stars { border:0; padding:0; margin:0; }
.customer-stars > div { display:flex; flex-wrap:wrap; gap:5px; }
.customer-stars label { position:relative; display:grid; place-items:center; min-width:44px; min-height:44px; cursor:pointer; }
.customer-stars input { position:absolute; opacity:0; }
.customer-stars span { font-size:27px; line-height:1; color:#5a6b79; }
.customer-stars label:has(input:checked) span { color:#8c5710; }
.customer-stars label:has(input:focus-visible) { outline:2px solid #8c5710; border-radius:6px; }
.customer-public-rating { display:flex; gap:8px; align-items:start; }

.employee-quick-tools { display:flex; gap:8px; flex-wrap:wrap; margin-block:12px; }
.employee-quick-tools button { min-height:44px; border:1px solid #dce5ed; border-radius:10px; padding:8px 12px; background:#f4f8fb; color:#153a56; font-weight:600; }

.customer-stars > div:has(label:nth-child(2) input:checked) label:nth-child(-n+2) span,
.customer-stars > div:has(label:nth-child(3) input:checked) label:nth-child(-n+3) span,
.customer-stars > div:has(label:nth-child(4) input:checked) label:nth-child(-n+4) span,
.customer-stars > div:has(label:nth-child(5) input:checked) label span { color:#8c5710; }

.customer-login-slogan,.customer-account-slogan { color:#80571b; }
.customer-account-slogan { margin-block:8px 14px; }
.visit-notes { white-space:pre-wrap; overflow-wrap:anywhere; color:#415a70; }

/* Touch layout: shared across Founder, Customer, Employee and Management. */
@media (max-width:1099px) {
  :where(#stage-app,.k-main) :where(.panel,.tablewrap,.modal,.customer-two,.crm-layout) { min-inline-size:0; }
  :where(#stage-app,.k-main) .tablewrap { max-inline-size:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
  :where(#stage-app,.k-main) :where(input:not([type=checkbox]):not([type=radio]),select,textarea),
  :where(.stage-login,#employee-form,#signin,#redeem) :where(input:not([type=checkbox]):not([type=radio]),select,textarea) {
    min-inline-size:0; max-inline-size:100%; font-size:16px;
  }
  :where(#stage-app,.k-main) :where(.visit-action-buttons button,.kemet-view-history button,.qa-toolbar select,.qa-toolbar input) { min-block-size:44px; }
  :where(#stage-app,.k-main) .modal-backdrop {
    padding: max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  }
  :where(#stage-app,.k-main) .modal {
    max-block-size:calc(100dvh - max(24px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));
    overscroll-behavior:contain;
  }
  :where(#stage-app,.k-main) :where(.visit-card-info,.visit-notes,.customer-item,.emp-schedule-job,.qa-card) { overflow-wrap:anywhere; }
}
@media (min-width:760px) and (max-width:1099px) {
  .fh-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fh-overview .fh-money-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.55fr); }
  .fh-overview :where(.fh-hero,.fh-tile) { padding:12px; }
  .fh-overview .fh-tile-ico { width:28px; height:28px; }
  .fh-overview .fh-tile strong { font-size:clamp(16px,2vw,22px); }
  .visit-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .visit-card:has(.visit-card-actions[open]) { grid-column:1/-1; }
}
@media (max-width:599px) {
  #stage-app .topline { padding-block-end:12px; }
  :where(#stage-app,.k-main) .panelhead { row-gap:8px; }
  .k-bottom { padding-inline:max(4px,env(safe-area-inset-left)) max(4px,env(safe-area-inset-right)); }
  .kemet-view-history button { flex:0 1 auto; }
  .visit-card-main { grid-template-columns:auto minmax(0,1fr); }
  .visit-card-main .visit-state { grid-column:2; justify-self:start; }
  .qa-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .qa-toolbar label { min-inline-size:0; }
  .employee-digital-times { gap:8px; }
  .employee-digital-times > div { padding:9px; }
  .customer-checklist-row input { inline-size:100%; }
}

@media (min-width:600px) and (max-width:1099px) {
  #stage-app .sidebar .k-lang-side,.k-side .k-lang-side { display:none; }
}

.k-lang select { min-height:44px; max-width:100%; padding-inline:12px; border:1px solid #c9d6e2; border-radius:10px; background:#fff; color:#0f4c7a; font:600 16px/1.3 system-ui,sans-serif; cursor:pointer; }
.k-lang select:focus-visible { outline:3px solid #dfa94f; outline-offset:2px; }
.k-lang-side select { background:#102b43; color:#fff; border-color:#55738c; }

.invoice-mobile-label { display:none; }
html[data-kemet-standalone] body { padding-block-start:env(safe-area-inset-top,0px); }
html[data-kemet-standalone] :where(.k-app,#stage-app) { min-height:100dvh; }
html[data-kemet-standalone] :where(.k-main,#stage-app .layout) {
  padding-inline-start:env(safe-area-inset-left,0px);
  padding-inline-end:env(safe-area-inset-right,0px);
}
@media(max-width:1099px){
 html[data-kemet-standalone] :where(.customer-wrap,.manager-wrap) { max-inline-size:100%; }
 html[data-kemet-standalone] .founder-invoice-list { border:0; overflow:visible; }
 html[data-kemet-standalone] .founder-invoice-list :where(table,tbody) { display:block; width:100%; min-width:0; }
 html[data-kemet-standalone] .founder-invoice-list thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 html[data-kemet-standalone] .founder-invoice-list tbody { display:grid; gap:10px; }
 html[data-kemet-standalone] .founder-invoice-list tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:12px; gap:8px 10px; border:1px solid #dce5ed; border-radius:12px; background:#fff; }
 html[data-kemet-standalone] .founder-invoice-list td { padding:0; border:0; min-width:0; overflow-wrap:anywhere; }
 html[data-kemet-standalone] .founder-invoice-list [data-invoice-number] { grid-column:1/-1; font-weight:700; color:#102b43; }
 html[data-kemet-standalone] .founder-invoice-list [data-invoice-client] { grid-column:1/-1; }
 html[data-kemet-standalone] .founder-invoice-list [data-invoice-actions] { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px; }
 html[data-kemet-standalone] .founder-invoice-list [data-invoice-actions] button { min-height:44px; border:1px solid #dce5ed; background:#f4f8fb; color:#153a56; padding-inline:10px; }
 html[data-kemet-standalone] .invoice-mobile-label { display:block; color:#4f6275; font-size:12px; }
 html[data-kemet-standalone] #monthly-invoice { padding:12px; }
}

/* Compact installed-app density. Keep input type large enough to avoid iOS focus zoom. */
@media (max-width:1099px) {
  html[data-kemet-standalone] {
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    --installed-inset:clamp(10px,2vw,20px);
    --installed-card:clamp(12px,1.8vw,18px);
    --installed-heading:clamp(19px,2.4vw,25px);
  }
  html[data-kemet-standalone] body { font-size:14px; line-height:1.45; }
  html[data-kemet-standalone] #stage-app main { padding-inline:var(--installed-inset); padding-block-start:12px; }
  html[data-kemet-standalone] :is(.customer-wrap,.manager-wrap) { padding-inline:var(--installed-inset); }
  html[data-kemet-standalone] :is(#title,.stage-login h1,.portal-top h1,.customer-heading h2,.emp-visit-head h2) {
    font-size:var(--installed-heading); line-height:1.18;
  }
  html[data-kemet-standalone] :is(.hero.hero-compact h2,.customer-hero h2) { font-size:clamp(20px,2.6vw,27px); line-height:1.2; }
  html[data-kemet-standalone] :is(.panelhead h2,.fh-head h2,.portal-top h2) { font-size:17px; line-height:1.25; }
  html[data-kemet-standalone] :is(.kemet-portal-slogan,.hero.hero-compact p,.customer-hero p) { font-size:14px; line-height:1.4; }
  html[data-kemet-standalone] :is(.panel,.fh-card,.hero.hero-compact,.customer-hero,.kemet-portal-intro,.employee-card,.monthly-invoice) {
    padding:var(--installed-card); border-radius:12px;
  }
  html[data-kemet-standalone] :is(.fh-grid,.customer-two,.founder-queue,.employee-digital-times,.employee-color-grid) { gap:10px; }
  html[data-kemet-standalone] :is(.fh-overview,.fh-quality-wrap,.employee-hours-card,.employee-guide) { margin-block:10px 14px; }
  html[data-kemet-standalone] :is(.fh-hero-num,.employee-digital-times strong) { font-size:clamp(22px,3.4vw,30px); }
  html[data-kemet-standalone] :is(.fh-tile strong,.fh-forecast strong,.customer-metrics strong) { font-size:clamp(17px,2.4vw,22px); }
  html[data-kemet-standalone] :is(.customer-metrics article,.visit-card,.customer-item,.qa-card-body) { padding:10px 12px; }
  html[data-kemet-standalone] :is(.visit-customer > summary,.qa-card > summary,.emp-schedule-group > summary) { padding:10px 12px; }
  html[data-kemet-standalone] #employee-dashboard .emp-schedule-job { padding:9px 12px; }
  html[data-kemet-standalone] :is(.k-bottom button,.k-mtop button,.visit-card-actions > summary,.visit-action-buttons button,.kemet-view-history button) { min-height:44px; }
  html[data-kemet-standalone] :is(.visit-card-info bdi,.customer-item,.emp-schedule-job,.tablewrap td) { font-size:13px; }
  html[data-kemet-standalone] :is(.modal,.customer-form,.employee-form,.stage-login) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px; }
}
@media (max-width:599px) {
  html[data-kemet-standalone] #stage-app .topline { margin-block-end:12px; padding-block:8px 10px; }
  html[data-kemet-standalone] .k-bottom button { min-height:48px; }
  html[data-kemet-standalone] body.k-has-bottom { padding-bottom:calc(62px + env(safe-area-inset-bottom)); }
  html[data-kemet-standalone] body.k-has-bottom.k-focus { padding-bottom:0; }
  html[data-kemet-standalone] .fh-col-track { height:66px; }
  html[data-kemet-standalone] .fh-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  html[data-kemet-standalone] .fh-tile { grid-template-columns:minmax(0,1fr); padding:8px; }
  html[data-kemet-standalone] .fh-tile-ico { display:none; }
  html[data-kemet-standalone] .fh-tile small { grid-column:auto; }
}

/* Installed phone shell: prioritize the working view over repeated headings. */
@media (max-width:599px) {
  html[data-kemet-standalone] #stage-app .layout > header {
    min-height:52px; height:auto; padding:4px 10px; gap:8px;
  }
  html[data-kemet-standalone] #stage-app .layout > header b { font-size:15px; line-height:1.2; }
  html[data-kemet-standalone] #stage-app .layout > header small { display:none; }
  html[data-kemet-standalone] #stage-app #menu { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:0; color:#153a56; }
  html[data-kemet-standalone] #stage-app #menu .k-ico { width:20px; height:20px; }
  html[data-kemet-standalone] #stage-app .topline { padding-block:2px 8px; }
  html[data-kemet-standalone] #stage-app .topline :is(.eyebrow,#subtitle) { display:none; }
  html[data-kemet-standalone] #stage-app .topline #title { margin:0; font-size:20px; }
  html[data-kemet-standalone] #stage-app .hero.hero-compact { padding:8px; border:0; background:#eaf1f6; box-shadow:none; }
  html[data-kemet-standalone] #stage-app .hero-compact > div:first-child { display:none; }
  html[data-kemet-standalone] #stage-app .hero-compact .hero-actions { display:flex; gap:6px; }
  html[data-kemet-standalone] #stage-app .hero-compact .hero-actions button {
    min-height:44px; padding:6px 9px; border:1px solid #cedde8; border-radius:8px; background:#fff; color:#173c59; font-size:12px; line-height:1.2;
  }
  html[data-kemet-standalone] #stage-app .hero-compact .hero-actions .primary { background:#153a56; border-color:#153a56; color:#fff; }
  html[data-kemet-standalone] :is(#stage-app .sidebar,.k-side) {
    width:min(270px,78vw); padding:12px 8px; height:100dvh; padding-block-start:max(12px,env(safe-area-inset-top));
  }
  html[data-kemet-standalone] :is(#stage-app .sidebar .brand,.k-side .k-brand) { gap:9px; padding:4px 8px 10px; margin-block-end:4px; }
  html[data-kemet-standalone] :is(#stage-app .sidebar .brand img,.k-side .k-brand img) { width:36px; height:36px; padding:4px; border-radius:9px; }
  html[data-kemet-standalone] :is(#stage-app .sidebar .brand strong,.k-side .k-brand b) { font-size:17px; }
  html[data-kemet-standalone] :is(#stage-app .sidebar .brand small,.k-side .k-brand small) { font-size:12px; }
  html[data-kemet-standalone] :is(#stage-app .sidebar .nav,.k-side .k-navlist .k-nav) {
    min-height:44px; padding:7px 9px; margin:0; gap:9px; font-size:14px; line-height:1.25;
  }
  html[data-kemet-standalone] .k-group { margin:12px 9px 3px; font-size:10px; }
  html[data-kemet-standalone] .k-bottom button { min-width:44px; min-height:46px; gap:2px; padding:4px 2px; font-size:10px; line-height:1.1; }
  html[data-kemet-standalone] .k-bottom button > .k-ico { width:18px; height:18px; }
  html[data-kemet-standalone] .k-bottom button > span:first-of-type { max-width:100%; text-align:center; overflow-wrap:normal; }
  html[data-kemet-standalone] .k-bottom .k-count { min-width:16px; height:16px; line-height:16px; font-size:10px; padding:0 3px; }
}

/* KEMET visual system — production UI, inspired by Stageshow craft. */
:root {
 --kemet-ink:#122e44; --kemet-muted:#526779; --kemet-border:#dce5eb;
 --kemet-canvas:#f3f6f8; --kemet-surface:#fff; --kemet-accent:#c3984e;
}
body { background:var(--kemet-canvas); color:var(--kemet-ink); -webkit-text-size-adjust:100%; text-size-adjust:100%; }
:where(#stage-app,.k-app) { font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif; line-height:1.5; }
:where(#stage-app,.k-app) :where(button,input,select,textarea) { font-family:inherit; }
:where(#stage-app,.k-app) :where(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #977024; outline-offset:3px; }
:where(#stage-app,.k-app) :where(button,summary,a) { -webkit-tap-highlight-color:transparent; }
:where(#stage-app,.k-app) :where(.panel,.customer-item,.employee-card,.qa-card,.visit-customer,.founder-workspace) {
 border-color:var(--kemet-border); border-radius:14px; box-shadow:0 2px 8px #122e4405;
}
:where(#stage-app,.k-app) :where(.panelhead,.fh-head) { gap:12px; }
:where(#stage-app,.k-app) :where(h1,h2,h3,h4) { letter-spacing:-.025em; line-height:1.25; }
:where(#stage-app,.k-app) :where(.metric strong,.fh-hero-num,.fh-tile strong,.employee-digital-times strong) { font-variant-numeric:tabular-nums; letter-spacing:-.035em; }
:where(#stage-app,.k-app) :where(.visit-action-buttons,.customer-invoice-actions,.hero-actions,.employee-quick-tools) { gap:8px; }
:where(#stage-app,.k-app) :where(.visit-action-buttons,.customer-invoice-actions,.employee-quick-tools) button {
 border:1px solid #cbd8e2; border-radius:9px; background:#f7fafc; color:#173d59; padding:8px 12px; min-height:44px; font-weight:600;
}
:where(#stage-app,.k-app) :where(.visit-card,.qa-evidence,.customer-request-item) { background:#fff; border-color:var(--kemet-border); }
:where(#stage-app,.k-app) :where(.visit-customer>summary,.emp-schedule-group>summary,.qa-card>summary) { background:#edf3f7; }
:where(#stage-app,.k-app) :where(th) { background:#edf3f7; color:#39556b; font-size:12px; font-weight:600; }
:where(#stage-app,.k-app) :where(td) { font-variant-numeric:tabular-nums; }
:where(#stage-app,.k-app) :where(tbody tr:hover) { background:#f8fafc; }
:where(#stage-app .sidebar,.k-side) { background:#092337; }
:where(#stage-app .sidebar .nav.active,.k-side .k-nav.active) { background:#213e53; color:#f0c77f; }
@media(min-width:1100px) {
 #stage-app main { padding:24px 30px; }
 #stage-app .layout>header { height:70px; padding-inline:30px; }
 #stage-app .topline { margin-block-end:20px; }
 #stage-app #title { font-size:28px; }
 :where(#stage-app,.k-app) :where(.panelhead h2,.fh-head h2) { font-size:19px; }
 :where(#stage-app,.k-app) :where(.hero.hero-compact) { padding:20px 24px; border-radius:16px; }
}
@media(max-width:1099px) {
 :where(#stage-app,.k-app) :where(.panelhead h2,.fh-head h2,.portal-top h2) { font-size:17px; }
 :where(#stage-app,.k-app) :where(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px; }
 :where(#stage-app,.k-app) :where(.modal,.customer-wrap,.manager-wrap,.panel) { min-width:0; }
 :where(#stage-app,.k-app) :where(.customer-metrics,.employee-digital-times) { gap:10px; }
}
@media(max-width:599px) {
 #stage-app main { padding:12px; }
 #stage-app .layout>header { min-height:56px; height:auto; padding:6px 12px; }
 #stage-app .layout>header b { font-size:16px; }
 #stage-app .layout>header small { display:none; }
 #stage-app #title { font-size:22px; }
 #stage-app .topline { margin-block-end:14px; }
 #stage-app .topline .eyebrow { font-size:10px; letter-spacing:.12em; }
 #stage-app .topline p { font-size:13px; }
 :where(#stage-app,.k-app) :where(.panel,.customer-hero,.employee-card) { padding:14px; border-radius:12px; }
 :where(#stage-app,.k-app) :where(.hero.hero-compact h2,.customer-hero h2) { font-size:22px; }
 :where(#stage-app,.k-app) :where(.hero.hero-compact p,.customer-hero p,.kemet-portal-slogan) { font-size:14px; }
 :where(#stage-app,.k-app) :where(.visit-action-buttons,.employee-quick-tools,.customer-invoice-actions) { display:flex; flex-wrap:wrap; }
 :where(#stage-app,.k-app) :where(.visit-action-buttons,.employee-quick-tools,.customer-invoice-actions) button { flex:0 1 auto; font-size:13px; }
 .k-bottom button { min-height:48px; font-size:11px; line-height:1.2; }
 .k-bottom button>.k-ico { width:20px; height:20px; }
 :where(#stage-app,.k-app) :where(.modal) { border-radius:16px; }
}
@media(prefers-reduced-motion:reduce) {
 :where(#stage-app,.k-app) *, :where(#stage-app,.k-app) *::before, :where(#stage-app,.k-app) *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Named navigation drawer. No icon-only tablet rail. */
body.k-nav-ready { --k-drawer-width:min(280px,82vw); }
body.k-nav-ready :is(#stage-app .sidebar,.k-side) {
 position:fixed; inset:0 auto 0 0; width:var(--k-drawer-width); height:100dvh; z-index:30;
 padding:16px 10px; overflow-y:auto; overflow-x:hidden; transform:translateX(-100%); visibility:hidden;
 transition:transform .2s ease,visibility .2s; background:#092337;
}
body.k-nav-ready :is(#stage-app .sidebar.open,.k-side.open) { transform:none; visibility:visible; box-shadow:10px 0 30px #09233726; }
body.k-nav-ready :is(.sidebar .k-label,.k-side .k-label) { position:static; width:auto; height:auto; overflow:visible; clip:auto; white-space:normal; flex:1; }
body.k-nav-ready :is(#stage-app .sidebar .nav,.k-side .k-navlist .k-nav) { justify-content:flex-start; text-align:start; gap:10px; min-height:44px; padding:9px 12px; font-size:14px; line-height:1.35; }
body.k-nav-ready :is(#stage-app .sidebar .brand,.k-brand) { justify-content:flex-start; gap:10px; padding:4px 10px 16px; }
body.k-nav-ready :is(#stage-app .sidebar .brand div,.k-brand div,.k-group,#stage-app .sidebar .sidefoot) { display:block; }
body.k-nav-ready .k-group { font-size:10px; margin:16px 12px 5px; }
body.k-nav-ready :is(.sidebar .brand img,.k-brand img) { width:38px; height:38px; }
body.k-nav-ready .sidebar .brand strong { font-size:21px; }
body.k-nav-ready .k-lang-side { display:block!important; margin-block-start:16px; }
body.k-nav-ready :is(#stage-app .layout,.k-main) { width:100%; margin-inline-start:0; }
.k-drawer-handle { position:fixed; inset-inline-start:0; top:calc(104px + env(safe-area-inset-top,0px)); z-index:31; width:28px; height:48px; border:1px solid #c9d7e1; border-inline-start:0; border-radius:0 10px 10px 0; background:#fff; color:#173d59; box-shadow:2px 2px 8px #09233712; cursor:pointer; display:grid; place-items:center; padding:0; touch-action:manipulation; }
.k-drawer-handle span { font:26px/1 system-ui; }
body.k-nav-open .k-drawer-handle { inset-inline-start:var(--k-drawer-width); }
@media(min-width:1100px) {
 body.k-nav-ready.k-nav-open :is(#stage-app .layout,.k-main) { margin-inline-start:var(--k-drawer-width); width:calc(100% - var(--k-drawer-width)); }
}
@media(max-width:1099px) {
 body.k-nav-ready.k-nav-open .k-scrim { display:block; position:fixed; inset:0; z-index:29; background:#09233766; }
 body.k-nav-ready.k-nav-open { overflow:hidden; }
}
[dir=rtl] body.k-nav-ready :is(#stage-app .sidebar,.k-side) { inset:0 0 0 auto; transform:translateX(100%); }
[dir=rtl] body.k-nav-ready :is(#stage-app .sidebar.open,.k-side.open) { transform:none; }
[dir=rtl] .k-drawer-handle { border-radius:10px 0 0 10px; }
[dir=rtl] .k-drawer-handle span { transform:scaleX(-1); }
@media(prefers-reduced-motion:reduce) { body.k-nav-ready :is(#stage-app .sidebar,.k-side) { transition:none; } }

/* Interior portal controls share the same spacing and visual hierarchy. */
:where(#stage-app,.k-app) :where(.panel,.modal,.customer-form,.employee-form) :where(button:not(.primary):not(.danger):not(.nav):not(.k-nav):not([data-k-menu])) {
 min-height:44px; padding:8px 12px; border:1px solid #cfdae3; border-radius:9px; background:#f7fafc; color:#173d59; cursor:pointer; line-height:1.35;
}
:where(#stage-app,.k-app) :where(.panel,.modal) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea) {
 max-width:100%; min-width:0; min-height:44px; border:1px solid #cbd8e2; border-radius:9px; padding:10px 12px; background:#fff; color:#17364e; line-height:1.4;
}
:where(#stage-app,.k-app) :where(.panel,.modal) textarea { min-height:100px; resize:vertical; }
:where(#stage-app,.k-app) :where(.panel,.modal) :where(button:disabled) { cursor:default; opacity:.55; }
:where(#stage-app,.k-app) :where(.panel,.modal) :where(label) { line-height:1.45; }
@media(max-width:599px) {
 :where(#stage-app,.k-app) :where(.panelhead) { flex-wrap:wrap; }
 :where(#stage-app,.k-app) :where(.customer-shortcuts) { gap:8px; }
}

.k-global-history { display:flex; gap:4px; margin-inline-start:auto; align-items:center; flex:none; }
.k-global-history button { width:36px; min-height:44px; padding:0; border:1px solid #dce5eb; border-radius:9px; background:#f6f9fb; color:#173d59; cursor:pointer; }
.k-global-history button span { font:21px/1 system-ui; }
.k-global-history button:disabled { opacity:.35; cursor:default; }
.k-confirm-dialog { position:fixed; inset:0; margin:auto; width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; border:1px solid #dce5eb; border-radius:20px; padding:24px; background:#fff; color:#17364e; box-shadow:0 24px 80px #09233738; }
.k-confirm-dialog::backdrop { background:#09233780; }
.k-confirm-dialog h2 { margin:14px 0 8px; font:700 22px/1.25 system-ui; letter-spacing:-.025em; }
.k-confirm-dialog p { font:14px/1.6 system-ui; color:#526779; margin:0; }
.k-confirm-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:#fff0ed; color:#ad3025; }
.k-confirm-mark .k-ico { width:22px; height:22px; }
.k-confirm-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-block-start:24px; }
.k-confirm-actions button { min-height:44px; padding:10px 16px; border:1px solid #ccd9e2; border-radius:10px; font:600 14px/1.3 system-ui; cursor:pointer; background:#fff; color:#17364e; }
.k-confirm-actions [data-confirm] { background:#ad3025; border-color:#ad3025; color:#fff; }
.k-confirm-dialog button:focus-visible { outline:3px solid #c3984e; outline-offset:3px; }
#visit-action-message:not([hidden]) { background:#fff3ed; border:1px solid #eac4b1; color:#84371d; padding:12px 14px; border-radius:10px; }
@media(max-width:599px) {
 .k-global-history { gap:2px; }
 .k-global-history button { width:30px; }
 .k-mtop b { font-size:13px; }
 .k-mtop { gap:6px; }
 .k-mtop img { display:none; }
 #stage-app .layout>header .status { display:none; }
 #stage-app .layout>header b { font-size:13px; }
 .k-confirm-dialog { padding:20px; }
}
.k-global-history .k-ico { width:18px; height:18px; vertical-align:middle; }
[dir=rtl] .k-global-history :is([data-k-history=back],[data-k-history=forward]) .k-ico { transform:scaleX(-1); }
