:root{--color-bg:#f4f7fb;--color-surface:#fff;--color-surface-2:#f8fafc;--color-text:#172033;--color-muted:#667085;--color-line:#d9e0ec;--color-primary:#1f6feb;--color-primary-700:#1557c0;--color-success:#067647;--color-warning:#b54708;--color-danger:#b42318;--color-info:#175cd3;--sidebar:#101828;--sidebar-soft:#1d2939;--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow-md:0 12px 34px rgba(16,24,40,.08);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--sidebar-width:280px;--focus-ring:0 0 0 4px rgba(31,111,235,.18)}
*{box-sizing:border-box}
html{min-height:100%;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100%;background:radial-gradient(circle at top left,rgba(31,111,235,.08),transparent 32rem),var(--color-bg);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}
a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}:focus-visible{outline:0;box-shadow:var(--focus-ring)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.app-sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:linear-gradient(180deg,var(--sidebar) 0%,#111f36 100%);color:#fff;padding:var(--space-6);box-shadow:12px 0 32px rgba(16,24,40,.08);z-index:40}
.sidebar-brand{align-items:center;color:#fff;display:flex;gap:var(--space-3);min-height:48px;text-decoration:none}
.sidebar-brand:hover{text-decoration:none}
.sidebar-brand__logo{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:14px;background:rgba(255,255,255,.08);font-weight:900}.brand-logo{max-width:132px;max-height:44px;object-fit:contain}
.sidebar-brand__text{display:grid}
.sidebar-brand__title{font-size:18px;font-weight:900;letter-spacing:-.03em}
.sidebar-brand__subtitle{color:#a8b3c7;font-size:12px}
.sidebar-nav{display:grid;gap:var(--space-5);margin-top:var(--space-7)}.sidebar-section{display:grid;gap:6px}.sidebar-section__label{color:#98a2b3;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:0 10px}.sidebar-link{align-items:center;border-radius:var(--radius-md);color:#dbe4f3;display:flex;gap:10px;padding:10px 12px;text-decoration:none;transition:background .18s ease,color .18s ease,transform .18s ease}.sidebar-link:hover,.sidebar-link.is-active{background:var(--sidebar-soft);color:#fff;text-decoration:none}.sidebar-link:hover{transform:translateX(2px)}.sidebar-link__icon{width:22px;text-align:center}.sidebar-link__badge{margin-left:auto}.sidebar-subnav{display:grid;margin-left:32px}.mobile-sidebar-backdrop{display:none}
.app-main{min-width:0}
.app-topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;padding:16px 28px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--color-line);backdrop-filter:blur(12px)}.topbar-start,.topbar-end,.topbar-user{display:flex;align-items:center;gap:var(--space-3)}.topbar-title__eyebrow{color:var(--color-muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.topbar-title__text{font-size:17px;font-weight:850}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#eef4ff;color:var(--color-primary);font-weight:900}
.app-content{padding:28px}
.page-header{display:flex;justify-content:space-between;gap:var(--space-4);align-items:flex-end;margin-bottom:var(--space-5)}
.page-header__title{font-size:32px;line-height:1.15;margin:4px 0;letter-spacing:-.04em}
.page-header__description{color:var(--color-muted);max-width:820px;margin:0}
.page-header__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.breadcrumbs{display:flex;gap:8px;align-items:center;color:var(--color-muted);font-size:13px;margin-bottom:6px}
.card,.kpi-card{background:rgba(255,255,255,.96);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:18px}
.card{padding:0}
.card__header,.card__footer{padding:18px 22px;border-bottom:1px solid var(--color-line);display:flex;justify-content:space-between;gap:var(--space-4);align-items:center}
.card__footer{border-bottom:0;border-top:1px solid var(--color-line)}
.card__body{padding:22px}
.card__title,.card h1,.card h2{margin:0;letter-spacing:-.03em}
.card__subtitle,.muted{color:var(--color-muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.kpi-card{padding:20px}.kpi-card__top{display:flex;justify-content:space-between}.kpi-card__label{color:var(--color-muted);font-weight:750}.kpi-card__value{display:block;font-size:30px;font-weight:900;margin-top:8px}.kpi-card__meta{color:var(--color-muted);font-size:13px}
.btn,button,.button{align-items:center;background:linear-gradient(180deg,var(--color-primary),var(--color-primary-700));border:1px solid transparent;border-radius:var(--radius-md);box-shadow:0 10px 20px rgba(31,111,235,.18);color:#fff;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;padding:10px 15px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover,button:hover,.button:hover{box-shadow:0 14px 26px rgba(31,111,235,.18);transform:translateY(-1px);text-decoration:none}
.btn:disabled,button:disabled{cursor:not-allowed;opacity:.65;transform:none}
.btn--secondary,.secondary{background:#fff!important;color:var(--color-text)!important;border-color:var(--color-line)!important;box-shadow:var(--shadow-sm)!important}
.btn--success{background:linear-gradient(180deg,#079455,#067647)}
.btn--danger,.danger{background:linear-gradient(180deg,#d92d20,#b42318)!important;color:#fff!important}
.btn--ghost{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--color-text)!important}
.btn--icon{width:40px;height:40px;padding:0}
.btn--sm{font-size:13px;padding:7px 10px}
.btn--lg{font-size:17px;padding:13px 18px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.form-grid__actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;margin-top:4px}
/* Scanner-first execute screens (picking/packing): a prominent instruction card
   and large, touch/scanner-friendly inputs so operators can work handheld. */
.scanner-card .scanner-target{border:1px solid var(--color-line);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:16px;background:var(--color-surface-muted,#f6f7f9)}
.scanner-card .scanner-target h2{margin:0 0 8px;font-size:15px}
.scanner-form input{font-size:17px;padding:13px 14px}
.scanner-form input[readonly]{background:#f2f4f7;color:var(--color-muted)}.form-group,label{display:grid;gap:6px;font-weight:700;margin-bottom:12px}.form-label{font-weight:800}.form-label__required{color:var(--color-danger)}.form-control,.form-select,.form-textarea,input,select,textarea{width:100%;border:1px solid var(--color-line);border-radius:var(--radius-md);background:#fff;color:var(--color-text);padding:10px 12px;transition:border-color .18s ease,box-shadow .18s ease}.form-control:focus,.form-select:focus,.form-textarea:focus,input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:0}.form-help{color:var(--color-muted);font-size:13px}.form-error{color:var(--color-danger);font-size:13px}.has-error input,.has-error select,.has-error textarea{border-color:var(--color-danger)}.form-section{border-top:1px solid var(--color-line);padding-top:var(--space-5)}.form-section__title{font-weight:900}.form-section__description{color:var(--color-muted)}.choice{display:flex;align-items:center}.choice input{width:auto}
.table-shell{border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;background:#fff;margin-top:var(--space-4)}.table-toolbar,.filter-bar{display:flex;justify-content:space-between;gap:var(--space-3);align-items:end;flex-wrap:wrap;margin:16px 0}.table-toolbar__filters{display:flex;gap:var(--space-2);flex:1;flex-wrap:wrap}.table-toolbar__filters>*{min-width:190px;max-width:280px}.table-toolbar__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.table-responsive,.table-wrap{overflow:auto}.data-table,table{width:100%;border-collapse:collapse}.data-table{min-width:760px}.data-table th,.data-table td,th,td{border-bottom:1px solid var(--color-line);padding:11px 12px;text-align:left;vertical-align:top}.data-table th{background:var(--color-surface-2);color:#344054;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.data-table th a{color:#344054}.data-table tbody tr:hover{background:#f8fbff}.cell-muted{color:var(--color-muted)}.cell-actions,.actions{display:flex;gap:8px;flex-wrap:wrap}.table-empty,.empty-state,.empty{border:1px dashed var(--color-line);border-radius:var(--radius-lg);color:var(--color-muted);padding:28px;text-align:center;background:#fff}.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.pagination a,.pagination strong{border:1px solid var(--color-line);border-radius:10px;padding:7px 11px;text-decoration:none;background:#fff}.pagination strong{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.badge{display:inline-flex;align-items:center;border-radius:999px;font-size:12px;font-weight:850;line-height:1;padding:5px 9px;background:#eef4ff;color:var(--color-info)}
.badge--neutral{background:#f2f4f7;color:#344054}
.badge--primary,.badge--processing{background:#eef4ff;color:#175cd3}
.badge--success,.badge--completed,.badge--active{background:#ecfdf3;color:#067647}
.badge--warning,.badge--pending,.badge--draft{background:#fffaeb;color:#b54708}
.badge--danger,.badge--failed,.badge--cancelled{background:#fff1f3;color:#b42318}
.badge--info{background:#eff8ff;color:#175cd3}.muted-badge{background:#f2f4f7;color:#344054}
.alert,.notice,.error{border-radius:var(--radius-md);padding:12px 14px;margin:12px 0;border:1px solid}
.alert__title{font-weight:900}
.alert__text{font-weight:650}
.alert--success,.notice{background:#ecfdf3;border-color:#abefc6;color:#067647}
.alert--warning{background:#fffaeb;border-color:#fedf89;color:#b54708}
.alert--danger,.error{background:#fff1f3;border-color:#fecdd3;color:#b42318}
.alert--info{background:#eff8ff;border-color:#b2ddff;color:#175cd3}
.auth-page,.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);background:radial-gradient(circle at 20% 20%,rgba(31,111,235,.16),transparent 35rem),var(--color-bg)}.auth-visual{display:grid;place-items:center;padding:48px}.auth-panel{display:grid;place-items:center;padding:24px;background:rgba(255,255,255,.7);backdrop-filter:blur(10px)}.auth-card,.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--color-line);border-radius:24px;box-shadow:var(--shadow-md);padding:28px}.auth-card__header{margin-bottom:18px}.auth-card__title{font-size:30px;margin:0;letter-spacing:-.04em}.auth-card__description{color:var(--color-muted)}.login-brand-link{color:var(--color-text)}
.stock-indicator{font-weight:900}
.stock-indicator--available{color:var(--color-success)}
.stock-indicator--low{color:var(--color-warning)}
.stock-indicator--out{color:var(--color-danger)}.location-code,.sku-code,.document-code,code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#f2f4f7;border-radius:6px;padding:2px 5px}
.workflow{display:flex;gap:14px;flex-wrap:wrap}
.workflow-step{display:flex;gap:6px;align-items:center;color:var(--color-muted)}
.workflow-step__dot{width:10px;height:10px;border-radius:999px;background:var(--color-line)}
.workflow-step.is-complete .workflow-step__dot{background:var(--color-success)}
.workflow-step.is-current .workflow-step__dot{background:var(--color-primary)}
.modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.55);display:none;z-index:60}
.modal-backdrop.is-open{display:grid;place-items:center}.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:560px;width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto}.modal__header,.modal__body,.modal__footer{padding:18px 22px}.modal__header,.modal__footer{border-bottom:1px solid var(--color-line)}.modal__footer{border-bottom:0;border-top:1px solid var(--color-line);display:flex;justify-content:flex-end;gap:8px}
.stats-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.detail-row pre{background:#101828;color:#d0d5dd;border-radius:12px;overflow:auto;padding:16px;white-space:pre-wrap}.create-panel{border:1px solid var(--color-line);border-radius:14px;margin:14px 0;padding:12px}.metric span{color:var(--color-muted);display:block;font-size:13px;font-weight:700}.metric strong{display:block;font-size:28px;margin-top:8px}dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px}dt{font-weight:900}dd{margin:0;color:var(--color-muted)}
@media(max-width:1024px){.app-shell{grid-template-columns:1fr}
.app-sidebar{position:fixed;left:0;top:0;bottom:0;width:min(var(--sidebar-width),86vw);transform:translateX(-104%);transition:transform .2s ease}.sidebar-open .app-sidebar{transform:translateX(0)}.mobile-sidebar-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:35}.sidebar-open .mobile-sidebar-backdrop{display:block}
.app-topbar{align-items:flex-start}.topbar-end{display:none}}
@media(max-width:760px){.app-content{padding:18px}
.page-header{display:block}
.page-header__title{font-size:26px}
.auth-page,.login-page{grid-template-columns:1fr}.auth-visual{display:none}.table-toolbar,.filter-bar{display:grid;grid-template-columns:1fr}.table-toolbar__filters>*{max-width:none}
.form-grid{grid-template-columns:1fr}
.card__header,.card__footer{display:block}
.btn,.button,button{width:100%}.cell-actions .btn{width:auto}.data-table{min-width:720px}}
@media print{body{background:#fff}
.app-sidebar,.app-topbar,.mobile-sidebar-backdrop,.page-header__actions,.table-toolbar,.filter-bar,.pagination,.btn,.button,button{display:none!important}
.app-shell{display:block}
.app-content{padding:0}
.card{box-shadow:none;border-color:#ddd;break-inside:avoid}.data-table{min-width:0}}

/* Timologisi-inspired login shell */
.timologisi-login-page{grid-template-columns:minmax(0,2fr) minmax(380px,1fr);background:#edf2f5;color:#21344f}
.timologisi-login-visual{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#10bad1 0%,#24aea6 100%);color:#fff;text-align:center;padding:48px}
.login-orb{position:absolute;border-radius:999px;background:rgba(255,255,255,.08);pointer-events:none}.login-orb--top{width:260px;height:260px;top:-90px;left:-60px}.login-orb--middle{width:140px;height:140px;left:10%;top:40%}.login-orb--bottom{width:230px;height:230px;right:-80px;bottom:-70px}.timologisi-login-visual__content{position:relative;z-index:1;display:grid;justify-items:center;gap:12px;max-width:520px}.timologisi-wordmark{display:flex;align-items:center;gap:12px;font-size:46px;font-weight:800;letter-spacing:-.04em;line-height:1}.timologisi-wordmark__cloud{font-size:54px;line-height:.7;text-shadow:0 3px 12px rgba(0,0,0,.12)}.timologisi-login-visual__tagline{margin:22px 0 0;font-size:18px;font-weight:700}.timologisi-login-visual__text{max-width:390px;margin:0;color:rgba(255,255,255,.78);font-size:14px;line-height:1.65}.timologisi-login-visual__partner-logo{position:absolute;z-index:1;left:50%;bottom:32px;transform:translateX(-50%);max-width:170px;max-height:74px;object-fit:contain}
.timologisi-login-panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#edf2f5;padding:40px 34px}.language-switch{position:absolute;top:22px;right:22px;display:flex;gap:8px}.language-switch__button{width:34px;height:34px;border:1px solid #dbe3ec;border-radius:999px;background:#f8fbfd;color:#61708a;box-shadow:0 2px 8px rgba(33,52,79,.08);font-size:12px;font-weight:800;padding:0}.language-switch__button.is-active{transform:scale(1.08);background:#fff;color:#16243a}.timologisi-login-card{width:min(420px,100%);background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}.timologisi-login-card__header{text-align:center;margin-bottom:34px}.timologisi-login-card__title{margin:0;color:#21344f;font-size:28px;font-weight:300;letter-spacing:.18em}.timologisi-login-card__subtitle{margin:8px 0 0;color:#0fb7b0;font-size:15px}.timologisi-login-form .form-group{gap:7px;margin-bottom:20px}.timologisi-login-form .form-label{color:#34466a;font-size:13px;font-weight:500}.timologisi-login-form .form-control{height:52px;border-color:#ccd7e3;border-radius:6px;background:#f9fbfd;color:#172033;padding:14px 15px;box-shadow:none}.timologisi-login-form .form-control:focus{border-color:#13b8c7;box-shadow:0 0 0 4px rgba(19,184,199,.12)}.password-input-wrap{position:relative;display:block}.password-input-wrap .form-control{padding-right:46px}.password-toggle-icon{position:absolute;right:12px;top:50%;width:28px;height:28px;transform:translateY(-50%);border:0;background:transparent!important;color:#8ea0bb!important;box-shadow:none!important;padding:0;font-size:13px}.remember-choice{display:flex;grid-template-columns:none;align-items:center;gap:10px;margin:4px 0 24px;color:#42526e;font-size:14px;font-weight:400}.remember-choice input{width:18px;height:18px;margin:0;accent-color:#13b8c7}.timologisi-login-button{width:100%;min-height:56px;border:0;border-radius:6px;background:linear-gradient(135deg,#11bfe0,#24aaa5)!important;box-shadow:0 10px 22px rgba(17,191,224,.28);font-size:16px;font-weight:800}.timologisi-login-link{text-align:center;margin:19px 0 0}.timologisi-login-link a{color:#94a3bd;font-size:14px}.timologisi-login-link--admin{margin-top:14px}.timologisi-login-link--admin a{color:#10aaa5;font-weight:700}.tenant-selection h2{font-size:22px;text-align:center}.timologisi-login-footer{width:min(420px,100%);display:flex;justify-content:space-between;gap:16px;margin-top:auto;padding-top:16px;border-top:1px solid #dce4ec;color:#52627d;font-size:14px}.timologisi-login-footer a{color:#52627d;font-weight:700}
@media(max-width:900px){.timologisi-login-page{grid-template-columns:1fr}.timologisi-login-visual{min-height:260px}.timologisi-login-panel{min-height:auto}.timologisi-login-visual__partner-logo{position:relative;left:auto;bottom:auto;transform:none;margin-top:34px}.timologisi-wordmark{font-size:36px}.timologisi-wordmark__cloud{font-size:42px}.timologisi-login-footer{margin-top:40px}}
@media(max-width:760px){.timologisi-login-page .auth-visual{display:flex}.timologisi-login-visual{padding:34px 20px}.timologisi-login-panel{padding:72px 20px 24px}.timologisi-login-footer{font-size:13px}.language-switch{top:18px;right:18px}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* CL3 login content refinements */
.cl3-wordmark{gap:14px;color:#172033}.cl3-wordmark__logo{width:132px;max-height:44px;object-fit:contain}.cl3-wordmark__text{font-size:34px;font-weight:900;letter-spacing:-.04em}.timologisi-login-visual{background:radial-gradient(circle at 28% 16%,rgba(31,111,235,.18),transparent 18rem),linear-gradient(110deg,#eef5ff 0%,#f8fbff 55%,#fff 100%);color:#172033}.timologisi-login-visual__text{color:#263650}.timologisi-login-visual__tagline{color:#172033}.login-orb{background:rgba(31,111,235,.055)}.timologisi-login-visual__partner-logo{max-width:210px;min-height:40px}.language-switch__button{background:#1f65d8;color:#fff;border-color:#1f65d8;box-shadow:0 10px 22px rgba(31,101,216,.22)}.language-switch__button.is-active{background:#1f65d8;color:#fff;transform:none}.timologisi-login-button{width:auto;min-width:118px;background:linear-gradient(180deg,#1f6feb,#1557c0)!important;box-shadow:0 10px 22px rgba(31,111,235,.24)}.password-toggle-icon,.password-toggle-icon:hover,.password-toggle-icon:focus{position:absolute!important;right:12px!important;top:50%!important;display:grid!important;place-items:center!important;width:28px!important;height:28px!important;min-height:0!important;transform:translateY(-50%)!important;border:0!important;background:transparent!important;color:#8ea0bb!important;box-shadow:none!important;padding:0!important;margin:0!important}.remember-choice{display:flex!important;align-items:center!important}.remember-choice input{flex:0 0 auto}.timologisi-login-link{text-align:left}.timologisi-login-card{background:#fff;border:1px solid #d9e3f0;border-radius:24px;box-shadow:0 24px 60px rgba(16,24,40,.10);padding:28px}.timologisi-login-footer{margin-top:28px}@media(max-width:900px){.timologisi-login-card{padding:24px}.cl3-wordmark{display:grid}.cl3-wordmark__text{font-size:28px}.timologisi-login-button{width:100%}}

/* Requested login cleanup: Greek-only, no date field, reduced logos */
.timologisi-login-panel{padding-top:34px}.cl3-wordmark{display:grid;justify-items:center;gap:10px}.cl3-wordmark__logo{width:clamp(120px,18vw,240px)!important;max-height:96px!important;object-fit:contain!important}.cl3-wordmark__text{font-size:clamp(18px,2.2vw,28px)!important}.timologisi-login-visual__partner-logo{width:clamp(110px,12vw,170px)!important;max-height:60px!important;object-fit:contain!important}.password-toggle-icon,.password-toggle-icon:hover,.password-toggle-icon:focus{font-size:15px!important;line-height:1!important;border-radius:999px!important}.password-toggle-icon span{display:block;line-height:1}.timologisi-login-card__header{margin-bottom:24px}.timologisi-login-form .form-group{margin-bottom:18px}.timologisi-login-button{min-height:46px;padding:10px 18px!important}

/* Platform Admin production dashboard refinements */
.grid--two{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.card--warning{border-color:#fedf89;background:#fffcf5}
.metric small{display:block;margin-top:6px;font-size:12px}.metric strong{line-height:1.1}
.badge--trial,.badge--past_due,.badge--past-due{background:#fffaeb;color:#b54708}
.badge--suspended,.badge--archived,.badge--unavailable{background:#f2f4f7;color:#475467}
.badge--inactive{background:#f2f4f7;color:#475467}
.badge--ended{background:#f2f4f7;color:#475467}
.filter-bar label{min-width:220px}.filter-bar .actions{align-items:end}
.app-sidebar{background:linear-gradient(180deg,#071526 0%,#0b1f3a 54%,#101828 100%)}
.sidebar-link.is-active{background:linear-gradient(90deg,rgba(31,111,235,.32),rgba(6,182,212,.18));box-shadow:inset 3px 0 0 #06b6d4}

/* Design tokens */
:root{--platform-navy:#101828;--platform-navy-2:#172033;--platform-blue:#1f6feb;--platform-blue-dark:#1557c0;--platform-cyan:#38b6ff;--platform-bg:#f4f7fb;--platform-surface:#fff;--platform-surface-soft:#f8fafc;--platform-border:#d9e0ec;--platform-text:#172033;--platform-muted:#667085;--platform-success:#067647;--platform-warning:#b54708;--platform-danger:#b42318;--platform-info:#175cd3;--platform-radius:16px;--platform-shadow:0 18px 45px rgba(16,24,40,.08)}
/* Base */
body{background:var(--platform-bg);color:var(--platform-text)}
/* Layout */
.app-shell,.platform-shell{min-height:100vh}.app-main{background:var(--platform-bg)}.app-content{max-width:1500px}.platform-page{display:grid;gap:24px}.platform-dashboard{display:grid;gap:24px}.platform-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.platform-detail-layout{display:grid;grid-template-columns:2fr 1fr;gap:20px}
/* Sidebar */
.app-sidebar{background:linear-gradient(180deg,var(--platform-navy),var(--platform-navy-2));color:#eaf2ff}.sidebar-section__label{color:#98a2b3;text-transform:uppercase;letter-spacing:.08em}.sidebar-link{border-radius:12px}.sidebar-link.is-active{background:rgba(56,182,255,.16);color:#fff;box-shadow:inset 3px 0 0 var(--platform-cyan)}
/* Topbar */
.app-topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--platform-border)}.topbar-title__eyebrow{color:var(--platform-muted)}.topbar-search input{min-width:260px;border-radius:999px;background:#f8fafc}.topbar-alert{display:inline-flex;align-items:center;gap:6px;border:1px solid #fedf89;background:#fffaeb;color:var(--platform-warning);border-radius:999px;padding:7px 10px;font-weight:800;font-size:13px;text-decoration:none}.topbar-alert:hover{text-decoration:none;background:#fff7ed}
/* Page header */
.page-header,.platform-page-header{background:linear-gradient(135deg,#fff,#f8fbff);border:1px solid var(--platform-border);border-radius:var(--platform-radius);box-shadow:var(--platform-shadow);padding:24px}.page-header__title{color:var(--platform-navy)}.page-header__description{max-width:850px;color:var(--platform-muted)}.platform-action-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
/* Cards */
.card{border:1px solid var(--platform-border);border-radius:var(--platform-radius);box-shadow:0 8px 24px rgba(16,24,40,.05);background:var(--platform-surface)}.card__header{border-bottom:1px solid var(--platform-border);padding:16px 18px}.card__body{padding:18px}.card--warning{border-color:#fedf89}
/* Metrics */
.platform-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin:18px 0}.platform-metric{position:relative;display:flex;gap:14px;padding:18px}.platform-metric strong{display:block;font-size:28px;color:var(--platform-navy)}.platform-metric small{display:block;color:var(--platform-muted)}.platform-metric__icon{width:40px;height:40px;border-radius:12px;background:#eaf4ff;color:var(--platform-blue);display:grid;place-items:center}.platform-metric--warning .platform-metric__icon{background:#fff7ed;color:var(--platform-warning)}.platform-metric--danger .platform-metric__icon{background:#fef3f2;color:var(--platform-danger)}.platform-metric__link{position:absolute;right:14px;top:14px;font-size:12px;color:var(--platform-blue)}
/* Tables */
.platform-table{border:1px solid var(--platform-border);border-radius:14px;overflow:auto}.data-table thead th{position:sticky;top:0;background:var(--platform-surface-soft);color:var(--platform-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr:hover{background:#f6faff}.cell-muted{color:var(--platform-muted);font-size:12px}.sort-indicator{float:right;color:#98a2b3}.platform-table__footer{padding:12px 16px;color:var(--platform-muted);background:var(--platform-surface-soft);border-top:1px solid var(--platform-border)}
/* Forms */
.platform-filter-panel{margin:18px 0}.platform-filter-grid,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.platform-filter-grid label,.form-grid label{font-weight:700;color:var(--platform-text)}input,select,textarea{border:1px solid var(--platform-border);border-radius:10px;padding:10px;background:#fff}.platform-filter-actions{display:flex;gap:10px;align-items:end}
/* Buttons */
.btn--primary{background:var(--platform-blue);border-color:var(--platform-blue);color:white}.btn--primary:hover{background:var(--platform-blue-dark)}.btn--danger{background:var(--platform-danger);border-color:var(--platform-danger);color:#fff}.btn--secondary{border-color:var(--platform-border);background:#fff;color:var(--platform-text)}
/* Badges */
.badge,.platform-risk-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-weight:700;font-size:12px}.platform-risk-badge{background:#eef4ff;color:var(--platform-info)}.platform-status-dot{width:9px;height:9px;border-radius:999px;background:var(--platform-muted)}.platform-status-dot--active,.platform-status-dot--healthy{background:var(--platform-success)}.platform-status-dot--failed{background:var(--platform-danger)}
/* Tabs */
.platform-tabs{display:grid;gap:16px}.platform-tabs__list{display:flex;gap:8px;overflow:auto;border-bottom:1px solid var(--platform-border)}.platform-tab{border:0;background:transparent;padding:12px 14px;border-bottom:3px solid transparent;color:var(--platform-muted);font-weight:800}.platform-tab.is-active{color:var(--platform-blue);border-bottom-color:var(--platform-blue)}.platform-tab-panel{display:none}.platform-tab-panel.is-active{display:block}
/* Timeline */
.platform-timeline{list-style:none;margin:0;padding:0;display:grid;gap:12px}.platform-timeline li{border-left:3px solid var(--platform-blue);padding:8px 0 8px 16px;background:var(--platform-surface-soft);border-radius:0 12px 12px 0}.platform-timeline time{display:block;color:var(--platform-muted);font-size:12px}
/* Modals */
.platform-modal{position:fixed;inset:0;background:rgba(16,24,40,.48);z-index:60;display:grid;place-items:center}.platform-modal[hidden]{display:none}.platform-modal__panel{width:min(560px,92vw);background:#fff;border-radius:18px;padding:24px;box-shadow:var(--platform-shadow)}
/* Drawers */
.platform-drawer{position:fixed;right:0;top:0;height:100vh;width:min(520px,94vw);background:#fff;box-shadow:var(--platform-shadow);z-index:50;padding:24px}
/* Banners */
.platform-impersonation-banner,.impersonation-banner{position:sticky;top:64px;z-index:19;background:#fff1f3;border:1px solid #fecdca;color:var(--platform-danger);padding:10px;border-radius:12px}.platform-support-banner{background:#eff8ff;border:1px solid #b2ddff;color:var(--platform-info);padding:12px;border-radius:12px}
/* Empty/error states */
.platform-empty-state,.table-empty,.platform-error-state{border:1px dashed var(--platform-border);border-radius:16px;background:var(--platform-surface-soft);padding:24px;text-align:center;color:var(--platform-muted)}.platform-empty-state h3,.platform-error-state h3{color:var(--platform-navy)}.platform-unavailable{color:var(--platform-muted);font-style:italic}
/* Platform admin specific */
.platform-action-menu{position:relative;display:inline-block}.platform-action-menu__panel{display:none;position:absolute;right:0;min-width:190px;background:#fff;border:1px solid var(--platform-border);border-radius:12px;box-shadow:var(--platform-shadow);padding:6px;z-index:30}.platform-action-menu.is-open .platform-action-menu__panel{display:grid}.platform-action-menu__item{padding:9px 10px;border-radius:9px;color:var(--platform-text);text-decoration:none}.platform-action-menu__item:hover{background:var(--platform-surface-soft)}.platform-action-menu__item.is-danger{color:var(--platform-danger)}.platform-danger-zone{border:1px solid #fecdca;background:#fffafa;border-radius:16px;padding:18px}.platform-detail-header{display:flex;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--platform-border);border-radius:16px;padding:18px}.platform-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.platform-detail-grid div{background:var(--platform-surface-soft);border:1px solid var(--platform-border);border-radius:12px;padding:12px}.platform-detail-grid dt{color:var(--platform-muted);font-size:12px}.platform-detail-grid dd{margin:4px 0 0;font-weight:800}.platform-progress{height:10px;background:#e4e7ec;border-radius:999px;overflow:hidden}.platform-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--platform-blue),var(--platform-cyan))}.platform-health-indicator{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--platform-border);border-radius:12px}
/* Responsive */
@media(max-width:900px){.platform-health-grid,.platform-detail-layout{grid-template-columns:1fr}.page-header{display:block}.platform-filter-grid{grid-template-columns:1fr}}
/* Print */
@media print{.app-sidebar,.app-topbar,.platform-action-bar,.btn{display:none!important}.card,.page-header{box-shadow:none}}

/* ============================================================
   Platform Console redesign — everything below is scoped under
   .platform-shell so tenant WMS pages and the login screen are
   completely unaffected. CL3 Forwarding & Logistics brand colors:
   navy, teal, gold.
   ============================================================ */

/* Design tokens */
@font-face{font-family:"Fraunces Console";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/fraunces-600.ttf) format("truetype")}
@font-face{font-family:"Fraunces Console";font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/fraunces-900.ttf) format("truetype")}
@font-face{font-family:"Fraunces Console";font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/fraunces-italic-500.ttf) format("truetype")}
.platform-shell{
  --p-paper:#f2ede2;--p-ink:#16223c;--p-teal:#1c8195;--p-teal-deep:#125d6c;--p-gold:#d3992c;--p-pine:#2e6b52;--p-brick:#a83a2f;--p-cream:#fbf8f1;
  --p-bg:var(--p-paper);--p-surface:#fdfbf6;--p-surface-2:#eae3d3;--p-text:var(--p-ink);--p-text-muted:#726a5c;
  --p-border:#ddd4bf;--p-border-strong:#c8bda1;--p-rail-bg:var(--p-ink);--p-rail-text:#eef1f6;--p-rail-text-muted:#8b93a6;--p-rail-active:#1f2d4d;
  --p-accent:var(--p-teal);--p-accent-ink:var(--p-teal-deep);--p-focus:0 0 0 3px rgba(28,129,149,.32);
  --p-display:"Fraunces Console",Georgia,"Iowan Old Style",serif;
  --p-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --p-mono:"SF Mono","JetBrains Mono",ui-monospace,Menlo,Consolas,"Liberation Mono",monospace;
}
@media(prefers-color-scheme:dark){.platform-shell:not([data-theme]){
  --p-bg:#181510;--p-surface:#201c15;--p-surface-2:#292319;--p-text:#f0e9da;--p-text-muted:#a89d89;
  --p-border:#3a3225;--p-border-strong:#4a4030;--p-rail-bg:#0e0c09;--p-rail-text:#f0e9da;--p-rail-text-muted:#847a68;--p-rail-active:#211d16;
  --p-teal:#4aa9bd;--p-teal-deep:#8fd0de;--p-accent:var(--p-teal);--p-accent-ink:var(--p-teal-deep);--p-gold:#e3ac48;--p-pine:#5a9a7e;--p-brick:#cf6b5c;
  --p-focus:0 0 0 3px rgba(74,169,189,.35);
}}
.platform-shell[data-theme="dark"]{
  --p-bg:#181510;--p-surface:#201c15;--p-surface-2:#292319;--p-text:#f0e9da;--p-text-muted:#a89d89;
  --p-border:#3a3225;--p-border-strong:#4a4030;--p-rail-bg:#0e0c09;--p-rail-text:#f0e9da;--p-rail-text-muted:#847a68;--p-rail-active:#211d16;
  --p-teal:#4aa9bd;--p-teal-deep:#8fd0de;--p-accent:var(--p-teal);--p-accent-ink:var(--p-teal-deep);--p-gold:#e3ac48;--p-pine:#5a9a7e;--p-brick:#cf6b5c;
  --p-focus:0 0 0 3px rgba(74,169,189,.35);
}

/* Base */
.platform-shell{background-color:var(--p-bg);color:var(--p-text);font-family:var(--p-sans);font-size:14.5px;line-height:1.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch' result='t'/%3E%3CfeColorMatrix in='t' type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");background-repeat:repeat}
.platform-shell h1,.platform-shell h2,.platform-shell h3{font-family:var(--p-display);text-wrap:balance}
.platform-shell a{color:var(--p-accent-ink)}
.platform-shell code{font-family:var(--p-mono)}
.platform-shell :focus-visible{box-shadow:var(--p-focus)}
.platform-shell .icon{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.platform-shell .icon--sm{width:13px;height:13px}

/* Layout */
.platform-shell.app-shell{grid-template-columns:248px minmax(0,1fr)}
.platform-shell .app-main{background:var(--p-bg)}
.platform-shell .app-content{max-width:1520px}
.platform-shell .platform-page{display:grid;gap:22px}
.platform-shell .platform-dashboard{display:grid;gap:22px}
.platform-shell .platform-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.platform-shell .platform-detail-layout{display:grid;grid-template-columns:2fr 1fr;gap:18px}

/* Sidebar (rail) */
.platform-shell .app-sidebar{background:var(--p-rail-bg);color:var(--p-rail-text);padding:0;display:flex;flex-direction:column}
.platform-brand{display:flex;align-items:center;gap:12px;padding:20px 18px 16px;border-bottom:1px solid rgba(238,241,246,.1);text-decoration:none;min-height:auto}
.platform-brand:hover{text-decoration:none}
.platform-seal{--sz:44px;width:var(--sz);height:var(--sz);flex:none;position:relative;display:grid;place-items:center;background:var(--p-teal);color:var(--p-cream);border-radius:47% 53% 45% 55%/54% 44% 56% 46%;box-shadow:inset 0 -2px 4px rgba(0,0,0,.28),inset 0 2px 2px rgba(255,255,255,.18);transform:rotate(-5deg)}
.platform-seal::after{content:"";position:absolute;inset:4px;border:1.5px solid rgba(251,248,241,.6);border-radius:44% 56% 50% 50%/58% 42% 58% 42%}
.platform-seal b{font-family:var(--p-display);font-weight:900;font-size:18px;line-height:1;position:relative;z-index:1}
.platform-brand__text{font-family:var(--p-display);font-size:18px;font-weight:600;color:#fff;line-height:1.15}
.platform-brand__text small{display:block;font-family:var(--p-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-rail-text-muted);margin-top:3px;font-weight:400}
.platform-shell .sidebar-nav{padding:16px 10px;margin-top:0}
.platform-shell .sidebar-section__label{color:var(--p-rail-text-muted);font-family:var(--p-mono);font-size:10px;letter-spacing:.1em}
.platform-shell .sidebar-link{color:var(--p-rail-text);border-radius:7px;font-size:13.5px}
.platform-shell .sidebar-link:hover{background:var(--p-rail-active);transform:none}
.platform-shell .sidebar-link.is-active{background:var(--p-teal);color:#fff;font-weight:600;box-shadow:none}
.platform-shell .sidebar-link__icon{color:var(--p-rail-text-muted)}
.platform-shell .sidebar-link.is-active .sidebar-link__icon{color:#fff}
.platform-shell .rail-foot{padding:13px 18px;border-top:1px solid rgba(238,241,246,.1);font-family:var(--p-mono);font-size:10.5px;color:var(--p-rail-text-muted);margin-top:auto}
.platform-brand__logo{width:44px;height:44px;flex:none;border-radius:13px;display:block;box-shadow:0 6px 16px rgba(0,0,0,.34)}
/* Hamburger / collapsible icon rail. body.rail-collapsed is toggled only on desktop by app.js and persisted in localStorage. */
body.rail-collapsed .app-shell,body.rail-collapsed .platform-shell.app-shell{grid-template-columns:76px minmax(0,1fr)}
body.rail-collapsed .sidebar-link__text,body.rail-collapsed .sidebar-section__label,body.rail-collapsed .platform-brand__text,body.rail-collapsed .rail-foot,body.rail-collapsed .sidebar-link__badge{display:none}
body.rail-collapsed .app-sidebar{padding-left:8px;padding-right:8px}
body.rail-collapsed .platform-shell .app-sidebar{padding:0}
body.rail-collapsed .platform-brand{justify-content:center;padding:18px 0}
body.rail-collapsed .platform-shell .sidebar-nav{padding:14px 8px}
body.rail-collapsed .sidebar-nav{margin-top:16px}
body.rail-collapsed .sidebar-section{gap:4px}
body.rail-collapsed .sidebar-link{justify-content:center;padding:11px 0;gap:0}
body.rail-collapsed .sidebar-link:hover{transform:none}
body.rail-collapsed .sidebar-link__icon{width:22px}

/* Topbar (strip) */
.platform-shell .app-topbar{background:var(--p-surface);border-bottom:1px solid var(--p-border);backdrop-filter:none;padding:11px 22px}
.platform-shell .topbar-title__eyebrow{color:var(--p-text-muted);font-family:var(--p-mono);font-weight:600;letter-spacing:.06em}
.platform-shell .topbar-title__text{font-family:var(--p-display);font-weight:600;font-size:17px}
.platform-shell .topbar-search{display:flex;align-items:center;gap:7px;border:1px solid var(--p-border);border-radius:7px;padding:6px 12px;background:var(--p-surface-2)}
.platform-shell .topbar-search input{border:0;background:transparent;padding:0;min-width:220px;color:var(--p-text)}
.platform-shell .topbar-search input:focus{box-shadow:none}
.platform-shell .topbar-alert{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--p-gold) 55%,var(--p-border));background:color-mix(in srgb,var(--p-gold) 16%,transparent);color:#7a5714;border-radius:20px;padding:6px 11px;font-weight:600;font-size:12.5px}
.platform-shell .topbar-alert:hover{background:color-mix(in srgb,var(--p-gold) 24%,transparent)}
.platform-shell .avatar{background:var(--p-pine);color:var(--p-cream);font-family:var(--p-display);font-weight:700}
.platform-shell .pill-role{font-family:var(--p-mono);font-size:11px;border:1px solid var(--p-border-strong);padding:4px 10px;border-radius:20px;color:var(--p-text-muted)}
.platform-shell .badge{border-radius:20px;font-family:var(--p-mono);font-weight:600}
.platform-shell .badge--primary,.platform-shell .badge--processing{background:color-mix(in srgb,var(--p-teal) 16%,transparent);color:var(--p-teal-deep)}
.platform-shell .badge--neutral{background:var(--p-surface-2);color:var(--p-text-muted)}

/* Page header */
.platform-shell .page-header,.platform-shell .platform-page-header{background:var(--p-surface);border:1px solid var(--p-border);border-radius:10px;box-shadow:none;padding:22px 24px}
.platform-shell .page-header__title{color:var(--p-text);font-size:27px;font-weight:600;letter-spacing:-.005em}
.platform-shell .page-header__description{max-width:64ch;color:var(--p-text-muted);font-size:14px}
.platform-shell .breadcrumbs{font-family:var(--p-mono);font-size:11.5px}
.platform-shell .platform-action-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* Cards */
.platform-shell .card{border:1px solid var(--p-border);border-radius:10px;box-shadow:none;background:var(--p-surface)}
.platform-shell .card__header,.platform-shell .card__footer{border-color:var(--p-border);padding:13px 17px}
.platform-shell .card__header h2,.platform-shell .card__body h2{font-size:15px;font-weight:600}
.platform-shell .card__body{padding:17px}
.platform-shell .card--warning{border-color:color-mix(in srgb,var(--p-gold) 55%,var(--p-border));background:color-mix(in srgb,var(--p-gold) 6%,var(--p-surface))}
.platform-shell .card__subtitle,.platform-shell .muted{color:var(--p-text-muted)}

/* Metrics (ticker) */
.platform-shell .platform-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:16px 0}
.platform-shell .platform-metric{border:1.5px solid var(--p-border);border-radius:8px;background:var(--p-surface);padding:14px 16px;gap:12px}
.platform-shell .platform-metric strong{font-family:var(--p-display);font-size:26px;font-weight:600;color:var(--p-text)}
.platform-shell .platform-metric small{color:var(--p-text-muted);font-family:var(--p-mono);font-size:11px;letter-spacing:.02em}
.platform-shell .platform-metric__icon{background:color-mix(in srgb,var(--p-teal) 14%,transparent);color:var(--p-teal-deep);border-radius:8px}
.platform-shell .platform-metric--warning{background:var(--p-gold);border-color:var(--p-gold)}
.platform-shell .platform-metric--warning strong,.platform-shell .platform-metric--warning small{color:var(--p-ink)}
.platform-shell .platform-metric--warning .platform-metric__icon{background:rgba(22,34,60,.14);color:var(--p-ink)}
.platform-shell .platform-metric--danger{background:var(--p-brick);border-color:var(--p-brick)}
.platform-shell .platform-metric--danger strong,.platform-shell .platform-metric--danger small{color:var(--p-cream)}
.platform-shell .platform-metric--danger .platform-metric__icon{background:rgba(0,0,0,.18);color:var(--p-cream)}
.platform-shell .platform-metric__link{color:var(--p-accent-ink);font-family:var(--p-mono)}

/* Tables (manifest sheet) */
.platform-shell .platform-table,.platform-shell .table-shell{border:1.5px solid var(--p-border);border-radius:10px;background:var(--p-surface)}
.platform-shell .data-table th{background:var(--p-surface-2);color:var(--p-text-muted);font-family:var(--p-mono);font-size:10.5px;letter-spacing:.06em}
.platform-shell table,.platform-shell th,.platform-shell td{border-color:var(--p-border)}
.platform-shell .data-table td{white-space:nowrap}
.platform-shell .data-table tbody tr:hover{background:var(--p-surface-2)}
.platform-shell .cell-muted{color:var(--p-text-muted)}
.platform-shell .platform-table__footer{background:var(--p-surface-2);color:var(--p-text-muted);border-color:var(--p-border)}
.platform-shell code,.platform-shell .location-code,.platform-shell .sku-code,.platform-shell .document-code{background:var(--p-surface-2);color:var(--p-text)}

/* Forms */
.platform-shell .platform-filter-panel{margin:16px 0}
.platform-shell .platform-filter-grid,.platform-shell .form-grid{gap:12px}
.platform-shell .platform-filter-grid label,.platform-shell .form-grid label{color:var(--p-text);font-weight:600}
.platform-shell .form-control,.platform-shell .form-select,.platform-shell .form-textarea,.platform-shell input,.platform-shell select,.platform-shell textarea{border:1.5px solid var(--p-border);border-radius:7px;background:var(--p-surface);color:var(--p-text)}
.platform-shell .form-control:focus,.platform-shell input:focus,.platform-shell select:focus,.platform-shell textarea:focus{border-color:var(--p-accent);box-shadow:var(--p-focus)}
.platform-shell .form-help{color:var(--p-text-muted)}
.platform-shell .form-error{color:var(--p-brick)}

/* Buttons */
.platform-shell .btn,.platform-shell button,.platform-shell .button{border-radius:7px;font-weight:600;box-shadow:none;background:var(--p-surface);color:var(--p-text);border:1.5px solid var(--p-border-strong)}
.platform-shell .btn--primary{background:var(--p-teal)!important;border-color:var(--p-teal)!important;color:#fff!important;box-shadow:0 2px 0 var(--p-teal-deep)!important}
.platform-shell .btn--primary:hover{background:var(--p-teal-deep)!important;border-color:var(--p-teal-deep)!important;box-shadow:0 2px 0 rgba(0,0,0,.18)!important;transform:none}
.platform-shell .btn--secondary,.platform-shell .secondary{background:var(--p-surface)!important;color:var(--p-text)!important;border-color:var(--p-border-strong)!important}
.platform-shell .btn--secondary:hover{border-color:var(--p-text-muted)!important}
.platform-shell .btn--danger,.platform-shell .danger{background:transparent!important;color:var(--p-brick)!important;border:1.5px solid var(--p-brick)!important;box-shadow:none!important}
.platform-shell .btn--danger:hover{background:color-mix(in srgb,var(--p-brick) 10%,var(--p-surface))!important}
.platform-shell .btn--ghost{color:var(--p-text)!important}
.platform-shell .btn:hover,.platform-shell button:hover,.platform-shell .button:hover{transform:none}
.platform-shell .is-disabled{background:var(--p-surface-2)!important;color:var(--p-text-muted)!important;border-color:var(--p-border)!important;box-shadow:none!important;opacity:.75;cursor:not-allowed;pointer-events:none}

/* Badges / risk chips */
.platform-shell .badge--success,.platform-shell .badge--completed,.platform-shell .badge--active{background:color-mix(in srgb,var(--p-pine) 15%,transparent);color:var(--p-pine)}
.platform-shell .badge--warning,.platform-shell .badge--pending,.platform-shell .badge--draft,.platform-shell .badge--trial,.platform-shell .badge--past_due,.platform-shell .badge--past-due{background:color-mix(in srgb,var(--p-gold) 18%,transparent);color:#7a5714}
.platform-shell .badge--danger,.platform-shell .badge--failed,.platform-shell .badge--cancelled{background:color-mix(in srgb,var(--p-brick) 15%,transparent);color:var(--p-brick)}
.platform-shell .badge--suspended,.platform-shell .badge--archived,.platform-shell .badge--unavailable,.platform-shell .badge--inactive,.platform-shell .badge--ended{background:var(--p-surface-2);color:var(--p-text-muted)}
.platform-shell .platform-risk-badge{background:color-mix(in srgb,var(--p-teal) 14%,transparent);color:var(--p-teal-deep);border-radius:20px;font-family:var(--p-mono)}
.platform-shell .platform-status-dot{background:var(--p-text-muted)}
.platform-shell .platform-status-dot--active,.platform-shell .platform-status-dot--healthy{background:var(--p-pine)}
.platform-shell .platform-status-dot--failed{background:var(--p-brick)}

/* Tabs */
.platform-shell .platform-tabs__list{border-color:var(--p-border)}
.platform-shell .platform-tab{color:var(--p-text-muted);font-family:var(--p-sans);font-weight:600;border-bottom-width:3px}
.platform-shell .platform-tab.is-active{color:var(--p-teal);border-bottom-color:var(--p-teal)}

/* Timeline */
.platform-shell .platform-timeline li{border-left-color:var(--p-teal);background:var(--p-surface-2);color:var(--p-text)}
.platform-shell .platform-timeline time{color:var(--p-text-muted)}

/* Modals / drawers */
.platform-shell .platform-modal__panel,.platform-shell .platform-drawer{background:var(--p-surface);color:var(--p-text)}
.platform-shell .modal{background:var(--p-surface);color:var(--p-text)}
.platform-shell .modal__header,.platform-shell .modal__footer{border-color:var(--p-border)}

/* Alerts (flash messages) */
.platform-shell .alert,.platform-shell .notice,.platform-shell .error{border-radius:8px}
.platform-shell .alert--success,.platform-shell .notice{background:color-mix(in srgb,var(--p-pine) 14%,var(--p-surface));border-color:var(--p-pine);color:var(--p-pine)}
.platform-shell .alert--warning{background:color-mix(in srgb,var(--p-gold) 16%,var(--p-surface));border-color:var(--p-gold);color:#7a5714}
.platform-shell .alert--danger,.platform-shell .error{background:color-mix(in srgb,var(--p-brick) 12%,var(--p-surface));border-color:var(--p-brick);color:var(--p-brick)}
.platform-shell .alert--info{background:color-mix(in srgb,var(--p-teal) 12%,var(--p-surface));border-color:var(--p-teal);color:var(--p-teal-deep)}

/* Banners */
.platform-shell .platform-impersonation-banner,.platform-shell .impersonation-banner{background:var(--p-brick);border:0;color:var(--p-cream);border-radius:8px;font-weight:600}
.platform-shell .platform-support-banner{background:color-mix(in srgb,var(--p-teal) 14%,transparent);border:1px solid color-mix(in srgb,var(--p-teal) 40%,transparent);color:var(--p-teal-deep)}

/* Empty / error states */
.platform-shell .platform-empty-state,.platform-shell .table-empty,.platform-shell .platform-error-state,.platform-shell .empty-state,.platform-shell .empty{border:2px dashed var(--p-border-strong);background:var(--p-surface);color:var(--p-text-muted);font-family:var(--p-display);font-style:italic;font-size:14px;border-radius:10px}
.platform-shell .platform-empty-state h3,.platform-shell .platform-error-state h3{color:var(--p-text);font-style:normal}
.platform-shell .platform-unavailable{color:var(--p-text-muted)}

/* Platform admin specific */
.platform-shell .platform-action-menu__panel{background:var(--p-surface);border-color:var(--p-border);color:var(--p-text);min-width:250px;max-width:330px;box-shadow:0 10px 30px rgba(22,34,60,.16)}
.platform-shell .platform-action-menu__item{font-size:13px}
.platform-shell .platform-action-menu__item:hover{background:var(--p-surface-2)}
.platform-shell .platform-action-menu__item.is-danger{color:var(--p-brick)}
/* Audited action forms hosted inside the dropdown (secondary menu), collapsed until chosen */
.platform-shell .platform-action-menu__form{border-radius:8px}
.platform-shell .platform-action-menu__form+.platform-action-menu__form,.platform-shell .platform-action-menu__form+.platform-action-menu__item,.platform-shell .platform-action-menu__item+.platform-action-menu__form{border-top:1px solid var(--p-border);margin-top:2px;padding-top:2px}
.platform-shell .platform-action-menu__form>summary{list-style:none;cursor:pointer;padding:9px 10px;border-radius:8px;font-size:13px;color:var(--p-text);display:flex;align-items:center;justify-content:space-between}
.platform-shell .platform-action-menu__form>summary::-webkit-details-marker{display:none}
.platform-shell .platform-action-menu__form>summary::after{content:"+";color:var(--p-text-muted);font-weight:700}
.platform-shell .platform-action-menu__form[open]>summary::after{content:"−"}
.platform-shell .platform-action-menu__form.is-danger>summary{color:var(--p-brick)}
.platform-shell .platform-action-menu__form>summary:hover{background:var(--p-surface-2)}
.platform-shell .platform-action-menu__form[open]>summary{font-weight:600}
.platform-shell .platform-action-menu__form-body{padding:4px 8px 10px}
.platform-shell .platform-action-menu__form-body .platform-inline-action-form{display:grid;gap:7px;align-items:stretch}
.platform-shell .platform-action-menu__form-body .platform-inline-action-form input:not([type=hidden]):not([type=checkbox]),.platform-shell .platform-action-menu__form-body .platform-inline-action-form select{width:100%;max-width:none;min-width:0}
.platform-shell .platform-action-menu__form-body .platform-inline-action-form button{width:100%;justify-content:center}
/* Minimal KPI cards: tinted status instead of loud full fills */
.platform-shell .platform-metric--warning{background:color-mix(in srgb,var(--p-gold) 12%,var(--p-surface));border-color:color-mix(in srgb,var(--p-gold) 42%,var(--p-border))}
.platform-shell .platform-metric--warning strong{color:var(--p-text)}
.platform-shell .platform-metric--warning small{color:var(--p-text-muted)}
.platform-shell .platform-metric--warning .platform-metric__icon{background:color-mix(in srgb,var(--p-gold) 24%,transparent);color:var(--p-teal-deep)}
.platform-shell .platform-metric--danger{background:color-mix(in srgb,var(--p-brick) 10%,var(--p-surface));border-color:color-mix(in srgb,var(--p-brick) 40%,var(--p-border))}
.platform-shell .platform-metric--danger strong{color:var(--p-text)}
.platform-shell .platform-metric--danger small{color:var(--p-text-muted)}
.platform-shell .platform-metric--danger .platform-metric__icon{background:color-mix(in srgb,var(--p-brick) 20%,transparent);color:var(--p-brick)}
.platform-shell .platform-danger-zone{border:1.5px solid var(--p-brick);background:color-mix(in srgb,var(--p-brick) 6%,var(--p-surface));border-radius:10px}
.platform-shell .platform-danger-zone h2{color:var(--p-brick);font-size:15px}
.platform-shell .platform-detail-header{background:var(--p-surface);border-color:var(--p-border);border-radius:10px}
.platform-shell .platform-detail-header h2{font-size:20px}
.platform-shell .platform-detail-grid div{background:var(--p-surface-2);border-color:var(--p-border)}
.platform-shell .platform-detail-grid dt{color:var(--p-text-muted);font-family:var(--p-mono);font-size:11px}
.platform-shell .platform-progress{background:var(--p-surface-2)}
.platform-shell .platform-progress span{background:var(--p-teal)}
.platform-shell .platform-health-indicator{border-color:var(--p-border)}
.platform-shell .platform-inline-action-form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.platform-shell .platform-inline-action-form input:not([type=hidden]):not([type=checkbox]){width:auto;border:1.5px solid var(--p-border);border-radius:6px;padding:4px 8px;font-size:12px;min-width:110px;max-width:150px;background:var(--p-surface);color:var(--p-text)}
.platform-shell .platform-inline-action-form input[type=checkbox]{width:14px;height:14px;min-width:0;padding:0;margin:0}
.platform-shell .platform-inline-action-form label.choice{margin:0;font-size:12px;color:var(--p-text-muted);white-space:nowrap}
.platform-shell .platform-inline-action-form .platform-field{display:grid;margin:0;gap:3px;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:var(--p-text-muted);text-transform:none}
.platform-shell .platform-inline-action-form .platform-field input,.platform-shell .platform-inline-action-form .platform-field select{font-weight:500;color:var(--p-text)}
.platform-shell .platform-inline-action-form button{background:transparent;color:var(--p-text);border:1px solid var(--p-border-strong);border-radius:6px;padding:6px 11px;font-size:12.5px;font-weight:600;box-shadow:none}
.platform-shell .platform-inline-action-form button.is-danger{color:var(--p-brick);border-color:var(--p-brick)}
.platform-shell .platform-inline-action-form button:hover{background:var(--p-surface-2)}
/* Subscription / member management inline layouts */
.platform-shell .platform-inline-action-grid{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;margin-top:6px}
.platform-shell .platform-inline-action-grid>form{border:1px solid var(--p-border);border-radius:10px;padding:12px;background:var(--p-surface-2)}
.platform-shell .platform-inline-details{margin-top:8px;border:1px solid var(--p-border);border-radius:9px;background:var(--p-surface-2)}
.platform-shell .platform-inline-details>summary{cursor:pointer;padding:7px 11px;font-size:12.5px;font-weight:600;color:var(--p-accent-ink);list-style:none}
.platform-shell .platform-inline-details>summary::-webkit-details-marker{display:none}
.platform-shell .platform-inline-details[open]>summary{border-bottom:1px solid var(--p-border)}
.platform-shell .platform-inline-details__body{display:grid;gap:12px;padding:12px}
.platform-shell .platform-member-form{display:grid;gap:8px;align-items:stretch}
.platform-shell .platform-member-form input:not([type=hidden]):not([type=checkbox]){max-width:none;width:100%}
.platform-shell .platform-checkgroup{border:1px solid var(--p-border);border-radius:9px;padding:9px 11px;display:grid;gap:6px;margin:0}
.platform-shell .platform-checkgroup legend{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--p-text-muted);padding:0 4px}
.platform-shell .platform-checkgroup .choice{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--p-text);white-space:normal}
.platform-shell .platform-checkgroup .choice input[type=checkbox]{width:15px;height:15px;flex:none}
/* Inline edit: click a detail field to edit it in place */
.platform-shell .platform-detail-grid--editable .platform-inline-edit dd{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.platform-shell .platform-inline-edit__value{font-weight:700}
.platform-shell .platform-inline-edit__editor{width:100%}
.platform-shell .platform-inline-edit__editor>summary{list-style:none;cursor:pointer;color:var(--p-accent-ink);font-family:var(--p-mono);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.platform-shell .platform-inline-edit__editor>summary::-webkit-details-marker{display:none}
.platform-shell .platform-inline-edit__editor>summary:hover{text-decoration:underline}
.platform-shell .platform-inline-edit__editor[open]>summary{margin-bottom:7px}
.platform-shell .platform-inline-edit__editor .platform-inline-action-form{display:grid;gap:7px;width:100%}
.platform-shell .platform-inline-edit__editor .platform-inline-action-form input:not([type=hidden]):not([type=checkbox]){width:100%;max-width:none;min-width:0}
/* Section-level inline edit: one Edit button flips the card to an inline form */
.app-shell .platform-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.app-shell .platform-section-head h2{margin:0}
.app-shell [data-editable-section].is-editing [data-edit-view="read"]{display:none}
.app-shell .platform-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.app-shell .platform-edit-form label{margin:0;gap:5px;font-size:12px;font-weight:700;color:var(--p-text-muted)}
.app-shell .platform-edit-form label input{font-weight:500;color:var(--p-text)}
.app-shell .platform-edit-authorize{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--p-border)}
.app-shell .platform-edit-authorize label.choice{grid-column:1/-1;flex-direction:row;font-size:13px}
.app-shell .platform-edit-actions{display:flex;gap:10px;margin-top:16px}

/* ============ Interactive data grid ============ */
.app-shell .platform-grid__toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--p-border);border-bottom:0;border-radius:10px 10px 0 0;background:var(--p-surface)}
.app-shell .platform-grid__search{flex:1 1 220px;min-width:180px;max-width:340px;border:1.5px solid var(--p-border);border-radius:8px;padding:8px 12px;font-size:13px;background:var(--p-cream);color:var(--p-text)}
.app-shell .platform-grid__search:focus{outline:none;border-color:var(--p-teal);box-shadow:var(--p-focus)}
.app-shell .platform-grid__count{font-family:var(--p-mono);font-size:11.5px;color:var(--p-text-muted);white-space:nowrap}
.app-shell .platform-grid__spacer{flex:1 1 auto}
.app-shell .platform-grid__pagesize{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12px;color:var(--p-text-muted)}
.app-shell .platform-grid__pagesize select{width:auto;min-width:0;border:1.5px solid var(--p-border);border-radius:7px;padding:5px 8px;font-size:12px;background:var(--p-surface);color:var(--p-text)}
.app-shell [data-grid] .table-shell,.app-shell [data-grid].platform-table{border-radius:0}
.app-shell .platform-grid__pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 12px;border:1px solid var(--p-border);border-top:0;border-radius:0 0 10px 10px;background:var(--p-surface)}
.app-shell .platform-grid__pageinfo{font-family:var(--p-mono);font-size:11.5px;color:var(--p-text-muted)}
.app-shell .platform-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:1px solid var(--p-border);border-radius:10px;background:var(--p-surface)}
.app-shell .platform-pagination__info{font-family:var(--p-mono);font-size:12px;color:var(--p-text-muted)}
.app-shell .platform-pagination__controls{display:flex;gap:8px}
.app-shell .data-table th.is-sortable{cursor:pointer;user-select:none}
.app-shell .data-table th.is-sortable:hover{color:var(--p-teal-deep)}
.app-shell .data-table th[data-sort-dir] .sort-indicator{color:var(--p-teal);font-weight:700}
.app-shell .data-table th[data-sort-dir="asc"] .sort-indicator::after{content:" ↑"}
.app-shell .data-table th[data-sort-dir="desc"] .sort-indicator::after{content:" ↓"}
.app-shell .platform-grid__selcol{width:34px;text-align:center;white-space:nowrap}
.app-shell .platform-grid__selcol input{width:15px;height:15px;accent-color:var(--p-teal);cursor:pointer}
.app-shell .data-table tr.is-selected td{background:color-mix(in srgb,var(--p-teal) 10%,var(--p-surface))}

/* Sticky bulk action bar */
.app-shell .platform-bulkbar{position:fixed;left:50%;bottom:22px;transform:translate(-50%,140%);z-index:60;display:flex;align-items:center;gap:16px;padding:10px 14px 10px 18px;background:var(--p-ink);color:var(--p-rail-text);border-radius:12px;box-shadow:0 14px 40px rgba(15,25,45,.34);transition:transform .22s cubic-bezier(.2,.8,.3,1);max-width:calc(100vw - 32px)}
.app-shell .platform-bulkbar.is-visible{transform:translate(-50%,0)}
.app-shell .platform-bulkbar__count{font-family:var(--p-display);font-size:14px;white-space:nowrap}
.app-shell .platform-bulkbar__actions{display:flex;gap:8px;flex-wrap:wrap}
.app-shell .platform-bulkbar .btn{box-shadow:none}
.app-shell .platform-bulkbar .btn--secondary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:var(--p-rail-text)}
.app-shell .platform-bulkbar .btn--secondary:hover{background:rgba(255,255,255,.2)}
.app-shell .platform-bulkbar .btn--ghost{color:var(--p-rail-text-muted)}

/* Drawer (for bulk mutation forms) */
.app-shell .platform-drawer{position:fixed;inset:0;z-index:70;display:none;background:rgba(15,25,45,.42);backdrop-filter:blur(2px)}
.app-shell .platform-drawer.is-open{display:block}
.app-shell .platform-drawer__panel{position:absolute;top:0;right:0;height:100%;width:min(460px,92vw);background:var(--p-surface);border-left:1px solid var(--p-border-strong);box-shadow:-18px 0 50px rgba(15,25,45,.22);padding:22px;overflow:auto;display:flex;flex-direction:column;gap:14px}
.app-shell .platform-drawer__panel h2{font-size:18px;margin:0}

/* Guided wizard */
.app-shell .platform-wizard__rail{display:flex;gap:8px;flex-wrap:wrap;list-style:none;margin:0 0 18px;padding:0;counter-reset:none}
.app-shell .platform-wizard__rail-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1.5px solid var(--p-border);border-radius:999px;font-size:12.5px;color:var(--p-text-muted);background:var(--p-surface)}
.app-shell .platform-wizard__rail-item.is-active{border-color:var(--p-teal);color:var(--p-teal-deep);background:color-mix(in srgb,var(--p-teal) 10%,var(--p-surface))}
.app-shell .platform-wizard__rail-item.is-done{color:var(--p-pine);cursor:pointer}
.app-shell .platform-wizard__rail-num{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--p-surface-2);font-family:var(--p-mono);font-size:11px;font-weight:700}
.app-shell .platform-wizard__rail-item.is-active .platform-wizard__rail-num{background:var(--p-teal);color:#fff}
.app-shell .platform-wizard__rail-item.is-done .platform-wizard__rail-num{background:var(--p-pine);color:#fff}
.app-shell .platform-wizard__rail-item.is-done .platform-wizard__rail-num::after{content:"✓"}
.app-shell .platform-wizard__rail-item.is-done .platform-wizard__rail-num{font-size:0}
.app-shell .platform-wizard__rail-item.is-done .platform-wizard__rail-num::after{font-size:12px}
.app-shell [data-step]{display:grid;gap:12px}
.app-shell [data-step][hidden]{display:none}
.app-shell .platform-wizard__nav{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--p-border)}

/* Searchable combobox */
.app-shell .platform-combobox{position:relative}
.app-shell .platform-combobox__native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.app-shell .platform-combobox__input{width:100%;border:1.5px solid var(--p-border);border-radius:8px;padding:9px 12px;font-size:13px;background:var(--p-cream);color:var(--p-text)}
.app-shell .platform-combobox__input:focus{outline:none;border-color:var(--p-teal);box-shadow:var(--p-focus)}
.app-shell .platform-combobox__list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;max-height:240px;overflow:auto;background:var(--p-surface);border:1.5px solid var(--p-border-strong);border-radius:10px;box-shadow:0 14px 34px rgba(15,25,45,.18);display:none}
.app-shell .platform-combobox__list.is-open{display:block}
.app-shell .platform-combobox__item{padding:9px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--p-border)}
.app-shell .platform-combobox__item:last-child{border-bottom:0}
.app-shell .platform-combobox__item:hover{background:color-mix(in srgb,var(--p-teal) 12%,var(--p-surface));color:var(--p-teal-deep)}

/* Command palette */
.topbar-command{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--p-border);background:var(--p-surface);color:var(--p-text-muted);border-radius:9px;padding:7px 12px;font-size:12.5px;cursor:pointer}
.topbar-command:hover{border-color:var(--p-teal);color:var(--p-teal-deep)}
.topbar-command kbd{font-family:var(--p-mono);font-size:10.5px;background:var(--p-surface-2);border-radius:5px;padding:2px 6px;border:1px solid var(--p-border)}
.platform-palette{position:fixed;inset:0;z-index:90;display:none;align-items:flex-start;justify-content:center;padding-top:12vh;background:rgba(15,25,45,.44);backdrop-filter:blur(3px)}
.platform-palette.is-open{display:flex}
.platform-palette__box{width:min(560px,92vw);background:var(--p-surface);border:1px solid var(--p-border-strong);border-radius:14px;box-shadow:0 24px 70px rgba(15,25,45,.4);overflow:hidden}
.platform-palette__input{width:100%;border:0;border-bottom:1px solid var(--p-border);padding:16px 18px;font-size:15px;font-family:var(--p-display);background:transparent;color:var(--p-text)}
.platform-palette__input:focus{outline:none}
.platform-palette__results{max-height:52vh;overflow:auto}
.platform-palette__item{display:flex;align-items:center;gap:12px;padding:11px 18px;text-decoration:none;color:var(--p-text);border-bottom:1px solid var(--p-border)}
.platform-palette__item.is-active{background:color-mix(in srgb,var(--p-teal) 12%,var(--p-surface))}
.platform-palette__group{font-family:var(--p-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--p-text-muted);min-width:74px}
.platform-palette__label{font-size:14px}
.platform-palette__hint{padding:9px 18px;font-family:var(--p-mono);font-size:11px;color:var(--p-text-muted);background:var(--p-surface-2)}

/* Width containment: the single-column page grid must not size to its widest
   child's max-content (which let KPI grids and wide tables push the page past
   the viewport). Constrain the column and let children shrink + scroll. */
.app-shell .platform-page{grid-template-columns:minmax(0,1fr)}
.app-shell .platform-page>*{min-width:0;max-width:100%}
.app-shell .platform-tabs,.app-shell .platform-tab-panel,.app-shell .card,.app-shell .card__body{min-width:0}
.app-shell .table-shell,.app-shell .platform-table{max-width:100%;overflow-x:auto}
.app-shell .platform-page-header,.app-shell .page-header{flex-wrap:wrap}
.app-shell .page-header__actions,.app-shell .platform-action-bar{flex-wrap:wrap}

/* Responsive */
@media(max-width:900px){.app-shell .platform-health-grid,.app-shell .platform-detail-layout{grid-template-columns:1fr}.topbar-command span{display:none}}

/* Print */
@media print{.platform-shell{background-image:none}.app-shell .platform-bulkbar,.app-shell .platform-grid__toolbar,.app-shell .platform-grid__pager{display:none}}

/* ============================================================================
   Tenant reuse layer. The interactive component rules above are scoped to
   .app-shell (shared by both shells). The platform console defines the --p-*
   design tokens on .platform-shell; the tenant shell has no platform-shell
   class, so we alias the same token names onto the tenant's --color-* system.
   This makes the reused grid / wizard / drawer / bulk bar / combobox / command
   palette render in the tenant's blue-on-white SaaS theme instead of the
   platform navy. The :not(.platform-shell) guard keeps admin pages on their own
   tokens. ========================================================================= */
.app-shell:not(.platform-shell){
  --p-surface:var(--color-surface);--p-surface-2:var(--color-surface-2);--p-cream:#fff;
  --p-text:var(--color-text);--p-text-muted:var(--color-muted);
  --p-border:var(--color-line);--p-border-strong:#c7d0e0;
  --p-teal:var(--color-primary);--p-teal-deep:var(--color-primary-700);--p-pine:var(--color-success);
  --p-ink:var(--sidebar);--p-rail-text:#eef1f6;--p-rail-text-muted:#9aa5b8;
  --p-focus:var(--focus-ring);
  --p-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --p-display:inherit;
}
/* The command-palette overlay itself is unscoped (mounts inside .app-shell); make
   sure its box picks up tenant tokens too. */
.app-shell:not(.platform-shell) .topbar-command{border-color:var(--color-line);background:#fff;color:var(--color-muted)}

/* --------------------------------------------------------------------------
   Tenant compact design. Tighter, flatter and more minimal than the base
   shell — mirrors the admin console refinement but in the tenant blue-on-white
   theme. Sections are direct grid children of .platform-page, so their own
   margins are zeroed and the grid gap owns all the vertical rhythm.
   -------------------------------------------------------------------------- */
.app-shell:not(.platform-shell) .platform-page{gap:14px}
.app-shell:not(.platform-shell) .page-header,
.app-shell:not(.platform-shell) .platform-page-header{background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;box-shadow:var(--shadow-sm);padding:16px 18px;margin:0}
.app-shell:not(.platform-shell) .page-header__title{font-size:22px;line-height:1.2;letter-spacing:-.02em;margin:3px 0}
.app-shell:not(.platform-shell) .page-header__description{font-size:13.5px;max-width:760px}
.app-shell:not(.platform-shell) .breadcrumbs{font-size:12px;margin-bottom:4px}
.app-shell:not(.platform-shell) .topbar-title__eyebrow{font-size:10.5px}
.app-shell:not(.platform-shell) .card{border-radius:12px;box-shadow:var(--shadow-sm);margin:0}
.app-shell:not(.platform-shell) .card__body{padding:16px 18px}
.app-shell:not(.platform-shell) .platform-kpi-grid{gap:10px;margin:0;grid-template-columns:repeat(auto-fit,minmax(166px,1fr))}
.app-shell:not(.platform-shell) .platform-metric{padding:13px 15px;gap:12px;border-radius:12px;box-shadow:none}
.app-shell:not(.platform-shell) .platform-metric strong{font-size:23px;font-weight:850}
.app-shell:not(.platform-shell) .platform-metric small{font-size:11.5px}
.app-shell:not(.platform-shell) .platform-metric__icon{width:34px;height:34px;border-radius:9px}
.app-shell:not(.platform-shell) .platform-filter-panel{margin:0}
.app-shell:not(.platform-shell) .platform-filter-grid{gap:12px}
.app-shell:not(.platform-shell) .platform-filter-grid label{font-size:12px;font-weight:750;color:var(--color-muted)}
.app-shell:not(.platform-shell) .table-shell{margin-top:0}
.app-shell:not(.platform-shell) .section-title{margin:6px 0 0}
/* Data grid toolbar/pager sit flush on the table; keep them tight and quiet. */
.app-shell:not(.platform-shell) .platform-grid__toolbar,
.app-shell:not(.platform-shell) .platform-grid__pager{padding:8px 12px}
.app-shell:not(.platform-shell) .data-table th,
.app-shell:not(.platform-shell) .data-table td{padding:9px 12px}

/* --------------------------------------------------------------------------
   Tabbed workspace (SoftOne/Entersoft-style MDI). The host fills the viewport;
   each open screen is a same-origin iframe kept alive so tabs preserve state.
   -------------------------------------------------------------------------- */
body.is-workspace .app-main{display:flex;flex-direction:column;height:100vh;overflow:hidden}
body.is-workspace .app-content{flex:1;display:flex;min-height:0;max-width:none;margin:0;padding:0}
.tab-workspace{flex:1;display:flex;flex-direction:column;min-height:0}
.tab-strip{display:flex;align-items:flex-end;gap:3px;padding:7px 10px 0;background:var(--color-surface-2);border-bottom:1px solid var(--color-line);overflow-x:auto;scrollbar-width:thin}
.tab-chip{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;max-width:230px;padding:8px 10px 8px 14px;border:1px solid var(--color-line);border-bottom:0;border-radius:8px 8px 0 0;background:#eef1f6;color:var(--color-muted);font-size:13px;font-weight:700;cursor:pointer;position:relative;top:1px;transition:background .12s ease,color .12s ease}
.tab-chip:hover{background:#e6ebf3;color:var(--color-text)}
.tab-chip.is-active{background:var(--color-surface);color:var(--color-text);border-color:var(--color-line);box-shadow:0 -2px 0 var(--color-primary) inset}
.tab-chip__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tab-chip__close{border:0;background:transparent;box-shadow:none;color:inherit;font-size:16px;line-height:1;padding:0 2px;width:18px;height:18px;border-radius:5px;cursor:pointer;display:grid;place-items:center}
.tab-chip__close:hover{background:rgba(16,24,40,.12);color:var(--color-danger)}
.tab-chip.is-pinned{padding-right:14px}
.tab-chip.is-pinned .tab-chip__icon{opacity:1}
.tab-stage{flex:1;position:relative;min-height:0;background:var(--color-bg)}
.tab-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--color-surface);display:none}
.tab-frame.is-active{display:block}
.tab-stage__empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--color-muted);gap:6px}
.tab-stage__empty h2{margin:0;font-size:18px;color:var(--color-text)}

/* Embedded (in-tab) pages render content-only: no sidebar column, comfortable padding. */
body.is-embed{background:var(--color-bg)}
.is-embed .app-shell{display:block;min-height:0}
.is-embed .app-main{background:transparent}
.is-embed .app-content{max-width:none;margin:0;padding:16px 18px}

/* Warehouse-floor scanner forms: large keyboard/scanner-friendly targets, works
   on tablet and phone. Used by receiving / picking / putaway execution panels. */
.wms-scan{display:grid;gap:16px}
.wms-scan .wms-scan__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.wms-scan label{gap:8px;font-size:13px}
.wms-scan input:not([type=checkbox]),.wms-scan select,.wms-scan textarea,.wms-scan .platform-combobox__input{font-size:17px;padding:14px 14px;min-height:52px}
.wms-scan .wms-scan__primary{font-size:17px;padding:15px 22px;min-height:56px;width:100%}
.wms-scan__hero{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline;margin-bottom:6px}
.wms-scan__hero strong{font-size:20px}
.wms-scan__hint{color:var(--color-muted);font-size:13px}
@media(max-width:640px){.wms-scan .wms-scan__grid{grid-template-columns:1fr}}
.section-title{font-size:15px;font-weight:850;margin:26px 0 10px;letter-spacing:-.01em}
/* Entersoft-style active filter chips (sits below the list). */
.filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.filter-chip{display:inline-flex;align-items:center;gap:6px;background:#eef4ff;border:1px solid #cfe0ff;color:var(--color-text);border-radius:999px;padding:5px 6px 5px 12px;font-size:12.5px}
.filter-chip strong{font-weight:800}
.filter-chip__x{display:grid;place-items:center;width:18px;height:18px;border-radius:999px;color:var(--color-muted);text-decoration:none;font-size:15px;line-height:1}
.filter-chip__x:hover{background:#fff;color:var(--color-danger);text-decoration:none}
.filter-chips__clear{font-size:12.5px;font-weight:700;color:var(--color-primary);margin-left:4px}
/* Entersoft-style filter bar: search + funnel flyout. */
.wms-filterbar{position:relative;margin:0}
.wms-filterbar__bar{display:flex;gap:10px;align-items:center}
.wms-filterbar__search{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center}
.wms-filterbar__search-icon{position:absolute;left:12px;width:16px;height:16px;fill:none;stroke:var(--color-muted);stroke-width:1.6;pointer-events:none}
.wms-filterbar__search input{width:100%;border:1px solid var(--color-line);border-radius:10px;padding:11px 14px 11px 36px;background:#fff;font-size:14px}
.wms-filterbar__funnel{display:inline-flex;align-items:center;gap:8px;background:#fff!important;color:var(--color-text)!important;border:1px solid var(--color-line)!important;box-shadow:none!important;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}
.wms-filterbar__funnel svg{width:15px;height:15px;fill:currentColor}
.wms-filterbar__funnel.has-active{border-color:var(--color-primary)!important;color:var(--color-primary)!important}
.wms-filterbar__count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-primary);color:#fff;font-size:11px;font-weight:800}
.wms-filterbar__panel{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:40;background:#fff;border:1px solid var(--color-line);border-radius:12px;box-shadow:var(--shadow-md);padding:16px}
.wms-filterbar__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.wms-filterbar__grid label{font-size:12px;font-weight:750;color:var(--color-muted);gap:6px}
.wms-filterbar__actions{display:flex;gap:10px;margin-top:14px;justify-content:flex-end}
/* Column-header funnel affordance (opens the filter flyout). */
.app-shell:not(.platform-shell) .data-table th .col-funnel{border:0;background:transparent;box-shadow:none;padding:0 0 0 6px;cursor:pointer;color:var(--color-muted);opacity:.55;vertical-align:middle}
.app-shell:not(.platform-shell) .data-table th .col-funnel:hover{opacity:1;color:var(--color-primary)}
.app-shell:not(.platform-shell) .data-table th .col-funnel svg{width:12px;height:12px;fill:currentColor}
/* Workspace tab icons. */
.tab-chip__icon{display:inline-grid;place-items:center;width:15px;height:15px;flex:none;font-size:13px;line-height:1;opacity:.85}
.tab-chip.is-active .tab-chip__icon{opacity:1}

/* --------------------------------------------------------------------------
   S1-minimal typography. Lighter weights, smaller sizes, Title-Case headers,
   tabular figures — a refined, elegant, futuristic-minimal register in the
   spirit of SoftOne. Scoped to the tenant shell (admin console untouched).
   -------------------------------------------------------------------------- */
.app-shell:not(.platform-shell) .app-content{font-size:13.5px}
.app-shell:not(.platform-shell) .page-header__title{font-size:19px;font-weight:600;letter-spacing:-.01em;margin:2px 0}
.app-shell:not(.platform-shell) .page-header__description{font-size:13px;font-weight:400}
.app-shell:not(.platform-shell) .topbar-title__text{font-size:15px;font-weight:600}
.app-shell:not(.platform-shell) .topbar-title__eyebrow{font-size:10px;font-weight:700;letter-spacing:.1em}
/* KPI / metric cards */
.app-shell:not(.platform-shell) .platform-metric strong,
.app-shell:not(.platform-shell) .kpi-card__value{font-size:21px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.app-shell:not(.platform-shell) .platform-metric small,
.app-shell:not(.platform-shell) .platform-metric span,
.app-shell:not(.platform-shell) .kpi-card__label{font-size:11.5px;font-weight:600}
.app-shell:not(.platform-shell) .platform-metric span{letter-spacing:.01em;color:var(--color-muted)}
/* Buttons + badges: quieter weight */
.app-shell:not(.platform-shell) .btn,
.app-shell:not(.platform-shell) button,
.app-shell:not(.platform-shell) .button{font-weight:600;font-size:13px}
.app-shell:not(.platform-shell) .badge{font-weight:600;font-size:11.5px;letter-spacing:.005em}
/* Data grid: Title-Case, lighter headers; tabular figures; a touch smaller */
.app-shell:not(.platform-shell) .data-table th{text-transform:none;font-size:11.5px;font-weight:650;letter-spacing:.01em;color:var(--color-muted)}
.app-shell:not(.platform-shell) .data-table td{font-size:13px}
.app-shell:not(.platform-shell) .data-table td code{font-variant-numeric:tabular-nums}
.app-shell:not(.platform-shell) .data-table strong{font-weight:600}
/* Section headings + cards + detail lists */
.app-shell:not(.platform-shell) .section-title{font-size:12.5px;font-weight:700;letter-spacing:.01em;color:var(--color-muted);text-transform:uppercase}
.app-shell:not(.platform-shell) .card h1,
.app-shell:not(.platform-shell) .card h2{font-size:15px;font-weight:600;letter-spacing:-.005em}
.app-shell:not(.platform-shell) dt{font-weight:600}
.app-shell:not(.platform-shell) label,
.app-shell:not(.platform-shell) .form-label{font-weight:600}
/* Scanner heros */
.app-shell:not(.platform-shell) .wms-scan__hero strong{font-size:17px;font-weight:600}
/* Filter bar + tabs: lighter */
.app-shell:not(.platform-shell) .wms-filterbar__funnel,
.app-shell:not(.platform-shell) .tab-chip{font-weight:600}
.app-shell:not(.platform-shell) .wms-filterbar__search input{font-size:13.5px}

/* ============================================================================
   CL3 · "Aurora 2500" design system for the tenant app.
   A fresh, light, glassmorphic take on the SoftOne clean-data-grid tradition:
   airy surfaces, a restrained indigo→cyan accent used sparingly with high
   contrast, mono-inflected numerics for data rhythm, soft glows and gradient
   hairlines for a quiet futuristic register. Scoped to .app-shell:not(.platform-
   shell) so the admin console keeps its own theme. Reused components read --p-*,
   so remapping those tokens reskins the grid / wizard / drawer / combobox /
   palette in one shot.
   ========================================================================== */
.app-shell:not(.platform-shell){
  --t-bg:#eef2fb;--t-surface:#ffffff;--t-surface-2:#f4f7fd;--t-surface-3:#eef2fa;
  --t-ink:#0d1526;--t-ink-2:#33405a;--t-muted:#6a768f;
  --t-line:#e6ecf6;--t-line-2:#d6def0;
  --t-accent:#5566f6;--t-accent-2:#12c2e6;--t-accent-ink:#3f4ee0;--t-accent-soft:rgba(85,102,246,.09);
  --t-grad:linear-gradient(118deg,#5566f6 0%,#12c2e6 100%);
  --t-glass:rgba(255,255,255,.72);
  --t-focus:0 0 0 4px rgba(85,102,246,.16);
  --t-shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --t-shadow:0 12px 34px rgba(23,37,84,.10);
  --t-glow:0 8px 24px rgba(85,102,246,.26);
  --t-radius:14px;--t-radius-sm:10px;
  --t-mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,"Liberation Mono",monospace;
  /* remap the reused component tokens to the new palette */
  --p-surface:var(--t-surface);--p-surface-2:var(--t-surface-2);--p-cream:var(--t-surface);
  --p-text:var(--t-ink);--p-text-muted:var(--t-muted);
  --p-border:var(--t-line);--p-border-strong:var(--t-line-2);
  --p-teal:var(--t-accent);--p-teal-deep:var(--t-accent-ink);--p-pine:var(--t-success,#0ea672);
  --p-ink:#0d1526;--p-rail-text:#f3f6ff;--p-rail-text-muted:#aab4cc;
  --p-focus:var(--t-focus);--p-mono:var(--t-mono);
}
/* Ambient aurora background */
.app-shell:not(.platform-shell) .app-main{
  background:
    radial-gradient(1100px 460px at 100% -8%, rgba(18,194,230,.10), transparent 60%),
    radial-gradient(900px 460px at -8% 0%, rgba(85,102,246,.10), transparent 55%),
    var(--t-bg);
}
body.is-embed{background:var(--t-bg)}
.app-shell:not(.platform-shell) a{color:var(--t-accent-ink)}
.app-shell:not(.platform-shell) :focus-visible{outline:none;box-shadow:var(--t-focus)}

/* Sidebar — light frosted glass */
.app-shell:not(.platform-shell) .app-sidebar{
  background:linear-gradient(180deg, rgba(255,255,255,.9), rgba(244,247,253,.82));
  backdrop-filter:blur(16px) saturate(1.15);border-right:1px solid var(--t-line);color:var(--t-ink-2)}
.app-shell:not(.platform-shell) .sidebar-brand__logo{background:var(--t-accent-soft)}
.app-shell:not(.platform-shell) .sidebar-brand__title{color:var(--t-ink);font-weight:750;letter-spacing:-.02em}
.app-shell:not(.platform-shell) .sidebar-brand__subtitle{color:var(--t-muted)}
.app-shell:not(.platform-shell) .sidebar-section__label{color:var(--t-muted);font-family:var(--t-mono);font-size:9.5px;letter-spacing:.14em;font-weight:600}
.app-shell:not(.platform-shell) .sidebar-link{color:var(--t-ink-2);border-radius:11px;font-weight:600}
.app-shell:not(.platform-shell) .sidebar-link:hover{background:var(--t-accent-soft);color:var(--t-ink);transform:none}
.app-shell:not(.platform-shell) .sidebar-link.is-active{background:var(--t-grad);color:#fff;box-shadow:var(--t-glow)}
.app-shell:not(.platform-shell) .sidebar-link.is-active .sidebar-link__icon{opacity:1}

/* Topbar — glass */
.app-shell:not(.platform-shell) .app-topbar{background:var(--t-glass);backdrop-filter:blur(18px) saturate(1.3);border-bottom:1px solid var(--t-line)}
.app-shell:not(.platform-shell) .topbar-title__text{color:var(--t-ink)}
.app-shell:not(.platform-shell) .topbar-title__eyebrow{color:var(--t-muted);font-family:var(--t-mono);letter-spacing:.1em}
.app-shell:not(.platform-shell) .avatar{background:var(--t-accent-soft);color:var(--t-accent-ink)}
.app-shell:not(.platform-shell) .topbar-command{background:rgba(255,255,255,.7);border:1px solid var(--t-line);color:var(--t-muted);border-radius:10px}
.app-shell:not(.platform-shell) .topbar-command:hover{border-color:var(--t-accent);color:var(--t-accent-ink)}
.app-shell:not(.platform-shell) .topbar-command kbd{background:var(--t-surface-2);border:1px solid var(--t-line);color:var(--t-muted);font-family:var(--t-mono)}

/* Page header — surface card with an accent hairline */
.app-shell:not(.platform-shell) .page-header,
.app-shell:not(.platform-shell) .platform-page-header{background:var(--t-surface);border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm);position:relative;overflow:hidden;padding:16px 18px}
.app-shell:not(.platform-shell) .page-header::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--t-grad);opacity:.85}
.app-shell:not(.platform-shell) .page-header__title{color:var(--t-ink)}
.app-shell:not(.platform-shell) .page-header__description{color:var(--t-muted)}
.app-shell:not(.platform-shell) .breadcrumbs{color:var(--t-muted)}
.app-shell:not(.platform-shell) .breadcrumbs a{color:var(--t-accent-ink)}

/* Cards */
.app-shell:not(.platform-shell) .card{background:var(--t-surface);border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm)}

/* KPI bento tiles */
.app-shell:not(.platform-shell) .platform-kpi-grid{gap:12px}
.app-shell:not(.platform-shell) .platform-metric{background:var(--t-surface);border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm);padding:15px 16px;position:relative;overflow:hidden}
.app-shell:not(.platform-shell) .platform-metric::after{content:"";position:absolute;right:-34px;top:-34px;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle,var(--t-accent-soft),transparent 70%);pointer-events:none}
.app-shell:not(.platform-shell) .platform-metric strong{color:var(--t-ink);font-variant-numeric:tabular-nums}
.app-shell:not(.platform-shell) .platform-metric small{color:var(--t-muted);font-family:var(--t-mono);letter-spacing:.02em}
.app-shell:not(.platform-shell) .platform-metric span{color:var(--t-muted)}
.app-shell:not(.platform-shell) .platform-metric__icon{background:var(--t-accent-soft);color:var(--t-accent-ink);border-radius:11px}
.app-shell:not(.platform-shell) .platform-metric--warning{background:#fff9f0;border-color:#f7e2bf}
.app-shell:not(.platform-shell) .platform-metric--warning .platform-metric__icon{background:#fdedd2;color:#b06a08}

/* Data grid */
.app-shell:not(.platform-shell) .table-shell{border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm);background:var(--t-surface)}
.app-shell:not(.platform-shell) .data-table thead th{background:var(--t-surface-2);border-bottom:1px solid var(--t-line-2);color:var(--t-muted);position:sticky;top:0;z-index:1}
.app-shell:not(.platform-shell) .data-table th,
.app-shell:not(.platform-shell) .data-table td{border-bottom:1px solid var(--t-line)}
.app-shell:not(.platform-shell) .data-table td{color:var(--t-ink)}
.app-shell:not(.platform-shell) .data-table td code{font-family:var(--t-mono);color:var(--t-ink-2)}
.app-shell:not(.platform-shell) .data-table tbody tr:hover{background:var(--t-accent-soft)}
.app-shell:not(.platform-shell) .cell-muted{color:var(--t-muted)}

/* Buttons */
.app-shell:not(.platform-shell) .btn,
.app-shell:not(.platform-shell) button.btn,
.app-shell:not(.platform-shell) .button{background:var(--t-grad);color:#fff;border:1px solid transparent;box-shadow:0 6px 16px rgba(85,102,246,.20);border-radius:11px;font-weight:600}
.app-shell:not(.platform-shell) .btn:hover{transform:translateY(-1px);box-shadow:var(--t-glow)}
.app-shell:not(.platform-shell) .btn--secondary{background:var(--t-surface)!important;color:var(--t-ink)!important;border-color:var(--t-line)!important;box-shadow:var(--t-shadow-sm)!important}
.app-shell:not(.platform-shell) .btn--secondary:hover{border-color:var(--t-accent)!important;color:var(--t-accent-ink)!important}
.app-shell:not(.platform-shell) .btn--ghost{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--t-ink-2)!important}
.app-shell:not(.platform-shell) .btn--sm{padding:7px 11px;font-size:12.5px}

/* Inputs */
.app-shell:not(.platform-shell) input:not([type=checkbox]):not([type=radio]),
.app-shell:not(.platform-shell) select,
.app-shell:not(.platform-shell) textarea{background:var(--t-surface);border:1px solid var(--t-line);border-radius:10px;color:var(--t-ink)}
.app-shell:not(.platform-shell) input:focus,
.app-shell:not(.platform-shell) select:focus,
.app-shell:not(.platform-shell) textarea:focus{border-color:var(--t-accent);box-shadow:var(--t-focus);outline:none}

/* Badges + status tones (soft, high-contrast text) */
.app-shell:not(.platform-shell) .badge{background:var(--t-surface-2);color:var(--t-ink-2);border:1px solid var(--t-line);border-radius:999px;font-weight:600}
.app-shell:not(.platform-shell) .badge--success,
.app-shell:not(.platform-shell) .badge--active,
.app-shell:not(.platform-shell) .badge--completed{background:#e6f8f0;color:#0a7f57;border-color:#bfe9d6}
.app-shell:not(.platform-shell) .badge--pending,
.app-shell:not(.platform-shell) .badge--draft,
.app-shell:not(.platform-shell) .badge--processing,
.app-shell:not(.platform-shell) .badge--primary,
.app-shell:not(.platform-shell) .badge--info{background:var(--t-accent-soft);color:var(--t-accent-ink);border-color:rgba(85,102,246,.22)}
.app-shell:not(.platform-shell) .badge--warning{background:#fdf1de;color:#a8620a;border-color:#f5dcb0}
.app-shell:not(.platform-shell) .badge--danger,
.app-shell:not(.platform-shell) .badge--failed,
.app-shell:not(.platform-shell) .badge--cancelled{background:#fdeaef;color:#c02a4c;border-color:#f6cdd8}

/* Filter bar */
.app-shell:not(.platform-shell) .wms-filterbar__search input{background:var(--t-surface);border:1px solid var(--t-line);border-radius:11px}
.app-shell:not(.platform-shell) .wms-filterbar__funnel{background:var(--t-surface)!important;border:1px solid var(--t-line)!important;color:var(--t-ink-2)!important;box-shadow:var(--t-shadow-sm)!important;border-radius:11px}
.app-shell:not(.platform-shell) .wms-filterbar__funnel.has-active{border-color:var(--t-accent)!important;color:var(--t-accent-ink)!important}
.app-shell:not(.platform-shell) .wms-filterbar__count{background:var(--t-grad);color:#fff}
.app-shell:not(.platform-shell) .wms-filterbar__panel{border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow)}
.app-shell:not(.platform-shell) .filter-chip{background:var(--t-accent-soft);border:1px solid rgba(85,102,246,.22);color:var(--t-ink)}
.app-shell:not(.platform-shell) .filter-chips__clear{color:var(--t-accent-ink)}

/* Workspace tabs */
.app-shell:not(.platform-shell) .tab-strip,
body.is-workspace .tab-strip{background:linear-gradient(180deg,var(--t-surface-2),var(--t-bg));border-bottom:1px solid var(--t-line)}
body.is-workspace .tab-chip{background:var(--t-surface-3);border:1px solid var(--t-line);border-bottom:0;color:var(--t-muted)}
body.is-workspace .tab-chip:hover{background:#e7edf8;color:var(--t-ink)}
body.is-workspace .tab-chip.is-active{background:var(--t-surface);color:var(--t-ink);box-shadow:0 -2px 0 var(--t-accent) inset}
body.is-workspace .tab-stage{background:var(--t-bg)}
body.is-workspace .tab-frame{background:var(--t-surface)}

/* Action menu */
.app-shell:not(.platform-shell) .platform-action-menu__panel{border-color:var(--t-line);border-radius:12px;box-shadow:var(--t-shadow);background:var(--t-surface)}
.app-shell:not(.platform-shell) .platform-action-menu__item:hover{background:var(--t-accent-soft)}

/* Scanner heros + section titles */
.app-shell:not(.platform-shell) .wms-scan__hero strong{color:var(--t-ink)}
.app-shell:not(.platform-shell) .section-title{color:var(--t-muted)}
.app-shell:not(.platform-shell) .table-empty,
.app-shell:not(.platform-shell) .platform-empty-state{border:1px dashed var(--t-line-2);border-radius:var(--t-radius);color:var(--t-muted);background:var(--t-surface)}

/* ============================================================================
   CL3 CONSOLE — new tenant shell structure (rail + context strip + canvas).
   A ground-up layout: no wide dark sidebar, no heavy header card. A glass rail
   holds the brand, a command launcher, grouped icon-nav and a user card pinned at
   the bottom; the page lives inside a floating rounded canvas on an aurora field.
   ========================================================================== */
body.cl3{
  min-height:100vh;
  background:
    radial-gradient(1200px 540px at 100% -12%, rgba(18,194,230,.16), transparent 60%),
    radial-gradient(1050px 560px at -12% 4%, rgba(85,102,246,.16), transparent 58%),
    linear-gradient(180deg,#eef2fb,#e9eef8);
}
.cl3-shell{min-height:100vh;display:flex;align-items:stretch}

/* --- Rail --- */
.cl3-rail{position:sticky;top:0;height:100vh;width:254px;flex:none;display:flex;flex-direction:column;gap:16px;padding:18px 14px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(242,246,252,.8));backdrop-filter:blur(18px) saturate(1.2);border-right:1px solid var(--t-line);z-index:40}
.cl3-brand{display:flex;align-items:center;justify-content:center;text-decoration:none;padding:10px 4px 4px}
.cl3-brand__logo{height:84px;max-width:100%;object-fit:contain}
/* Drill-down menu */
.cl3-menu{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:5px;margin:0 -4px;padding:2px 4px}
.cl3-menu__path{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 6px}
.cl3-menu__home{background:transparent!important;border:0!important;box-shadow:none!important;color:var(--t-accent-ink)!important;font-weight:600;font-size:12.5px;padding:4px 4px!important;cursor:pointer}
.cl3-menu__home:hover{color:var(--t-accent)!important;transform:none}
.cl3-menu__crumb{font-family:var(--t-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--t-muted)}
.cl3-menu__cats,.cl3-menu__sub{display:flex;flex-direction:column;gap:4px}
.cl3-menu__cats[hidden],.cl3-menu__sub[hidden],.cl3-menu__path[hidden]{display:none}
.cl3-cat{display:flex;align-items:center;gap:11px;width:100%;padding:8px 10px;border-radius:9px;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--t-ink)!important;font-weight:600;font-size:13px;cursor:pointer;text-align:left;text-decoration:none}
.cl3-cat:hover{background:var(--t-accent-soft)!important;color:var(--t-accent-ink)!important;transform:none;text-decoration:none}
.cl3-cat.is-active{background:var(--t-grad)!important;border-color:transparent!important;color:#fff!important;box-shadow:var(--t-glow)!important}
.cl3-cat.is-active .cl3-navitem__icon{color:#fff}
.cl3-cat:hover .cl3-navitem__icon{color:var(--t-accent-ink)}
.cl3-cat__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl3-cat__count{font-family:var(--t-mono);font-size:10px;color:var(--t-muted);background:var(--t-surface-2);border-radius:999px;padding:1px 7px}
.cl3-cat__chev{color:var(--t-muted);font-size:17px;line-height:1}
.cl3-search{display:flex;align-items:center;gap:9px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--t-line)!important;background:rgba(255,255,255,.72)!important;color:var(--t-muted)!important;box-shadow:var(--t-shadow-sm)!important;cursor:pointer;font-weight:500}
.cl3-search:hover{border-color:var(--t-accent)!important;color:var(--t-accent-ink)!important;transform:none}
.cl3-search svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
.cl3-search span{flex:1;text-align:left;font-size:13px}
.cl3-search kbd{font-family:var(--t-mono);font-size:10px;background:var(--t-surface-2);border:1px solid var(--t-line);border-radius:6px;padding:2px 6px;color:var(--t-muted)}
.cl3-search--bar{width:clamp(190px,26vw,320px);padding:8px 12px}
/* --- Role dashboard --- */
.app-shell:not(.platform-shell) .dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;margin-top:16px;align-items:start}
.app-shell:not(.platform-shell) .dash-panel{margin:0;border:1px solid var(--t-line);border-radius:var(--t-radius);background:var(--t-surface);box-shadow:var(--t-shadow-sm)}
.app-shell:not(.platform-shell) .dash-panel .card__body{display:flex;flex-direction:column;gap:12px;padding:16px 18px}
.app-shell:not(.platform-shell) .dash-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--t-line)}
.app-shell:not(.platform-shell) .dash-panel__head h2{font-size:14.5px;font-weight:750;color:var(--t-ink);margin:0}
.app-shell:not(.platform-shell) .dash-panel__link{font-size:11.5px;font-weight:600;font-family:var(--t-mono);color:var(--t-accent-ink);text-decoration:none;white-space:nowrap}
.app-shell:not(.platform-shell) .dash-panel__link:hover{text-decoration:underline}
.app-shell:not(.platform-shell) .dash-panel .table-shell,.app-shell:not(.platform-shell) .dash-panel .table-responsive{border:0;box-shadow:none;margin:0}
.app-shell:not(.platform-shell) .dash-panel .table-empty{padding:22px 8px;border:1px dashed var(--t-line);border-radius:12px;background:transparent}
.app-shell:not(.platform-shell) .dash-bars{display:flex;flex-direction:column;gap:11px}
.app-shell:not(.platform-shell) .dash-bar{display:grid;grid-template-columns:minmax(90px,140px) 1fr auto;align-items:center;gap:12px}
.app-shell:not(.platform-shell) .dash-bar__track{height:8px;border-radius:999px;background:var(--t-surface-2);overflow:hidden}
.app-shell:not(.platform-shell) .dash-bar__fill{display:block;height:100%;border-radius:999px;background:var(--t-grad)}
.app-shell:not(.platform-shell) .dash-bar__count{font-weight:800;font-variant-numeric:tabular-nums;color:var(--t-ink);min-width:2ch;text-align:right}
/* Colored-top KPI cards (finance-dashboard aesthetic, our palette). */
.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:4px 0 2px}
.dash-kpi{position:relative;background:var(--t-surface);border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm);padding:17px 18px 15px;overflow:hidden;display:flex;flex-direction:column;gap:7px}
.dash-kpi::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--kpi-c,var(--t-accent))}
.dash-kpi__head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dash-kpi__label{font-size:13px;font-weight:650;color:var(--t-muted)}
.dash-kpi__icon{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:14px;flex:none;background:color-mix(in srgb,var(--kpi-c,var(--t-accent)) 15%,transparent);color:var(--kpi-c,var(--t-accent))}
.dash-kpi__value{font-size:30px;font-weight:850;color:var(--t-ink);font-variant-numeric:tabular-nums;line-height:1.05}
.dash-kpi__meta{font-size:11.5px;color:var(--t-muted)}
.dash-kpi--primary{--kpi-c:var(--t-accent)}
.dash-kpi--success{--kpi-c:#16a34a}
.dash-kpi--info{--kpi-c:#2563eb}
.dash-kpi--violet{--kpi-c:#7c3aed}
.dash-kpi--gold{--kpi-c:#d99a06}
.dash-kpi--danger{--kpi-c:#dc2626}
/* Dashboard info strip (warehouse scope + date + persona + actions). */
.dash-topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:14px;background:var(--t-surface);border:1px solid var(--t-line);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm)}
.dash-topbar__wh{display:flex;align-items:center;gap:8px;margin:0}
.dash-topbar__wh-label{font-size:12px;font-weight:650;color:var(--t-muted)}
.dash-topbar__wh select{padding:7px 10px;border:1px solid var(--t-line);border-radius:9px;background:var(--t-surface-2);color:var(--t-ink);font-weight:600;font-size:13px}
.dash-topbar__persona{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--t-accent-ink);background:var(--t-accent-soft);border-radius:999px;padding:5px 11px}
.dash-topbar__spacer{flex:1;min-width:8px}
.dash-topbar__date{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--t-muted)}
.dash-topbar__actions{display:flex;gap:8px;flex-wrap:wrap}
.cl3-nav{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:15px;margin:0 -4px;padding:2px 4px}
.cl3-navgroup{display:flex;flex-direction:column;gap:3px}
.cl3-navgroup__label{font-family:var(--t-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--t-muted);padding:2px 10px 4px}
.cl3-navitem{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:11px;color:var(--t-ink-2);text-decoration:none;font-weight:600;font-size:13px;transition:background .14s ease,color .14s ease}
.cl3-navitem:hover{background:var(--t-accent-soft);color:var(--t-ink);text-decoration:none}
.cl3-navitem.is-active{background:var(--t-grad);color:#fff;box-shadow:var(--t-glow)}
.cl3-navitem__icon{display:grid;place-items:center;width:19px;height:19px;font-size:15px;line-height:1;flex:none;color:var(--t-muted);transition:color .14s ease}
.cl3-navitem:hover .cl3-navitem__icon{color:var(--t-accent-ink)}
.cl3-navitem.is-active .cl3-navitem__icon{color:#fff}
.cl3-userchip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:14px;border:1px solid var(--t-line);background:var(--t-surface);box-shadow:var(--t-shadow-sm)}
.cl3-userchip__avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--t-grad);color:#fff;font-weight:750;flex:none}
.cl3-userchip__meta{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.cl3-userchip__meta b{font-size:12.5px;font-weight:650;color:var(--t-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl3-userchip__meta small{font-size:10px;color:var(--t-muted);font-family:var(--t-mono)}
.cl3-userchip__out{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:9px;border:1px solid var(--t-line);color:var(--t-muted);text-decoration:none;font-size:11.5px;font-weight:650;flex:none}
.cl3-userchip__out svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cl3-userchip__out span{display:none}
.cl3-userchip__out:hover{background:var(--t-danger-soft,rgba(220,38,38,.1));border-color:var(--t-danger,#dc2626);color:var(--t-danger,#dc2626)}

/* --- Frame + context + canvas --- */
.cl3-frame{flex:1;min-width:0;display:flex;flex-direction:column;padding:12px 14px 16px}
.cl3-context{display:flex;align-items:center;justify-content:space-between;gap:12px;height:46px;padding:0 4px}
.cl3-context__start,.cl3-context__end{display:flex;align-items:center;gap:10px}
.cl3-iconbtn{display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:10px;border:1px solid var(--t-line)!important;background:rgba(255,255,255,.72)!important;color:var(--t-ink-2)!important;box-shadow:none!important;font-size:14px;cursor:pointer}
.cl3-iconbtn--cmd{width:auto;padding:0 11px;font-family:var(--t-mono);font-size:11.5px;font-weight:600}
.cl3-iconbtn:hover{border-color:var(--t-accent)!important;color:var(--t-accent-ink)!important;transform:none}
.cl3-context__live{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--t-muted)}
.cl3-dot{width:7px;height:7px;border-radius:50%;background:var(--t-accent-2);box-shadow:0 0 0 3px rgba(18,194,230,.18)}
.cl3-chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;color:var(--t-ink-2);background:rgba(255,255,255,.7);border:1px solid var(--t-line);border-radius:999px;padding:5px 11px}
.cl3-canvas{flex:1;min-height:0;overflow:auto;background:var(--t-surface);border:1px solid var(--t-line);border-radius:20px;box-shadow:var(--t-shadow);padding:22px 24px}
.cl3-canvas .app-content{max-width:none}

/* Flush, compact page header on the canvas (no card, no accent hairline) */
body.cl3 .page-header,body.cl3 .platform-page-header{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0 0 4px!important}
body.cl3 .page-header::after{display:none}
body.cl3 .page-header__title{font-size:20px}
body.cl3 .platform-page{gap:16px}

/* Sticky grid headers stick to the canvas scroll container */
body.cl3 .data-table thead th{top:0}

/* Mobile toggle only appears on small screens */
@media(min-width:1025px){.cl3-context .cl3-iconbtn[data-sidebar-toggle]{display:none}}

/* Workspace: the canvas holds the full-height tab surface, locked to the viewport
   so nothing scrolls outside the iframe (no stray outer scrollbar). */
html:has(body.cl3.is-workspace),body.cl3.is-workspace{height:100%;overflow:hidden}
body.cl3.is-workspace .cl3-shell{height:100vh;overflow:hidden}
body.cl3.is-workspace .cl3-canvas{padding:0;overflow:hidden;display:flex}
body.cl3.is-workspace .cl3-canvas .app-content{display:flex;flex:1;min-height:0}

/* Tab strip: chips sit at a uniform height, centered on their own row (no
   folder-tab overhang). The strip's horizontal scrollbar is hidden. */
.app-shell:not(.platform-shell) .tab-strip{align-items:center;padding:7px 10px;gap:5px;overflow-x:auto;scrollbar-width:none}
.app-shell:not(.platform-shell) .tab-strip::-webkit-scrollbar{display:none}
body.cl3.is-workspace .tab-chip{top:0;height:34px;border:1px solid var(--t-line);border-radius:9px;background:var(--t-surface-3);color:var(--t-muted);box-shadow:none}
body.cl3.is-workspace .tab-chip:hover{background:#e7edf8;color:var(--t-ink)}
body.cl3.is-workspace .tab-chip.is-active{background:var(--t-surface);color:var(--t-ink);border-color:var(--t-accent);box-shadow:none}

/* Mobile: rail becomes an off-canvas drawer */
.mobile-sidebar-backdrop{position:fixed;inset:0;background:rgba(13,21,38,.42);z-index:50;display:none}
body.cl3.sidebar-open .mobile-sidebar-backdrop{display:block}
@media(max-width:1024px){
  .cl3-rail{position:fixed;top:0;left:0;transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--t-shadow)}
  body.cl3.sidebar-open .cl3-rail{transform:none}
  .cl3-frame{padding:10px}
  .cl3-canvas{border-radius:16px;padding:16px}
}

/* Dashboard home */
body.cl3 .dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body.cl3 .dash-panel{margin:0}
body.cl3 .dash-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
body.cl3 .dash-panel__head h2{font-size:14px;font-weight:650;color:var(--t-ink)}
body.cl3 .dash-panel__link{font-size:12px;font-weight:600;color:var(--t-accent-ink);white-space:nowrap}
body.cl3 .dash-panel .table-shell{margin-top:0}
body.cl3 .dash-panel .platform-grid__toolbar,body.cl3 .dash-panel .platform-grid__pager{display:none}
body.cl3 .dash-bars{display:flex;flex-direction:column;gap:10px}
body.cl3 .dash-bar{display:grid;grid-template-columns:130px 1fr 34px;align-items:center;gap:10px}
body.cl3 .dash-bar__track{height:8px;border-radius:999px;background:var(--t-surface-2);overflow:hidden}
body.cl3 .dash-bar__fill{display:block;height:100%;background:var(--t-grad);border-radius:999px}
body.cl3 .dash-bar__count{font-family:var(--t-mono);font-size:12px;color:var(--t-ink-2);text-align:right}
@media(max-width:900px){body.cl3 .dash-grid{grid-template-columns:1fr}}
body.cl3 .profile-tags{display:flex;flex-wrap:wrap;gap:7px}

/* ERP-style document entry form (SoftOne/Entersoft saldoc view): ONE flat
   surface — a top action toolbar, then header fields, tabs, line grid and
   totals, separated by thin rules rather than nested cards. */
.erp-doc{background:var(--color-surface);border:0;border-radius:0;box-shadow:none;overflow:hidden}
/* The document form fills its workspace tab edge-to-edge: drop the wrapping
   .app-content inset so there is no padded, rounded card around it. */
.app-content:has(> .erp-doc){padding:0;max-width:none}
.erp-doc__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--color-line);background:var(--color-surface-2)}
.erp-doc__bar-start{display:flex;align-items:center;gap:10px;min-width:0}
.erp-doc__bar-end{display:flex;align-items:center;gap:8px}
.erp-doc__back{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-md);border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-text);font-size:16px;font-weight:900;text-decoration:none}
.erp-doc__back:hover{border-color:var(--color-primary);color:var(--color-primary);text-decoration:none}
.erp-doc__title{margin:0;font-size:15px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-doc__body{padding:12px 14px;display:grid;gap:12px}
/* Compact field controls throughout the document form. Match every control —
   incl. bare <input> (no type attr) and datetime-local — so every tab
   (Βασικά, Διακίνηση …) is equally dense, not just the typed/select fields. */
.erp-doc select,.erp-doc textarea,.erp-doc input:not([type=hidden]):not([type=checkbox]):not([type=radio]){padding:5px 9px;font-size:13px;min-height:32px}
.erp-doc textarea{min-height:52px}
.erp-doc .form-label{font-size:11px;font-weight:800;letter-spacing:.02em;margin-bottom:3px}
.erp-doc__header{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 16px;padding-bottom:12px;border-bottom:1px solid var(--color-line)}
.erp-doc__hcell{display:grid;gap:4px;font-weight:700;margin:0}
.erp-doc__hlabel{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}
.erp-doc__hcell label{margin:0}
.erp-doc__tabbar{display:flex;gap:2px;flex-wrap:wrap;border-bottom:2px solid var(--color-line)}
.erp-doc__tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;box-shadow:none;color:var(--color-muted);cursor:pointer;font-weight:800;font-size:13px;margin-bottom:-2px;padding:7px 13px;border-radius:0}
.erp-doc__tab:hover{color:var(--color-text);background:none;box-shadow:none;transform:none}
.erp-doc__tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}
.erp-doc__panel{margin-top:-2px}
.erp-doc__panel[hidden]{display:none}
.erp-doc__grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}
.erp-doc__grid>label,.erp-doc__grid>.form-group{margin:0}
.erp-doc__grid>.erp-doc__full{grid-column:1 / -1}
.erp-doc__ro{background:#f2f4f7;color:var(--color-muted);font-weight:800}
@media (max-width:720px){.erp-doc__grid{grid-template-columns:1fr}}
.erp-doc__lines{display:grid;gap:8px}
.erp-doc__lines-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.erp-doc__lines-head h2{margin:0;font-size:14px}
.erp-doc__grid-table{font-size:13px}
.erp-doc__grid-table th{padding:6px 8px;font-size:11px}
.erp-doc__grid-table td{padding:4px 8px}
.erp-doc__grid-table td input,.erp-doc__grid-table td select{margin:0;min-height:30px;padding:4px 7px;font-size:13px}
.erp-doc__grid-table tbody:empty::after{content:"Δεν έχουν προστεθεί είδη. Πατήστε «+ Προσθήκη» ή σαρώστε barcode.";display:block;color:var(--color-muted);padding:12px;font-weight:600;font-size:13px}
.erp-doc__line-remove{appearance:none;border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-danger);border-radius:var(--radius-sm);width:26px;height:26px;line-height:1;cursor:pointer;font-weight:900;box-shadow:none}
.erp-doc__line-remove:hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}
.erp-doc__lines-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.erp-doc__scan-input{max-width:320px}
.erp-modal{position:fixed;inset:0;z-index:80;background:rgba(16,24,40,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.erp-modal[hidden]{display:none}
.erp-modal__win{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:min(860px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.erp-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-line)}
.erp-modal__head h3{margin:0;font-size:16px}
.erp-modal__close{appearance:none;border:0;background:none;box-shadow:none;font-size:22px;line-height:1;cursor:pointer;color:var(--color-muted);padding:4px 8px}
.erp-modal__search{margin:12px 18px 0}
.erp-modal__body{overflow:auto;padding:12px 18px 18px}
.erp-modal__body .data-table tbody tr{cursor:pointer}
.erp-doc__totals{display:flex;gap:22px;flex-wrap:wrap;justify-content:flex-end;border-top:1px solid var(--color-line);padding-top:12px}
.erp-doc__total{display:grid;gap:2px;text-align:right}
.erp-doc__total-label{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}
.erp-doc__total-value{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums}
