/* © 2026 FACILenjoy IoT */

/* FACILenjoy central theme: locally hosted fonts and approved brand palette. */
@font-face {
  font-family: "Glacial Indifference";
  src: url("/assets/fonts/GlacialIndifference-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/Roboto-Variable-Latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 100%;
  font-display: swap;
}

/* Source: index-RuzHzXv4.css */
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.flex{display:flex}.hidden{display:none}.table{display:table}.resize{resize:both}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#172129;--ink-soft:#707070;--muted:#707070;--line:#dfdfdf;--panel:#fff;--canvas:#f5f7f7;--orange:#ee0000;--orange-dark:#c10005;--orange-soft:#dfdfdf;--green:#2a9d67;--green-soft:#e8f7ef;--blue:#3478c5;--blue-soft:#eaf3fc;--red:#c10005;--red-soft:#dfdfdf}*{box-sizing:border-box}html{background:var(--canvas);color:var(--ink)}body{-webkit-font-smoothing:antialiased;min-width:320px;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{color:inherit}.brand{color:var(--ink);align-items:center;gap:10px;display:flex}.brand__mark{background:var(--orange);border-radius:11px;place-items:center;width:34px;height:34px;display:grid;position:relative;box-shadow:0 7px 18px #ee000038}.brand__mark span{background:#fff;border-radius:10px;width:4px;position:absolute;transform:rotate(18deg)}.brand__mark span:first-child{height:10px;top:13px;left:9px}.brand__mark span:nth-child(2){height:18px;top:8px;left:15px}.brand__mark span:nth-child(3){height:13px;top:11px;left:21px}.brand__name{letter-spacing:-.7px;font-size:23px}.brand__name strong{color:var(--orange);font-weight:800}.brand__product{border-left:1px solid var(--line);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding-left:10px;font-size:13px;font-weight:700}.brand--compact .brand__mark{border-radius:9px;width:31px;height:31px}.brand--compact .brand__name{font-size:20px}.login-page{background:#fbfcfc;grid-template-rows:auto 1fr auto;min-height:100vh;display:grid;overflow:hidden}.login-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:5;background:#ffffffe6;border-bottom:1px solid #dee3e5d9;justify-content:space-between;align-items:center;min-height:82px;padding:0 4vw;display:flex}.secure-label{color:#68757d;align-items:center;gap:9px;font-size:13px;font-weight:650;display:flex}.secure-label__dot{background:var(--green);width:8px;height:8px;box-shadow:0 0 0 4px var(--green-soft);border-radius:50%}.login-main{grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);display:grid}.login-story{background:radial-gradient(circle at 60% 76%,#ee000017,#0000 26%),linear-gradient(135deg,#f7f9f8 0%,#edf2f1 100%);padding:clamp(58px,7vh,92px) clamp(48px,7vw,112px) 54px;position:relative;overflow:hidden}.login-story:before{content:"";border:1px solid #ee00001f;border-radius:50%;width:470px;height:470px;position:absolute;top:-250px;right:-235px;box-shadow:0 0 0 72px #ffffff2e,0 0 0 144px #ffffff21}.eyebrow{color:var(--orange-dark);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;font-size:13px;font-weight:800;display:flex;position:relative}.eyebrow span{background:var(--orange);width:25px;height:2px}.login-story h1{color:#172228;letter-spacing:-.055em;max-width:680px;margin:22px 0 18px;font-size:clamp(43px,4.1vw,67px);font-weight:760;line-height:1.02;position:relative}.login-story h1 em{color:var(--orange);font-style:normal;display:block}.login-story__intro{color:#5d6b72;max-width:600px;margin:0;font-size:clamp(17px,1.15vw,20px);line-height:1.75;position:relative}.benefit-row{gap:34px;margin-top:36px;display:flex;position:relative}.benefit{align-items:center;gap:11px;display:flex}.benefit__symbol{width:34px;height:34px;color:var(--orange);background:#ffffffb3;border:1px solid #ee00002e;border-radius:10px;place-items:center;font-size:13px;font-weight:900;display:grid}.benefit div{flex-direction:column;gap:3px;display:flex}.benefit strong{font-size:13px}.benefit small{color:#7c898f;white-space:nowrap;font-size:11px}.machine-scene{width:min(620px,90%);height:300px;margin:40px auto -25px;position:relative}.machine-glow{background:radial-gradient(circle,#ee00002b,#ee000000 68%);border-radius:50%;width:260px;height:260px;position:absolute;bottom:-16px;left:50%;transform:translate(-50%)}.machine-card{background:linear-gradient(145deg,#fdfefe,#dfe6e5);border:1px solid #9da8ab66;border-radius:19px 19px 12px 12px;width:164px;height:226px;padding:13px;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 28px 45px #2b373b2b,inset 0 0 0 5px #ffffffbf}.machine-card__top{background:#202b30;border-radius:10px;justify-content:space-between;align-items:center;padding:8px;display:flex}.machine-card__screen{gap:3px;display:flex}.machine-card__screen i{background:var(--orange);border-radius:50%;width:4px;height:4px;display:block}.machine-card__status{color:#b9e9d0;letter-spacing:.09em;text-transform:uppercase;font-size:10px}.machine-card__body{background:linear-gradient(#bec7c8,#ecf0ef);border-radius:8px;height:128px;margin-top:9px;position:relative;box-shadow:inset 0 7px 18px #28333614}.machine-card__spout{background:#39464b;border-radius:3px 3px 8px 8px;width:34px;height:16px;position:absolute;top:15px;left:50%;transform:translate(-50%)}.machine-card__spout:after{content:"";background:linear-gradient(#8a552f,#4a2d1c);border-radius:4px;width:4px;height:27px;position:absolute;top:13px;left:50%;transform:translate(-50%)}.machine-card__cup{background:#ffffff73;border:4px solid #fff;border-top:0;border-radius:4px 4px 14px 14px;width:47px;height:35px;position:absolute;bottom:19px;left:50%;transform:translate(-50%);box-shadow:16px -1px 0 -10px #fff}.machine-card__tray{background:repeating-linear-gradient(90deg,#829093 0 3px,#4e5c60 3px 5px);border-radius:4px 4px 8px 8px;height:13px;margin-top:7px}.metric-float{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;border:1px solid #dae0e1e6;border-radius:13px;align-items:center;gap:10px;min-width:150px;padding:11px 13px;display:flex;position:absolute;box-shadow:0 14px 28px #3343461c}.metric-float--top{top:37px;left:7%}.metric-float--bottom{bottom:45px;right:5%}.metric-float div{flex-direction:column;gap:2px;display:flex}.metric-float small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.metric-float strong{font-size:11px}.metric-float__dot{background:var(--green);width:9px;height:9px;box-shadow:0 0 0 4px var(--green-soft);border-radius:50%}.metric-float__icon{width:27px;height:27px;color:var(--orange);background:var(--orange-soft);border-radius:8px;place-items:center;font-weight:800;display:grid}.signal{background:var(--orange);border-radius:50%;width:7px;height:7px;position:absolute;box-shadow:0 0 0 5px #ee00001a}.signal:before{content:"";transform-origin:100%;background:linear-gradient(90deg,#ee00000f,#ee000059);width:85px;height:1px;position:absolute;top:3px;right:7px}.signal--one{top:112px;left:26%}.signal--one:before{transform:rotate(-20deg)}.signal--two{top:80px;right:25%}.signal--two:before{transform-origin:0;left:7px;right:auto;transform:rotate(25deg)}.signal--three{bottom:46px;right:25%}.signal--three:before{transform-origin:0;left:7px;right:auto;transform:rotate(-15deg)}.login-panel{background:#fff;flex-direction:column;justify-content:center;align-items:center;padding:44px clamp(28px,5vw,88px);display:flex}.login-card{border:1px solid var(--line);background:#fff;border-radius:24px;width:min(440px,100%);padding:38px 40px 30px;box-shadow:0 22px 55px #2332391a}.login-card__heading{margin-bottom:27px}.login-card__kicker{color:var(--orange);letter-spacing:.11em;text-transform:uppercase;font-size:12px;font-weight:800}.login-card h2{letter-spacing:-.035em;margin:8px 0 9px;font-size:29px}.login-card__heading p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.login-form{flex-direction:column;display:flex}.login-form label{color:#38464c;margin:0 0 8px;font-size:13px;font-weight:750}.label-row{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.label-row label{margin:0}.label-row span{color:#9aa3a8;font-size:11px}.input-wrap{position:relative}.input-wrap input{width:100%;height:49px;color:var(--ink);background:#fbfcfc;border:1px solid #dce2e4;border-radius:11px;outline:none;padding:0 80px 0 42px;font-size:14px;transition:all .2s}.input-wrap input:focus{border-color:var(--orange);background:#fff;box-shadow:0 0 0 4px #ee00001a}.input-wrap input::placeholder{color:#aab2b6}.input-icon{z-index:1;color:#849198;text-align:center;width:20px;font-size:15px;font-weight:700;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.input-icon--lock{color:#0000;border:2px solid #849198;border-radius:3px;width:14px;height:14px;left:16px}.input-icon--lock:before{content:"";border:2px solid #849198;border-bottom:0;border-radius:8px 8px 0 0;width:8px;height:7px;position:absolute;top:-7px;left:1px}.password-toggle{color:var(--orange-dark);cursor:pointer;background:0 0;border:0;padding:7px 8px;font-size:11px;font-weight:750;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.form-error{color:#c10005;background:#dfdfdf;border:1px solid #dfdfdf;border-radius:10px;align-items:flex-start;gap:9px;margin-top:15px;padding:11px 12px;font-size:12px;line-height:1.5;display:flex}.form-error span{color:#fff;background:var(--red);border-radius:50%;flex:none;place-items:center;width:17px;height:17px;font-size:11px;font-weight:900;display:grid}.login-submit{color:#fff;background:linear-gradient(135deg,var(--orange),#ee0000);cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:14px;width:100%;height:50px;margin-top:23px;font-size:13px;font-weight:800;transition:all .2s;display:flex;box-shadow:0 11px 22px #ee00003b}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #ee00004a}.login-submit:disabled{opacity:.7;cursor:wait}.button-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}.login-card__support{color:#8b969b;text-align:center;border-top:1px solid #edf0f1;margin-top:24px;padding-top:20px;font-size:11px}.login-card__support a{color:var(--orange-dark);font-weight:700;text-decoration:none}.privacy-note{color:#9aa4a8;text-align:center;max-width:390px;margin:20px auto 0;font-size:10px;line-height:1.6}.login-footer{border-top:1px solid var(--line);color:#929da2;background:#fff;justify-content:space-between;align-items:center;min-height:46px;padding:0 4vw;font-size:10px;display:flex}.login-footer strong{color:var(--green);font-weight:750}.loading-screen{background:linear-gradient(135deg,#fbfcfc,#eef2f1);place-content:center;justify-items:center;gap:22px;min-height:100vh;display:grid}.loading-screen p{color:var(--muted);margin:0;font-size:13px}.loading-spinner{border:3px solid #e7eaea;border-top-color:var(--orange);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-shell{background:var(--canvas);grid-template-columns:228px 1fr;min-height:100vh;display:grid}.sidebar{z-index:10;background:#fff;border-right:1px solid #e5e9ea;flex-direction:column;width:228px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar__brand{border-bottom:1px solid #edf0f1;align-items:center;height:72px;padding:0 25px;display:flex}.sidebar nav{padding:23px 14px}.nav-label{color:#a0aaae;letter-spacing:.14em;text-transform:uppercase;margin:0 11px 9px;font-size:10px;font-weight:800;display:block}.nav-label--second{margin-top:25px}.nav-item{color:#66737a;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;height:42px;margin:2px 0;padding:0 11px;font-size:13px;font-weight:650;display:flex}.nav-item span{color:#879298;background:#f2f4f4;border-radius:7px;place-items:center;width:24px;height:24px;font-size:10px;font-weight:850;display:grid}.nav-item:hover{color:var(--ink);background:#f7f8f8}.nav-item--active{color:var(--orange-dark);background:var(--orange-soft)}.nav-item--active span{color:#fff;background:var(--orange)}.sidebar__status{background:#f8fbf9;border:1px solid #e7eeea;border-radius:10px;align-items:center;gap:10px;margin:auto 15px 17px;padding:12px;display:flex}.sidebar__status-dot{background:var(--green);width:8px;height:8px;box-shadow:0 0 0 4px var(--green-soft);border-radius:50%;flex:none}.sidebar__status div{flex-direction:column;gap:2px;display:flex}.sidebar__status strong{font-size:11px}.sidebar__status small{color:#8b9691;font-size:10px}.dashboard-main{grid-column:2;min-width:0}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:9;background:#ffffffeb;border-bottom:1px solid #e4e8e9;justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.breadcrumb{color:#7d898e;align-items:center;gap:8px;font-size:12px;display:flex}.breadcrumb span{color:var(--orange-dark);font-weight:750}.breadcrumb b{color:#c6ccce}.topbar__actions{align-items:center;gap:13px;display:flex}.icon-button{cursor:pointer;background:#fff;border:1px solid #e1e6e7;border-radius:9px;place-items:center;width:34px;height:34px;display:grid;position:relative}.icon-button span{background:var(--orange);border:2px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.user-menu{border-left:1px solid #e7eaeb;align-items:center;gap:9px;padding-left:13px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#26363c,#4c6067);border-radius:10px;place-items:center;width:34px;height:34px;font-size:10px;font-weight:800;display:grid}.user-menu div{flex-direction:column;gap:2px;min-width:120px;display:flex}.user-menu strong{font-size:12px}.user-menu small{color:var(--muted);font-size:10px}.logout-button{color:#7c878c;cursor:pointer;background:#f3f5f5;border:0;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:750}.logout-button:hover{color:var(--orange-dark);background:var(--orange-soft)}.mobile-brand{display:none}.dashboard-content{width:min(100%,1460px);margin:0 auto;padding:31px 32px 19px}.welcome-row{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:25px;display:flex}.dashboard-eyebrow{color:var(--orange);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:850}.welcome-row h1{letter-spacing:-.035em;margin:6px 0;font-size:28px}.welcome-row p{color:var(--muted);margin:0;font-size:13px}.primary-action{color:#fff;background:var(--orange);cursor:pointer;border:0;border-radius:9px;align-items:center;gap:8px;height:38px;padding:0 14px;font-size:11px;font-weight:780;display:flex;box-shadow:0 7px 18px #ee000033}.primary-action span{font-size:16px;font-weight:400}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.stat-card{background:#fff;border:1px solid #e2e7e8;border-radius:13px;padding:17px 18px 15px;box-shadow:0 4px 12px #303e4306}.stat-card__top{justify-content:space-between;align-items:center;display:flex}.stat-card__top small{color:#7f8b90;font-size:11px;font-weight:700}.stat-icon{border-radius:8px;place-items:center;width:27px;height:27px;font-size:10px;font-weight:850;display:grid}.stat-icon--orange{color:var(--orange);background:var(--orange-soft)}.stat-icon--green{color:var(--green);background:var(--green-soft)}.stat-icon--red{color:var(--red);background:var(--red-soft)}.stat-icon--blue{color:var(--blue);background:var(--blue-soft)}.stat-card>strong{letter-spacing:-.04em;margin:13px 0 6px;font-size:28px;display:block}.stat-card p{color:#8b969b;align-items:center;gap:6px;margin:0;font-size:11px;display:flex}.status-dot{border-radius:50%;width:6px;height:6px}.status-dot--green{background:var(--green)}.status-dot--muted{background:#bac2c5}.dashboard-grid{grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr);gap:13px;margin-top:13px;display:grid}.panel{background:#fff;border:1px solid #e2e7e8;border-radius:13px;min-height:335px;padding:20px}.panel__heading{border-bottom:1px solid #edf0f1;justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.panel__heading span{color:var(--orange);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:850}.panel__heading h2{margin:4px 0 0;font-size:17px}.panel__heading button{color:var(--orange-dark);cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:750}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:440px;height:250px;margin:0 auto;display:flex}.empty-state__machine{background:#f8fafa;border:2px solid #d8dfe0;border-radius:9px;width:48px;height:55px;margin-bottom:14px;position:relative}.empty-state__machine span:first-child{background:#dce2e3;border-radius:3px;width:28px;height:9px;position:absolute;top:7px;left:8px}.empty-state__machine span:nth-child(2){background:#adb8bb;border-radius:2px;width:10px;height:11px;position:absolute;top:23px;left:17px}.empty-state__machine i{border-top:2px solid var(--orange);width:22px;height:10px;position:absolute;bottom:5px;left:11px}.empty-state h3{margin:0 0 6px;font-size:16px}.empty-state p{color:#879298;max-width:390px;margin:0;font-size:12px;line-height:1.6}.empty-state button{color:var(--orange-dark);background:var(--orange-soft);cursor:pointer;border:1px solid #dfdfdf;border-radius:8px;align-items:center;gap:7px;margin-top:14px;padding:8px 11px;font-size:11px;font-weight:780;display:flex}.activity-panel{min-width:0}.activity-item{border-bottom:1px solid #eef1f2;align-items:center;gap:11px;padding:16px 0;display:flex}.activity-icon{width:29px;height:29px;color:var(--green);background:var(--green-soft);border-radius:8px;flex:none;place-items:center;font-size:10px;font-weight:850;display:grid}.activity-icon--soft{color:var(--blue);background:var(--blue-soft)}.activity-item div{min-width:0}.activity-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.activity-item p{color:#929ca1;margin:4px 0 0;font-size:10px}.activity-empty{color:#8d989c;background:#f7f9f9;border-radius:8px;margin-top:16px;padding:11px;font-size:11px;line-height:1.5}.dashboard-footer{color:#9ba4a8;justify-content:space-between;align-items:center;padding-top:17px;font-size:10px;display:flex}@media (width<=1100px){.login-main{grid-template-columns:1fr 430px}.login-story{padding-left:50px;padding-right:40px}.benefit-row{gap:15px}.benefit small{display:none}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.login-header{min-height:70px}.login-main{display:block}.login-story{text-align:center;padding:44px 28px 25px}.eyebrow{justify-content:center}.login-story h1{margin-left:auto;margin-right:auto;font-size:clamp(38px,10vw,53px)}.login-story__intro{margin:0 auto}.benefit-row{justify-content:center}.machine-scene{height:220px;margin-top:20px}.machine-card{width:125px;height:176px}.machine-card__body{height:91px}.metric-float--top{left:0}.metric-float--bottom{right:0}.login-panel{padding-top:34px;padding-bottom:42px}.dashboard-shell{display:block}.sidebar{display:none}.dashboard-main{width:100%}.mobile-brand{display:block}.breadcrumb{display:none}.dashboard-grid{grid-template-columns:1fr}}@media (width<=560px){.brand__product,.secure-label{display:none}.login-story{padding:36px 20px 15px}.login-story h1{font-size:37px}.login-story__intro{font-size:15px}.benefit-row{align-items:center;gap:10px}.benefit{flex-direction:column}.benefit div{text-align:center}.machine-scene{width:100%}.metric-float{min-width:130px;padding:9px}.login-panel{padding:28px 15px 40px}.login-card{border-radius:18px;padding:29px 23px 24px}.login-footer{padding:0 20px}.topbar{height:64px;padding:0 15px}.icon-button,.user-menu div{display:none}.user-menu{border:0;padding-left:0}.dashboard-content{padding:25px 16px 16px}.welcome-row{flex-direction:column;align-items:flex-start}.stat-grid{grid-template-columns:1fr}.panel{padding:17px}.dashboard-footer{gap:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}


/* Source: machine-v1.css */
.nav-item--disabled {
  cursor: not-allowed;
  opacity: .52;
}

.nav-item--disabled:hover {
  color: #66737a;
  background: transparent;
}

.nav-soon {
  color: #a0aaae;
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
}

.app-alert {
  color: #c10005;
  background: #dfdfdf;
  border: 1px solid #dfdfdf;
  border-radius: 10px;
  margin-bottom: 18px;
  padding: 12px 14px;
  font-size: 12px;
}

.machine-list {
  display: flex;
  flex-direction: column;
}

.machine-row {
  display: grid;
  grid-template-columns: minmax(210px, 1.4fr) minmax(120px, .9fr) minmax(130px, .9fr) 80px 86px;
  gap: 16px;
  align-items: center;
  min-height: 72px;
  border-bottom: 1px solid #edf0f1;
}

.machine-row:last-child {
  border-bottom: 0;
}

.machine-row__identity {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.machine-row__identity > div,
.machine-row__metric {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 3px;
}

.machine-row__identity strong,
.machine-row__metric strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.machine-row__identity small,
.machine-row__metric small {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.machine-row__icon {
  display: grid;
  flex: none;
  width: 32px;
  height: 32px;
  color: var(--orange);
  background: var(--orange-soft);
  border-radius: 9px;
  place-items: center;
  font-size: 10px;
  font-weight: 850;
}

.machine-row__icon--photo {
  position: relative;
  width: 42px;
  height: 46px;
  padding: 2px;
  background: #f4f6f6;
  border: 1px solid #dfe4e5;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 9px rgba(35, 45, 50, 0.09);
}

.machine-row__icon--photo img {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 50px;
  max-width: none;
  height: 58px;
  object-fit: contain;
  transform: translate(-50%, -50%);
}

.status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 999px;
  min-height: 25px;
  padding: 0 9px;
  font-size: 10px;
  font-weight: 750;
}

.status-badge i,
.live-indicator i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.status-badge--online {
  color: #207b51;
  background: var(--green-soft);
}

.status-badge--online i,
.live-indicator i {
  background: var(--green);
}

.status-badge--pending {
  color: var(--orange-dark);
  background: var(--orange-soft);
}

.status-badge--pending i {
  background: var(--orange);
}

.status-badge--offline {
  color: #707c82;
  background: #f0f3f3;
}

.status-badge--offline i {
  background: #9da8ac;
}

.machines-panel {
  min-height: 410px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 13px;
  padding: 0 20px 16px;
}

.machines-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 70px;
  border-bottom: 1px solid #edf0f1;
}

.machines-panel__header > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.machines-panel__header strong {
  font-size: 14px;
}

.machines-panel__header small {
  color: var(--muted);
  font-size: 10px;
}

.live-indicator {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #207b51;
  font-size: 10px;
  font-weight: 750;
}

.empty-state--large {
  height: 330px;
}

.activity-placeholder {
  color: #9aa4a8;
  background: #f6f8f8;
  border-radius: 9px;
  margin-top: 18px;
  padding: 14px;
  font-size: 10px;
  line-height: 1.5;
}

.modal-backdrop {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(19, 29, 34, .48);
  backdrop-filter: blur(5px);
}

.modal {
  position: relative;
  width: min(590px, 100%);
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
  background: #fff;
  border: 1px solid #dce2e4;
  border-radius: 18px;
  padding: 28px;
  box-shadow: 0 30px 90px rgba(20, 31, 36, .24);
}

.organization-modal {
  width: min(680px, 100%);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}

.organization-modal__section {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 2px;
  border-top: 1px solid #e6eaec;
  padding-top: 14px;
}

.organization-modal__section span {
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.organization-modal__section small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
}

.modal h2 {
  margin: 6px 0 8px;
  letter-spacing: -.025em;
  font-size: 24px;
}

.modal__intro {
  max-width: 480px;
  color: var(--muted);
  margin: 0 0 22px;
  font-size: 12px;
  line-height: 1.6;
}

.modal__error {
  margin: 0 0 16px;
}

.modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 31px;
  height: 31px;
  cursor: pointer;
  color: #78858b;
  background: #f3f5f5;
  border-radius: 8px;
  font-size: 20px;
}

.machine-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.machine-form label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #38464c;
  font-size: 11px;
  font-weight: 750;
}

.machine-form input,
.machine-form select {
  width: 100%;
  height: 43px;
  color: var(--ink);
  background: #fbfcfc;
  border: 1px solid #dce2e4;
  border-radius: 9px;
  outline: none;
  padding: 0 12px;
  font-size: 12px;
}

.machine-form input:focus,
.machine-form select:focus {
  border-color: var(--orange);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(239, 108, 47, .1);
}

.machine-form__wide {
  grid-column: 1 / -1;
}

.machine-form__note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #2f6850;
  background: #f1faf5;
  border: 1px solid #d8eee2;
  border-radius: 10px;
  padding: 12px;
}

.machine-form__note > span {
  display: grid;
  flex: none;
  width: 21px;
  height: 21px;
  color: #fff;
  background: var(--green);
  border-radius: 7px;
  place-items: center;
  font-size: 11px;
}

.machine-form__note div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.machine-form__note strong {
  font-size: 11px;
}

.machine-form__note small {
  color: #668174;
  font-size: 10px;
  line-height: 1.5;
}

.modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 3px;
}

.secondary-action {
  height: 38px;
  cursor: pointer;
  color: #66737a;
  background: #f2f5f5;
  border-radius: 9px;
  padding: 0 14px;
  font-size: 11px;
  font-weight: 750;
}

.primary-action:disabled {
  cursor: wait;
  opacity: .65;
}

.toast {
  position: fixed;
  z-index: 120;
  right: 24px;
  bottom: 24px;
  color: #1f6847;
  background: #effaf4;
  border: 1px solid #caead8;
  border-radius: 10px;
  padding: 13px 16px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 16px 35px rgba(32, 68, 52, .16);
}

.toast--error {
  color: #8f0004;
  background: #fff4f4;
  border-color: #efc7c8;
  box-shadow: 0 16px 35px rgba(143, 0, 4, .14);
}

@media (max-width: 1050px) {
  .machine-row {
    grid-template-columns: minmax(190px, 1.3fr) minmax(120px, 1fr) 100px 86px;
  }

  .machine-row__metric:nth-of-type(3) {
    display: none;
  }
}

@media (max-width: 720px) {
  .machine-form {
    grid-template-columns: 1fr;
  }

  .machine-form__wide {
    grid-column: auto;
  }

  .machine-row {
    grid-template-columns: 1fr auto;
    padding: 12px 0;
  }

  .machine-row__metric {
    display: none;
  }
}

/* Source: machine-drink-center-v1.css */
.machine-drink-action {
  white-space: nowrap;
}

.machine-feature-refresh {
  flex: none;
  min-height: 31px;
  padding: 0 11px;
  color: var(--orange-dark);
  background: var(--orange-soft);
  border: 1px solid #dfdfdf;
  border-radius: 8px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
}

.machine-feature-refresh:disabled {
  color: var(--muted);
  cursor: wait;
  opacity: .7;
}

.machine-drink-center__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0 5px;
}

.machine-drink-center__summary > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 800;
}

.machine-drink-center__summary i,
.drink-command-summary dd i,
.technical-status-dot {
  width: 7px;
  height: 7px;
  background: #a4adb1;
  border-radius: 50%;
  display: inline-block;
}

.machine-drink-center__summary i.is-ready,
.drink-command-summary dd i.is-ready,
.technical-status-dot.is-online {
  background: var(--green);
  box-shadow: 0 0 0 4px var(--green-soft);
}

.machine-drink-center__summary small {
  color: var(--muted);
  font-size: 10px;
}

.machine-drink-center__note {
  margin: 0 0 13px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.machine-drink-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px;
}

.machine-drink-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 296px;
  flex-direction: column;
  padding: 13px;
  background: linear-gradient(145deg, #fbfcfc, #f4f7f6);
  border: 1px solid #e1e6e7;
  border-radius: 12px;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.machine-drink-card:hover {
  border-color: #ee000052;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(38, 50, 55, .08);
}

.machine-drink-card__art {
  position: relative;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 11px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(145deg, #27363c, #51646b);
  border-radius: 14px;
  box-shadow: 0 8px 16px rgba(37, 49, 54, .16);
}

.machine-drink-card__art i {
  position: absolute;
  width: 34px;
  height: 34px;
  background: radial-gradient(circle, rgba(238, 0, 0, .5), transparent 68%);
}

.machine-drink-card__art b {
  position: relative;
  font-size: 20px;
}

.machine-drink-card__art--image {
  width: 100%;
  height: 132px;
  margin-bottom: 10px;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.machine-drink-card .machine-drink-card__art--image img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(37, 49, 54, .12));
}

.machine-drink-card__copy {
  min-width: 0;
}

.machine-drink-card__copy small {
  display: block;
  overflow: hidden;
  color: var(--orange-dark);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.machine-drink-card__copy h3 {
  min-height: 34px;
  margin: 5px 0 8px;
  font-size: 13px;
  line-height: 1.3;
}

.machine-drink-card__payment {
  align-self: flex-start;
  margin: -3px 0 8px;
  padding: 3px 6px;
  color: var(--orange-dark);
  background: var(--orange-soft);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}

.machine-drink-card label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: auto;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.machine-drink-card select {
  width: 100%;
  min-height: 31px;
  padding: 0 8px;
  background: #fff;
  border: 1px solid #dbe1e3;
  border-radius: 7px;
  outline: none;
  font-size: 10px;
}

.machine-drink-card__variant {
  display: block;
  margin-top: auto;
  color: var(--muted);
  font-size: 10px;
}

.machine-drink-card > button {
  width: 100%;
  min-height: 33px;
  margin-top: 9px;
  color: #fff;
  background: var(--orange);
  border-radius: 8px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
}

.machine-drink-card > button:disabled {
  color: #7c878c;
  background: #e7ebec;
  cursor: not-allowed;
}

.machine-drink-operations,
.machine-technical-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #edf0f1;
}

.machine-drink-operations > section,
.machine-technical-grid > section {
  min-width: 0;
  padding: 14px;
  background: #f8fafa;
  border: 1px solid #e7ebec;
  border-radius: 11px;
}

.machine-subheading {
  display: flex;
  min-height: 38px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.machine-subheading span {
  color: var(--orange);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.machine-subheading h3 {
  margin: 3px 0 0;
  font-size: 13px;
}

.machine-subheading > small {
  color: var(--muted);
  text-align: right;
  font-size: 10px;
}

.machine-drink-progress {
  min-height: 118px;
  padding: 13px;
  background: #fff;
  border: 1px solid #e1e6e7;
  border-radius: 10px;
}

.machine-drink-progress--empty {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--muted);
}

.machine-drink-progress--empty div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.machine-drink-progress--empty strong {
  color: var(--ink);
  font-size: 11px;
}

.machine-drink-progress--empty small {
  font-size: 10px;
}

.machine-drink-progress__heading {
  display: flex;
  align-items: center;
  gap: 9px;
}

.machine-drink-progress__icon,
.machine-order-row__icon {
  display: grid;
  flex: none;
  place-items: center;
  width: 31px;
  height: 31px;
  color: var(--orange-dark);
  background: var(--orange-soft);
  border-radius: 9px;
  font-size: 14px;
}

.machine-drink-progress__heading > div {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}

.machine-drink-progress__heading small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.machine-drink-progress__heading strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.machine-drink-progress__status,
.machine-order-row__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #6a767c;
  font-size: 10px;
  font-weight: 800;
}

.machine-drink-progress__status i,
.machine-order-row__status i {
  width: 6px;
  height: 6px;
  background: #9ca7ab;
  border-radius: 50%;
}

.machine-drink-progress--success .machine-drink-progress__status,
.machine-order-row--success .machine-order-row__status {
  color: #237c53;
}

.machine-drink-progress--success .machine-drink-progress__status i,
.machine-order-row--success .machine-order-row__status i {
  background: var(--green);
}

.machine-drink-progress--failed .machine-drink-progress__status,
.machine-order-row--failed .machine-order-row__status {
  color: var(--red);
}

.machine-drink-progress--failed .machine-drink-progress__status i,
.machine-order-row--failed .machine-order-row__status i {
  background: var(--red);
}

.machine-drink-progress__bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 35px;
  align-items: center;
  gap: 9px;
  margin-top: 14px;
}

.machine-drink-progress__bar progress {
  width: 100%;
  height: 8px;
  overflow: hidden;
  accent-color: var(--orange);
  border: 0;
  border-radius: 999px;
}

.machine-drink-progress__bar b {
  text-align: right;
  font-size: 10px;
}

.machine-drink-progress__meta {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 10px;
}

.machine-drink-progress__notice {
  margin: 8px 0 0;
  color: var(--orange-dark);
  font-size: 10px;
  line-height: 1.45;
}

.machine-order-list {
  display: flex;
  max-height: 205px;
  flex-direction: column;
  overflow: auto;
}

.machine-order-row {
  display: grid;
  grid-template-columns: 29px minmax(0, 1fr) 36px auto;
  align-items: center;
  gap: 8px;
  min-height: 45px;
  border-bottom: 1px solid #e9edee;
}

.machine-order-row:last-child {
  border-bottom: 0;
}

.machine-order-row__icon {
  width: 27px;
  height: 27px;
  font-size: 11px;
}

.machine-order-row > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.machine-order-row strong {
  overflow: hidden;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.machine-order-row small {
  color: var(--muted);
  font-size: 10px;
}

.machine-order-row__progress {
  text-align: right;
  font-size: 10px;
  font-weight: 800;
}

.machine-feature-loading,
.machine-feature-error {
  display: flex;
  min-height: 115px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  text-align: center;
}

.machine-feature-loading {
  color: var(--muted);
  font-size: 10px;
}

.machine-feature-loading .loading-spinner {
  width: 22px;
  height: 22px;
}

.machine-feature-loading .button-spinner {
  border-color: #d9dfe1;
  border-top-color: var(--orange);
}

.machine-feature-error {
  flex-direction: column;
  color: var(--red);
  background: #fff8f8;
  border: 1px solid #efcfd1;
  border-radius: 9px;
}

.machine-feature-error strong {
  font-size: 11px;
}

.machine-feature-error span {
  color: #8c5e61;
  font-size: 10px;
  line-height: 1.45;
}

.machine-technical-facts,
.machine-version-list {
  display: flex;
  flex-direction: column;
}

.machine-technical-facts > div,
.machine-version-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(100px, auto);
  align-items: center;
  gap: 12px;
  min-height: 37px;
  border-bottom: 1px solid #e9edee;
}

.machine-technical-facts > div:last-child,
.machine-version-list > div:last-child {
  border-bottom: 0;
}

.machine-technical-facts dt,
.machine-version-list span {
  color: var(--muted);
  font-size: 10px;
}

.machine-technical-facts dd,
.machine-version-list strong {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  overflow-wrap: anywhere;
  text-align: right;
  font-size: 10px;
  font-weight: 800;
}

.machine-need-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.machine-need-grid > span {
  display: flex;
  min-height: 48px;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  padding: 8px 10px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 8px;
}

.machine-need-grid > span.needs-attention {
  color: var(--red);
  background: #fff8f8;
  border-color: #efcfd1;
}

.machine-need-grid small {
  color: var(--muted);
  font-size: 10px;
}

.machine-need-grid strong {
  font-size: 10px;
}

.machine-sensor-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 10px;
  margin-top: 12px;
}

.machine-sensor-list > strong,
.machine-sensor-list > small {
  grid-column: 1 / -1;
}

.machine-sensor-list > strong {
  font-size: 10px;
}

.machine-sensor-list > small,
.machine-technical-empty {
  color: var(--muted);
  font-size: 10px;
}

.machine-sensor-list > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 28px;
  padding: 0 8px;
  background: #fff;
  border-radius: 6px;
}

.machine-sensor-list i {
  color: var(--muted);
  font-size: 10px;
  font-style: normal;
}

.machine-sensor-list b {
  font-size: 10px;
}

.machine-technical-empty {
  margin: 12px 0 0;
}

.drink-command-modal {
  width: min(560px, 100%);
}

.drink-command-summary {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 16px;
  margin-top: 18px;
  padding: 16px;
  background: #f7f9f9;
  border: 1px solid #e3e8e9;
  border-radius: 12px;
}

.drink-command-summary__art {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  color: #fff;
  background: linear-gradient(145deg, #27363c, #51646b);
  border-radius: 17px;
  font-size: 27px;
}

.drink-command-summary dl {
  margin: 0;
}

.drink-command-summary dl > div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 10px;
  min-height: 29px;
  align-items: center;
  border-bottom: 1px solid #e5e9ea;
}

.drink-command-summary dl > div:last-child {
  border-bottom: 0;
}

.drink-command-summary dt {
  color: var(--muted);
  font-size: 10px;
}

.drink-command-summary dd {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  font-size: 10px;
  font-weight: 800;
}

.drink-command-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  padding: 12px;
  color: #765a19;
  background: #fff8df;
  border: 1px solid #f0dfa4;
  border-radius: 10px;
}

.drink-command-warning > span {
  display: grid;
  flex: none;
  place-items: center;
  width: 19px;
  height: 19px;
  color: #fff;
  background: #bb8610;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
}

.drink-command-warning div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.drink-command-warning strong {
  font-size: 10px;
}

.drink-command-warning small {
  font-size: 10px;
  line-height: 1.45;
}

.drink-command-modal form .modal__actions {
  margin-top: 18px;
}

@media (max-width: 820px) {
  .machine-drink-operations,
  .machine-technical-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .machine-drink-center__summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .machine-drink-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .machine-drink-card {
    min-height: 270px;
    padding: 11px;
  }

  .machine-drink-card__art--image {
    height: 108px;
  }

  .machine-order-row {
    grid-template-columns: 27px minmax(0, 1fr) auto;
  }

  .machine-order-row__progress {
    display: none;
  }

  .machine-subheading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .machine-subheading > small {
    text-align: left;
  }

  .drink-command-summary {
    grid-template-columns: 1fr;
  }

  .drink-command-summary__art {
    width: 54px;
    height: 54px;
    border-radius: 13px;
    font-size: 21px;
  }

  .drink-command-summary dl > div {
    grid-template-columns: 105px minmax(0, 1fr);
  }
}

@media (max-width: 390px) {
  .machine-drink-grid,
  .machine-need-grid,
  .machine-sensor-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .machine-sensor-list > strong,
  .machine-sensor-list > small {
    grid-column: 1;
  }
}

/* Menu en vormgevingsschakelaar delen één natuurlijk scrollgebied. */
.sidebar__scroll {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: auto;
}

.sidebar__theme-preference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex: none;
  margin: 6px 14px 10px;
  padding: 6px 10px;
  color: #657178;
  background: #f7f9f9;
  border: 1px solid #e5e9ea;
  border-radius: 10px;
}

.sidebar__theme-preference > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.sidebar__theme-preference strong {
  color: #344249;
  font-size: 10px;
}

.sidebar__theme-preference small {
  color: #8a969b;
  font-size: 10px;
}

.theme-mode-switch {
  position: relative;
  flex: none;
  width: 36px;
  height: 20px;
  padding: 0;
  cursor: pointer;
  background: #c8ced1;
  border: 0;
  border-radius: 999px;
  transition: background-color .18s ease;
}

.theme-mode-switch:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

.theme-mode-switch:disabled {
  cursor: wait;
  opacity: .7;
}

.theme-mode-switch > span {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(32, 44, 50, .24);
  transition: transform .18s ease;
}

html[data-corner-mode="rounded"] .theme-mode-switch {
  background: var(--orange);
}

html[data-corner-mode="rounded"] .theme-mode-switch > span {
  transform: translateX(16px);
}

/* De ronde stand hergebruikt exact de eerder goedgekeurde ronde vormtaal. */
html[data-corner-mode="rounded"] {
  --platform-block-radius: 30px;
  --platform-button-radius: 999px;
}

html[data-corner-mode="rounded"] :is(
  button,
  [role="button"],
  .settings-file-action
) {
  border-radius: var(--platform-button-radius) !important;
}

html[data-corner-mode="rounded"] input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-corner-mode="rounded"] select {
  border-radius: var(--platform-button-radius) !important;
}

html[data-corner-mode="rounded"] textarea {
  border-radius: var(--platform-block-radius) !important;
}

html[data-corner-mode="rounded"] :is(
  .service-filters,
  .report-presets,
  .activity-presets,
  .settings-tabs,
  .status-badge,
  .customer-health,
  .access-status,
  .linked-user-count,
  .service-live-label,
  .priority-badge,
  .source-state,
  .availability-pill,
  .activity-secure-badge,
  .settings-secure-badge,
  .system-status-label,
  .version-history-updated,
  .version-change__type,
  .version-current-badge,
  .login-panel .privacy-note,
  .login-page .login-header .secure-label,
  .login-page .login-footer > span
) {
  border-radius: var(--platform-button-radius) !important;
}

html[data-corner-mode="rounded"] :is(
  .app-alert,
  .metric-float,
  .login-card,
  .sidebar__status,
  .stat-card,
  .panel,
  .machines-panel,
  .activity-placeholder,
  .modal,
  .machine-form__note,
  .toast,
  .detail-loading,
  .machine-hero,
  .detail-metric,
  .detail-panel,
  .component-state-card,
  .history-strip,
  .customers-panel,
  .customer-hero,
  .location-card,
  .users-panel,
  .activation-card,
  .activation-email,
  .invitation-warning,
  .dealers-panel,
  .dealer-hero,
  .dealer-scope-note,
  .service-panel,
  .service-hero,
  .service-source-warning,
  .service-form-note,
  .service-timeline__item p,
  .report-filter-panel,
  .report-coverage,
  .report-panel,
  .activity-filter-panel,
  .activity-log-panel,
  .activity-privacy-note,
  .settings-card,
  .settings-password-note,
  .settings-organization-meta,
  .settings-security-note,
  .notification-panel,
  .smtp-enabled,
  .smtp-test,
  .device-danger-zone,
  .delete-device-warning,
  .settings-image-editor,
  .settings-image-editor__preview,
  .roles-assignment-note,
  .role-card,
  .system-status-hero,
  .system-card,
  .system-card__detail,
  .user-detail-avatar,
  .version-summary-card,
  .version-summary-card dl > div,
  .version-changelog-panel,
  .version-release__item--current,
  .version-change,
  .machine-row,
  .customer-row,
  .customer-machine-row,
  .customer-user-row,
  .dealer-row,
  .dealer-customer-row,
  .user-row--button,
  .service-row,
  .notification-item
) {
  border-radius: var(--platform-block-radius) !important;
}


/* Source: machine-v2.css */
.machine-row {
  width: 100%;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  text-align: left;
  transition: background-color .16s ease, transform .16s ease;
}

.machine-row:hover {
  background: #fbfcfc;
}

.machine-row:focus-visible {
  z-index: 1;
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

.machine-row__end {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.machine-row__end > i {
  color: #a4adb1;
  font-size: 19px;
  font-style: normal;
  transition: color .16s ease, transform .16s ease;
}

.machine-row:hover .machine-row__end > i {
  color: var(--orange);
  transform: translateX(2px);
}

.back-button {
  display: inline-flex;
  align-items: center;
  height: 34px;
  margin: 0 0 17px;
  padding: 0 11px;
  cursor: pointer;
  color: #657178;
  background: #fff;
  border: 1px solid #e0e5e6;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 750;
}

.back-button:hover {
  color: var(--orange-dark);
  border-color: #dfdfdf;
  background: var(--orange-soft);
}

.machine-detail-toolbar {
  display: flex;
  width: 100%;
  min-height: 34px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-bottom: 17px;
}

.machine-detail-toolbar .back-button {
  margin: 0;
}

.machine-detail-toolbar__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

@media (max-width: 720px) {
  .machine-detail-toolbar {
    align-items: flex-start;
  }

  .machine-detail-toolbar__actions {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }
}

.detail-loading {
  display: grid;
  min-height: 420px;
  place-content: center;
  justify-items: center;
  gap: 15px;
  color: var(--muted);
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 13px;
  font-size: 12px;
}

.machine-hero {
  display: flex;
  min-height: 128px;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 22px 25px;
  background:
    radial-gradient(circle at 80% 15%, rgba(239,108,47,.11), transparent 28%),
    #fff;
  border: 1px solid #e2e7e8;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(41,54,59,.035);
}

.machine-hero__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 17px;
}

.machine-hero__icon {
  display: grid;
  flex: none;
  width: 62px;
  height: 62px;
  color: #fff;
  background: linear-gradient(145deg, var(--orange), #c10005);
  border-radius: 17px;
  place-items: center;
  font-size: 17px;
  font-weight: 850;
  box-shadow: 0 12px 24px rgba(239,108,47,.25);
}

.machine-hero__icon--photo {
  position: relative;
  width: 100px;
  height: 140px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.machine-hero__icon--photo img {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 180px;
  max-width: none;
  height: 180px;
  object-fit: contain;
  transform: translate(-50%, -50%);
}

.machine-hero__icon--photo :is(
  .machine-model-image--enjoy200,
  .machine-model-image--enjoy300,
  .machine-model-image--fe40,
  .machine-model-image--fe41,
  .machine-model-image--fe42,
  .machine-model-image--fe65,
  .machine-model-image--fe66
) {
  width: 200px;
  height: 200px;
}

.machine-hero__icon--photo :is(
  .machine-model-image--fe44,
  .machine-model-image--fe82,
  .machine-model-image--fe84,
  .machine-model-image--fe86,
  .machine-model-image--fe88
) {
  width: 160px;
  height: 160px;
}

.machine-hero h1 {
  margin: 4px 0 3px;
  letter-spacing: -.035em;
  font-size: 28px;
}

.machine-hero p {
  overflow: hidden;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.machine-hero__status {
  display: flex;
  flex: none;
  min-width: 280px;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.machine-hero__status-overview {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
}

.machine-hero__state {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.machine-hero__status .status-badge {
  min-height: 34px;
  gap: 8px;
  padding: 0 14px;
  margin-bottom: 3px;
  font-size: 12px;
}

.machine-hero__status .status-badge i {
  width: 8px;
  height: 8px;
}

.machine-hero__state > strong {
  font-size: 16px;
}

.machine-hero__state > small {
  color: var(--muted);
  font-size: 10px;
}

.machine-mobile-signal {
  display: flex;
  min-width: 98px;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding-top: 3px;
  padding-right: 18px;
  padding-bottom: 3px;
  padding-left: 0;
  color: inherit;
  background: transparent;
  border-top: 0;
  border-right: 1px solid #e3e9e6;
  border-bottom: 0;
  border-left: 0;
  border-radius: 9px 0 0 9px;
  cursor: pointer;
  text-align: center;
  transition: background-color .16s ease, box-shadow .16s ease;
}

.machine-mobile-signal:hover {
  background: rgba(42, 157, 103, .08);
  box-shadow: 0 0 0 5px rgba(42, 157, 103, .08);
}

.machine-mobile-signal:focus-visible {
  outline: 3px solid rgba(42, 157, 103, .24);
  outline-offset: 3px;
}

.machine-mobile-signal__visual {
  position: relative;
  display: flex;
  min-width: 78px;
  min-height: 28px;
  align-items: flex-end;
  gap: 7px;
  padding-right: 23px;
  color: var(--green, #2a9d67);
}

.machine-mobile-signal__visual > b {
  position: absolute;
  top: -1px;
  right: 0;
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
}

.machine-mobile-signal__antenna {
  width: 25px;
  height: 25px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.machine-mobile-signal__antenna circle {
  fill: currentColor;
  stroke: none;
}

.machine-mobile-signal__bars {
  display: flex;
  height: 22px;
  align-items: flex-end;
  gap: 3px;
}

.machine-mobile-signal__bars > i {
  display: block;
  width: 4px;
  height: 6px;
  background: #cfd8d4;
  border-radius: 2px 2px 1px 1px;
}

.machine-mobile-signal__bars > i:nth-child(2) {
  height: 10px;
}

.machine-mobile-signal__bars > i:nth-child(3) {
  height: 15px;
}

.machine-mobile-signal__bars > i:nth-child(4) {
  height: 20px;
}

.machine-mobile-signal__bars > i.is-active {
  background: var(--green, #2a9d67);
}

.machine-mobile-signal__provider {
  color: #53655d;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.2;
}

.machine-mobile-network-modal {
  width: min(720px, 100%);
}

.machine-mobile-network-modal .modal__intro {
  max-width: 610px;
}

.machine-mobile-network-summary {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  margin-bottom: 15px;
  padding: 15px;
  color: #176a49;
  background: #edf8f3;
  border: 1px solid #cbe9dc;
  border-radius: 12px;
}

.machine-mobile-network-summary__icon {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  color: #fff;
  background: var(--green, #2a9d67);
  border-radius: 11px;
}

.machine-mobile-network-summary__icon .portal-icon {
  width: 23px;
  height: 23px;
}

.machine-mobile-network-summary > div > span {
  display: block;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.machine-mobile-network-summary strong {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 3px;
  color: #184e3a;
  font-size: 17px;
}

.machine-mobile-network-summary strong i {
  width: 8px;
  height: 8px;
  flex: none;
  background: var(--green, #2a9d67);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(42, 157, 103, .14);
}

.machine-mobile-network-summary small {
  display: block;
  margin-top: 2px;
  color: #577266;
  font-size: 10px;
}

.machine-mobile-network-summary > b {
  padding: 6px 9px;
  color: #176a49;
  background: #fff;
  border: 1px solid #c5e5d6;
  border-radius: 999px;
  font-size: 10px;
}

.machine-mobile-network-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.machine-mobile-network-grid > div {
  min-width: 0;
  min-height: 84px;
  padding: 13px 14px;
  background: #f8fafa;
  border: 1px solid #e1e7e7;
  border-radius: 10px;
}

.machine-mobile-network-grid dt {
  color: #6f7d83;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 800;
}

.machine-mobile-network-grid dd {
  margin: 5px 0 2px;
  color: #223139;
  font-size: 15px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.machine-mobile-network-grid small {
  color: #7a888e;
  font-size: 10px;
}

.machine-mobile-network-note {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin-top: 14px;
  padding: 12px 13px;
  color: #526269;
  background: #f3f6f7;
  border-radius: 10px;
}

.machine-mobile-network-note > span {
  display: grid;
  width: 28px;
  height: 28px;
  flex: none;
  place-items: center;
  color: #526f7d;
  background: #e5edef;
  border-radius: 8px;
}

.machine-mobile-network-note .portal-icon {
  width: 16px;
  height: 16px;
}

.machine-mobile-network-note p {
  margin: 0;
  font-size: 10px;
  line-height: 1.55;
}

.machine-mobile-network-note strong {
  display: block;
  margin-bottom: 2px;
  color: #35464f;
  font-size: 11px;
}

.machine-mobile-network-actions {
  margin-top: 17px;
}

.machine-hero__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}

.machine-coffee-action,
.machine-hero__actions .secondary-outline-action {
  white-space: nowrap;
}

.machine-coffee-action:disabled[aria-busy="false"] {
  cursor: not-allowed;
}

.detail-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  margin-top: 13px;
}

.detail-metric {
  position: relative;
  overflow: hidden;
  min-height: 105px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 13px;
}

.detail-metric::after {
  position: absolute;
  content: "";
  width: 58px;
  height: 58px;
  top: -31px;
  right: -27px;
  background: #eef2f2;
  border-radius: 50%;
}

.detail-metric--green::after { background: var(--green-soft); }
.detail-metric--orange::after { background: var(--orange-soft); }
.detail-metric--blue::after { background: var(--blue-soft); }
.detail-metric--red::after { background: var(--red-soft); }

.detail-metric small,
.detail-metric span {
  display: block;
  color: var(--muted);
  font-size: 10px;
}

.detail-metric small {
  font-weight: 750;
}

.detail-metric strong {
  display: block;
  overflow: hidden;
  margin: 10px 0 5px;
  font-size: 21px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(310px, .8fr);
  gap: 13px;
  margin-top: 13px;
}

.detail-panel {
  min-width: 0;
  min-height: 300px;
  padding: 19px 20px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 13px;
}

.detail-panel--wide {
  grid-column: 1 / -1;
  min-height: 250px;
}

.detail-panel__heading {
  display: flex;
  min-height: 48px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #edf0f1;
}

.detail-panel__heading > div > span {
  color: var(--orange);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.detail-panel__heading h2 {
  margin: 4px 0 0;
  font-size: 17px;
}

.detail-panel__heading > small {
  color: var(--muted);
  text-align: right;
  font-size: 10px;
  line-height: 1.5;
}

.drink-list {
  max-height: 375px;
  overflow: auto;
  padding: 7px 4px 0 0;
}

.drink-row {
  padding: 10px 0;
  border-bottom: 1px solid #f0f2f3;
}

.drink-row:last-child {
  border-bottom: 0;
}

.drink-row__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.drink-row__heading > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.drink-row__heading strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.drink-row__heading small {
  color: var(--muted);
  font-size: 10px;
}

.drink-row__heading b {
  flex: none;
  font-size: 12px;
}

.drink-bar {
  display: block;
  appearance: none;
  width: 100%;
  height: 4px;
  overflow: hidden;
  margin-top: 7px;
  background: #f0f2f2;
  border: 0;
  border-radius: 999px;
}

.drink-bar::-webkit-progress-bar {
  background: #f0f2f2;
  border-radius: 999px;
}

.drink-bar::-webkit-progress-value {
  background: linear-gradient(90deg, var(--orange), #ee0000);
  border-radius: 999px;
}

.drink-bar::-moz-progress-bar {
  background: linear-gradient(90deg, var(--orange), #ee0000);
  border-radius: 999px;
}

.machine-facts {
  margin: 6px 0 0;
}

.machine-facts > div {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid #f0f2f3;
}

.machine-facts > div:last-child {
  border-bottom: 0;
}

.machine-facts dt {
  color: var(--muted);
  font-size: 10px;
}

.machine-facts dd {
  overflow: hidden;
  margin: 0;
  text-align: right;
  font-size: 10px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.machine-facts__technical {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px !important;
}

.history-strip {
  display: flex;
  width: 100%;
  height: 44px;
  align-items: stretch;
  gap: 2px;
  margin-top: 19px;
  padding: 5px;
  background: #f4f6f6;
  border-radius: 9px;
}

.history-strip__sample {
  flex: 1 1 2px;
  min-width: 2px;
  border-radius: 3px;
}

.history-strip__sample--online { background: #45ad7d; }
.history-strip__sample--offline { background: #b7c0c3; }
.history-strip__sample--fault { background: var(--red); }

.history-legend {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 9px 0 13px;
  color: var(--muted);
  font-size: 10px;
}

.history-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.history-legend span:last-child {
  margin-left: auto;
}

.history-legend i {
  width: 7px;
  height: 7px;
  border-radius: 2px;
}

.history-legend__online { background: #45ad7d; }
.history-legend__offline { background: #b7c0c3; }

.history-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 25px;
}

.history-list > div {
  display: grid;
  grid-template-columns: 8px minmax(80px, .7fr) 1fr;
  align-items: center;
  gap: 8px;
  min-height: 31px;
  border-bottom: 1px solid #f0f2f3;
}

.history-list strong {
  overflow: hidden;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.history-list small {
  color: var(--muted);
  text-align: right;
  font-size: 10px;
}

.history-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.history-dot--online { background: var(--green); }
.history-dot--offline { background: #aeb8bb; }

.event-list {
  max-height: 350px;
  overflow: auto;
}

.event-row {
  display: flex;
  gap: 10px;
  padding: 13px 0;
  border-bottom: 1px solid #f0f2f3;
}

.event-row:last-child {
  border-bottom: 0;
}

.event-row__icon {
  display: grid;
  flex: none;
  width: 28px;
  height: 28px;
  color: var(--red);
  background: var(--red-soft);
  border-radius: 8px;
  place-items: center;
  font-size: 11px;
  font-weight: 850;
}

.event-row--closed .event-row__icon,
.event-row--maintenance .event-row__icon {
  color: var(--green);
  background: var(--green-soft);
}

.event-row > div {
  min-width: 0;
  flex: 1;
}

.event-row__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
}

.event-row__top strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-row__top b {
  flex: none;
  color: #748087;
  background: #f1f3f4;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 10px;
}

.event-row--active .event-row__top b {
  color: #c10005;
  background: var(--red-soft);
}

.event-row p {
  margin: 3px 0;
  color: #647178;
  font-size: 10px;
  line-height: 1.45;
}

.event-row small {
  color: #97a0a4;
  font-size: 10px;
}

.detail-empty {
  display: flex;
  min-height: 205px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--muted);
}

.detail-empty::before {
  display: grid;
  width: 35px;
  height: 35px;
  margin-bottom: 10px;
  content: "—";
  color: #849095;
  background: #f1f4f4;
  border-radius: 10px;
  place-items: center;
  font-size: 13px;
  font-weight: 800;
}

.detail-empty--success::before {
  content: "✓";
  color: var(--green);
  background: var(--green-soft);
}

.detail-empty strong {
  color: #4e5b61;
  font-size: 11px;
}

.detail-empty span {
  max-width: 290px;
  margin-top: 4px;
  font-size: 10px;
  line-height: 1.5;
}

.component-status-panel {
  min-height: 0;
  margin-top: 13px;
}

.component-status-panel .detail-panel__heading {
  border-bottom: 0;
}

.component-state-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  padding-top: 17px;
}

.component-state-card {
  --component-state-accent: #707070;
  position: relative;
  isolation: isolate;
  min-width: 0;
  min-height: 138px;
  overflow: hidden;
  padding: 19px 96px 17px 18px;
  border: 1px solid var(--facilenjoy-gray-light, #dfdfdf);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(48, 62, 67, .04);
}

.component-state-card::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  content: "";
  background: var(--component-state-accent);
}

.component-state-card__art {
  position: absolute;
  z-index: 0;
  top: 50%;
  right: 12px;
  width: 78px;
  height: 78px;
  color: var(--facilenjoy-red, #ee0000);
  opacity: .06;
  transform: translateY(-50%);
}

.component-state-card__art svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.component-state-card__type {
  position: relative;
  z-index: 1;
  display: block;
  color: var(--facilenjoy-red-secondary, #c10005);
  font-family: "Roboto", Arial, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.component-state-card h3 {
  position: relative;
  z-index: 1;
  overflow: hidden;
  margin: 5px 0 14px;
  color: var(--ink);
  font-family: "Glacial Indifference", "Roboto", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -.015em;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.component-state-card p {
  position: relative;
  z-index: 1;
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0 9px;
  color: #207b51;
  background: var(--green-soft);
  border-radius: 999px;
  font-family: "Roboto", Arial, sans-serif;
  font-size: 10px;
  font-weight: 750;
}

.component-state-card p i {
  width: 7px;
  height: 7px;
  flex: none;
  border-radius: 50%;
  background: currentColor;
}

.component-state-card > small {
  position: relative;
  z-index: 1;
  display: block;
  overflow: hidden;
  margin-top: 8px;
  color: var(--muted);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 10px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.component-state-card--normal {
  --component-state-accent: #207b51;
}

.component-state-card--warning {
  --component-state-accent: #945800;
}

.component-state-card--warning p {
  color: #945800;
  background: #fff3df;
}

.component-state-card--error {
  --component-state-accent: var(--facilenjoy-red-secondary, #c10005);
  border-color: rgba(193, 0, 5, .28);
}

.component-state-card--error p {
  color: var(--facilenjoy-red-secondary, #c10005);
  background: #fdecec;
}

.component-state-card--unavailable {
  --component-state-accent: #707070;
  border-color: #e2e7e8;
  background: #fafbfb;
}

.component-state-card--unavailable .component-state-card__art {
  color: var(--facilenjoy-gray-dark, #707070);
}

.component-state-card--unavailable p {
  color: var(--muted);
  background: #f0f3f3;
}

@media (max-width: 1050px) {
  .detail-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-grid {
    grid-template-columns: 1fr;
  }

  .detail-panel--wide {
    grid-column: auto;
  }

  .component-state-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .machine-row__end > i {
    display: none;
  }

  .machine-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .machine-hero__status {
    min-width: 0;
    align-items: flex-start;
  }

  .machine-hero__status-overview {
    flex-direction: row-reverse;
    justify-content: flex-end;
  }

  .machine-hero__state {
    align-items: flex-start;
  }

  .machine-mobile-signal {
    padding-right: 0;
    padding-left: 18px;
    border-right: 0;
    border-left: 1px solid #e3e9e6;
    border-radius: 0 9px 9px 0;
  }

  .machine-mobile-network-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .machine-mobile-network-summary {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .machine-mobile-network-summary__icon {
    width: 40px;
    height: 40px;
  }

  .machine-mobile-network-summary > b {
    grid-column: 2;
    width: max-content;
  }

  .machine-hero__actions {
    justify-content: flex-start;
  }

  .detail-metrics {
    grid-template-columns: 1fr;
  }

  .detail-panel {
    padding: 17px;
  }

  .history-list {
    grid-template-columns: 1fr;
  }

  .history-legend span:last-child {
    display: none;
  }

  .machine-facts > div {
    grid-template-columns: 90px minmax(0, 1fr);
  }

  .component-state-grid {
    grid-template-columns: 1fr;
  }
}


/* Source: customer-v1.css */
.customers-panel {
  min-height: 410px;
  padding: 0 20px 16px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 13px;
}

.customers-panel__header {
  display: flex;
  min-height: 70px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #edf0f1;
}

.customers-panel__header > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.customers-panel__header strong {
  font-size: 14px;
}

.customers-panel__header small {
  color: var(--muted);
  font-size: 10px;
}

.customer-list {
  display: flex;
  flex-direction: column;
}

.customer-row {
  display: grid;
  grid-template-columns: minmax(235px, 1.6fr) 65px 65px 90px 105px 16px;
  gap: 15px;
  width: 100%;
  min-height: 74px;
  align-items: center;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  text-align: left;
  transition: background-color .16s ease;
}

.customer-row:last-child {
  border-bottom: 0;
}

.customer-row:hover {
  background: #fbfcfc;
}

.customer-row:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

.customer-row__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 11px;
}

.customer-row__identity > div,
.customer-row__metric {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.customer-row__identity strong,
.customer-row__metric strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-row__identity small,
.customer-row__metric small {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-row__icon,
.customer-empty-icon {
  display: grid;
  flex: none;
  width: 34px;
  height: 34px;
  color: var(--blue);
  background: var(--blue-soft);
  border-radius: 9px;
  place-items: center;
  font-size: 10px;
  font-weight: 850;
}

.customer-empty-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 14px;
  border: 1px solid #d9e7f5;
  font-size: 13px;
}

.customer-health {
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 750;
}

.customer-health i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.customer-health--good {
  color: #207b51;
  background: var(--green-soft);
}

.customer-health--good i { background: var(--green); }

.customer-health--attention {
  color: #c10005;
  background: var(--red-soft);
}

.customer-health--attention i { background: var(--red); }

.customer-row__arrow {
  color: #a4adb1;
  font-size: 19px;
  transition: color .16s ease, transform .16s ease;
}

.customer-row:hover .customer-row__arrow,
.customer-machine-row:hover .customer-row__arrow {
  color: var(--orange);
  transform: translateX(2px);
}

.customer-hero {
  display: flex;
  min-height: 126px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 22px 25px;
  background:
    radial-gradient(circle at 82% 12%, rgba(52,120,197,.1), transparent 29%),
    #fff;
  border: 1px solid #e2e7e8;
  border-radius: 14px;
}

.customer-hero__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 17px;
}

.customer-hero__icon {
  display: grid;
  flex: none;
  width: 62px;
  height: 62px;
  color: #fff;
  background: linear-gradient(145deg, var(--blue), #285e9e);
  border-radius: 17px;
  place-items: center;
  font-size: 17px;
  font-weight: 850;
  box-shadow: 0 12px 24px rgba(52,120,197,.2);
}

.customer-hero h1 {
  margin: 4px 0 3px;
  letter-spacing: -.035em;
  font-size: 28px;
}

.customer-hero p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.customer-hero__actions {
  display: flex;
  flex: none;
  align-items: center;
  gap: 9px;
}

.secondary-outline-action {
  display: inline-flex;
  height: 38px;
  align-items: center;
  padding: 0 13px;
  cursor: pointer;
  color: #526169;
  background: #fff;
  border: 1px solid #dce2e4;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 750;
}

.secondary-outline-action:hover {
  color: var(--orange-dark);
  border-color: #dfdfdf;
  background: var(--orange-soft);
}

.customer-detail-grid {
  display: grid;
  grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr);
  gap: 13px;
  margin-top: 13px;
}

.customer-contact-panel,
.customer-locations-panel {
  min-height: 310px;
}

.location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  max-height: 270px;
  overflow: auto;
  padding-top: 12px;
}

.location-card {
  display: flex;
  min-width: 0;
  gap: 10px;
  padding: 12px;
  background: #fafcfc;
  border: 1px solid #e7ebec;
  border-radius: 10px;
}

.location-card__icon {
  display: grid;
  flex: none;
  width: 28px;
  height: 28px;
  color: var(--blue);
  background: var(--blue-soft);
  border-radius: 8px;
  place-items: center;
  font-size: 10px;
  font-weight: 850;
}

.location-card > div {
  min-width: 0;
}

.location-card strong {
  display: block;
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.location-card p {
  min-height: 26px;
  margin: 3px 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.location-card small {
  color: #708087;
  font-size: 10px;
  font-weight: 700;
}

.customer-section-empty {
  display: flex;
  min-height: 205px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--muted);
}

.organization-empty-action {
  display: grid;
  width: 36px;
  height: 36px;
  padding: 0;
  margin-bottom: 9px;
  color: var(--blue);
  background: var(--blue-soft);
  border: 0;
  border-radius: 10px;
  place-items: center;
  font-family: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
}

button.organization-empty-action {
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

button.organization-empty-action:hover {
  color: #fff;
  background: var(--blue);
  box-shadow: 0 8px 18px rgba(47, 124, 196, .22);
  transform: translateY(-1px);
}

button.organization-empty-action:focus-visible {
  outline: 3px solid rgba(47, 124, 196, .28);
  outline-offset: 3px;
}

.organization-empty-action--static {
  cursor: default;
}

.customer-section-empty strong {
  color: #4f5d63;
  font-size: 11px;
}

.customer-section-empty p {
  max-width: 360px;
  margin: 4px 0 0;
  font-size: 10px;
  line-height: 1.5;
}

.customer-section-empty--compact {
  min-height: 150px;
}

.customer-machine-list {
  display: flex;
  flex-direction: column;
}

.customer-machine-row {
  display: grid;
  grid-template-columns: 44px minmax(200px, 1.4fr) minmax(110px, .8fr) 85px 85px 16px;
  gap: 11px;
  width: 100%;
  min-height: 66px;
  align-items: center;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  text-align: left;
}

.customer-machine-row:last-child {
  border-bottom: 0;
}

.customer-machine-row:hover {
  background: #fbfcfc;
}

.customer-machine-row > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.customer-machine-row strong {
  overflow: hidden;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-machine-row small {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-user-list {
  display: flex;
  flex-direction: column;
}

.customer-user-row {
  display: grid;
  grid-template-columns: 42px minmax(210px, 1.4fr) minmax(150px, .75fr) 110px 95px;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 72px;
  padding: 12px 0;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  text-align: left;
  transition: background .18s ease, box-shadow .18s ease;
}

.customer-user-row:last-child {
  border-bottom: 0;
}

.customer-user-row:hover,
.customer-user-row:focus-visible {
  background: #fafcfc;
  box-shadow: inset 4px 0 0 #ee0000;
}

.customer-user-row:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .14);
  outline-offset: -3px;
}

.customer-user-row__avatar {
  display: grid;
  width: 42px;
  height: 42px;
  overflow: hidden;
  place-items: center;
  color: #1766bd;
  background: #eaf3fd;
  border-radius: 13px;
  font-size: 12px;
  font-weight: 800;
}

.customer-user-row__identity,
.customer-user-row__role {
  min-width: 0;
}

.customer-user-row__identity strong,
.customer-user-row__role strong,
.customer-user-row__identity small,
.customer-user-row__role small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-user-row__identity strong,
.customer-user-row__role strong {
  color: #15212a;
  font-size: 12px;
  font-weight: 750;
}

.customer-user-row__identity small,
.customer-user-row__role small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
}

.customer-user-row__open {
  color: #ee0000;
  font-size: 10px;
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
}

.customer-users-empty {
  display: grid;
  min-height: 150px;
  place-items: center;
  align-content: center;
  gap: 5px;
  color: var(--muted);
  text-align: center;
}

.customer-users-empty > span {
  display: grid;
  width: 38px;
  height: 38px;
  margin-bottom: 4px;
  place-items: center;
  color: var(--blue);
  background: var(--blue-soft);
  border-radius: 11px;
  font-size: 11px;
  font-weight: 850;
}

.customer-users-empty strong {
  color: #4f5d63;
  font-size: 11px;
}

.customer-users-empty p {
  max-width: 430px;
  margin: 0;
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 1050px) {
  .customer-row {
    grid-template-columns: minmax(210px, 1.5fr) 65px 65px 100px 16px;
  }

  .customer-row__metric:nth-of-type(4) {
    display: none;
  }

  .customer-detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .customer-row {
    grid-template-columns: 1fr auto 14px;
    padding: 11px 0;
  }

  .customer-row__metric,
  .customer-health {
    display: none;
  }

  .customer-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .customer-hero__actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .location-grid {
    grid-template-columns: 1fr;
  }

  .customer-machine-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    padding: 11px 0;
  }

  .customer-machine-row > div:not(.customer-machine-row__name),
  .customer-machine-row .customer-row__arrow {
    display: none;
  }

  .customer-user-row {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 10px;
  }

  .customer-user-row__role,
  .customer-user-row .access-status {
    display: none;
  }
}


/* Source: users-v1.css */
.users-page {
  gap: 18px;
}

.user-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.users-page > .user-metrics {
  margin-top: 22px;
}

.users-panel {
  overflow: hidden;
  border: 1px solid #dfe5e7;
  border-radius: 18px;
  background: #fff;
}

.users-page > .users-panel {
  margin-top: 22px;
}

.users-panel__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 26px 20px;
  border-bottom: 1px solid #e8ecee;
}

.users-panel__heading > div > span {
  display: block;
  margin-bottom: 7px;
  color: #ee0000;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.users-panel__heading h2 {
  margin: 0;
  color: #111c24;
  font-size: 22px;
  font-weight: 500;
}

.users-panel__heading > small {
  color: #81909a;
  font-size: 13px;
}

.user-list,
.invitation-list {
  display: grid;
}

.user-row {
  display: grid;
  grid-template-columns: 46px minmax(210px, 1.35fr) minmax(180px, 1fr) minmax(135px, .75fr) 122px 90px;
  align-items: center;
  gap: 14px;
  min-height: 82px;
  padding: 14px 24px;
  border-bottom: 1px solid #edf0f1;
}

.user-row:last-child,
.invitation-row:last-child {
  border-bottom: 0;
}

.user-row__avatar {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 13px;
  background: #eaf3fd;
  color: #1766bd;
  font-size: 13px;
  font-weight: 800;
}

.user-row__identity,
.user-row__organization,
.user-row__role {
  min-width: 0;
}

.user-row__identity strong,
.user-row__organization strong,
.user-row__role strong {
  display: block;
  overflow: hidden;
  color: #15212a;
  font-size: 14px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-row__identity small,
.user-row__organization small,
.user-row__role small {
  display: block;
  overflow: hidden;
  margin-bottom: 4px;
  color: #81909a;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.access-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.access-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.access-status--active {
  background: #e8f7ef;
  color: #168451;
}

.access-status--pending {
  background: #dfdfdf;
  color: #ee0000;
}

.access-status--suspended,
.access-status--expired {
  background: #fff0f0;
  color: #c10005;
}

.linked-user-counts {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.linked-user-count {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.linked-user-count i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.linked-user-count--active {
  color: #168451;
  background: #e8f7ef;
}

.linked-user-count--inactive {
  color: #c10005;
  background: #fff0f0;
}

.user-status-action {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #dfe5e7;
  border-radius: 10px;
  background: #fff;
  color: #53616b;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.user-status-action:hover {
  border-color: #ee0000;
  color: #ee0000;
}

.user-row__self {
  color: #8a979f;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.invitation-row {
  display: grid;
  grid-template-columns: 44px minmax(240px, 1.25fr) 132px minmax(190px, .8fr) 90px;
  align-items: center;
  gap: 16px;
  min-height: 76px;
  padding: 13px 24px;
  border-bottom: 1px solid #edf0f1;
}

.invitation-row__icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 12px;
  background: #dfdfdf;
  color: #ee0000;
  font-weight: 800;
}

.invitation-row > div strong,
.invitation-row > div small {
  display: block;
}

.invitation-row > div strong {
  color: #162129;
  font-size: 14px;
}

.invitation-row > div small,
.invitation-row__expiry {
  margin-top: 5px;
  color: #83909a;
  font-size: 12px;
}

.users-empty {
  display: grid;
  min-height: 220px;
  place-items: center;
  align-content: center;
  gap: 8px;
  padding: 30px;
  color: #7f8c95;
  text-align: center;
}

.users-empty--compact {
  min-height: 150px;
}

.users-empty > span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 14px;
  background: #eef5fc;
  color: #2870bd;
  font-weight: 800;
}

.users-empty strong {
  color: #223039;
}

.users-empty p {
  margin: 0;
  font-size: 13px;
}

.activation-page {
  display: grid;
  min-height: 100vh;
  grid-template-rows: auto 1fr auto;
  background: linear-gradient(135deg, #f7f9fa 0%, #eef4f8 100%);
}

.activation-main {
  display: grid;
  place-items: center;
  padding: 46px 20px;
}

.activation-card {
  width: min(100%, 510px);
  padding: 38px;
  border: 1px solid #dfe5e7;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(32, 51, 63, .12);
}

.activation-email {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 24px 0;
  padding: 14px 16px;
  border: 1px solid #dfe8ef;
  border-radius: 14px;
  background: #f6f9fc;
}

.activation-email > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 10px;
  background: #e6f1fc;
  color: #1766bd;
  font-weight: 800;
}

.activation-email small,
.activation-email strong {
  display: block;
}

.activation-email small {
  margin-bottom: 3px;
  color: #82909a;
  font-size: 12px;
}

.activation-email strong {
  color: #17232b;
  font-size: 14px;
}

.activation-state,
.activation-success,
.activation-error {
  display: grid;
  min-height: 300px;
  place-items: center;
  align-content: center;
  gap: 14px;
  text-align: center;
}

.activation-success > span,
.activation-error > span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 18px;
  background: #e7f7ee;
  color: #1f9c64;
  font-size: 25px;
  font-weight: 800;
}

.activation-error > span {
  background: #dfdfdf;
  color: #ee0000;
}

.activation-success h2,
.activation-error h2,
.activation-success p,
.activation-error p {
  margin: 0;
}

.activation-success p,
.activation-error p,
.activation-state p {
  max-width: 390px;
  color: #74828c;
  font-size: 14px;
  line-height: 1.65;
}

.activation-success .login-submit {
  width: auto;
  min-width: 190px;
}

.activation-link-box {
  display: grid;
  gap: 10px;
  margin: 24px 0 18px;
}

.activation-link-box label {
  color: #35434d;
  font-size: 13px;
  font-weight: 700;
}

.activation-link-box textarea {
  min-height: 92px;
  padding: 13px 14px;
  resize: none;
  border: 1px solid #d8e0e4;
  border-radius: 12px;
  background: #f7f9fa;
  color: #34434c;
  font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.activation-link-box .primary-action {
  justify-self: start;
}

.invitation-warning {
  display: flex;
  gap: 12px;
  padding: 15px;
  border: 1px solid #dfdfdf;
  border-radius: 13px;
  background: #dfdfdf;
  color: #80503d;
}

.invitation-warning > span {
  font-weight: 900;
}

.invitation-warning strong,
.invitation-warning small {
  display: block;
}

.invitation-warning strong {
  margin-bottom: 4px;
  font-size: 13px;
}

.invitation-warning small {
  font-size: 12px;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  .user-row {
    grid-template-columns: 46px minmax(190px, 1.3fr) minmax(170px, 1fr) 120px 90px;
  }

  .user-row__role {
    display: none;
  }

  .invitation-row {
    grid-template-columns: 44px minmax(210px, 1fr) 125px 90px;
  }

  .invitation-row__expiry {
    display: none;
  }
}

@media (max-width: 760px) {
  .user-metrics {
    grid-template-columns: 1fr;
  }

  .users-panel__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .user-row,
  .invitation-row {
    grid-template-columns: 42px 1fr auto;
    gap: 10px;
  }

  .user-row__organization,
  .user-row__role,
  .invitation-row .access-status,
  .invitation-row__expiry {
    display: none;
  }

  .user-row .access-status {
    grid-column: 2;
    justify-self: start;
  }

  .user-row__self,
  .user-status-action {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .activation-card {
    padding: 28px 22px;
  }
}

/* Onderhoudsoverzicht */
.maintenance-page {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.maintenance-heading {
  margin-bottom: 0;
}

.maintenance-filter-panel {
  display: grid;
  grid-template-columns: minmax(145px, .7fr) minmax(145px, .7fr) minmax(190px, 1fr) minmax(240px, 1.35fr) auto;
  align-items: end;
  gap: 13px;
  padding: 18px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(32, 45, 51, .045);
}

.smart-filter-overview-filter-panel {
  grid-template-columns: minmax(240px, 1fr) minmax(280px, 1.3fr) auto;
}

.maintenance-filter-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}

.maintenance-filter-field label {
  color: #637077;
  font-weight: 750;
}

.maintenance-filter-field :is(input, select) {
  width: 100%;
  height: 44px;
  padding: 0 13px;
  color: var(--ink);
  background: #fbfcfc;
  border: 1px solid #dce2e4;
  border-radius: 9px;
  outline: none;
}

.maintenance-filter-field :is(input, select):focus {
  background: #fff;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(238, 0, 0, .09);
}

.maintenance-filter-panel > .primary-action {
  min-width: 96px;
  height: 44px;
  justify-content: center;
}

.maintenance-presets {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 2px;
}

.maintenance-presets button {
  min-height: 31px;
  padding: 5px 12px;
  color: #5f6d73;
  background: #f6f8f8;
  border: 1px solid #e1e5e6;
  border-radius: 999px;
  cursor: pointer;
  font-size: var(--portal-type-label);
  font-weight: 750;
}

.maintenance-presets button:hover {
  color: var(--orange-dark);
  background: #fff;
  border-color: rgba(238, 0, 0, .35);
}

.maintenance-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.maintenance-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
  gap: 16px;
  align-items: start;
}

.maintenance-calendar-panel,
.maintenance-day-detail,
.maintenance-rules-panel,
.maintenance-smart-filter-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 12px 34px rgba(32, 45, 51, .045);
}

.maintenance-calendar-panel,
.maintenance-rules-panel,
.maintenance-smart-filter-panel {
  padding: 21px;
}

.maintenance-panel-heading,
.maintenance-day-detail__heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}

.maintenance-panel-heading > div:first-child > span,
.maintenance-day-detail__heading > div > span {
  color: var(--orange-dark);
  font-size: var(--portal-type-small);
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.maintenance-panel-heading h2,
.maintenance-day-detail__heading h2 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.25;
}

.maintenance-panel-heading p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: var(--portal-type-label);
  line-height: 1.5;
}

.maintenance-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px 14px;
  color: #6c787e;
  font-size: var(--portal-type-label);
}

.maintenance-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.maintenance-legend i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.maintenance-legend .low { background: #2a9d67; }
.maintenance-legend .medium { background: #eda734; }
.maintenance-legend .high { background: #d62d32; }

.maintenance-calendar {
  margin-top: 19px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.maintenance-calendar__weekdays,
.maintenance-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(92px, 1fr));
  gap: 8px;
  min-width: 700px;
}

.maintenance-calendar__weekdays {
  margin-bottom: 8px;
  color: #879298;
  text-align: center;
  font-size: var(--portal-type-label);
  font-weight: 750;
}

.maintenance-calendar__blank {
  min-height: 126px;
  background: #fafbfb;
  border: 1px dashed #e5e8e9;
  border-radius: 10px;
}

.maintenance-day {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  min-height: 126px;
  padding: 11px;
  text-align: left;
  background: #fbfcfc;
  border: 1px solid #e1e5e6;
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.maintenance-day:hover {
  border-color: #b8c3c7;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(27, 40, 46, .07);
}

.maintenance-day:focus-visible,
.maintenance-rule-actions button:focus-visible,
.maintenance-rule-switch:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .2);
  outline-offset: 2px;
}

.maintenance-day--selected {
  border-color: var(--orange);
  box-shadow: 0 0 0 2px rgba(238, 0, 0, .09);
}

.maintenance-day--low { background: linear-gradient(180deg, #fff, #f2fbf6); }
.maintenance-day--medium { background: linear-gradient(180deg, #fff, #fff9ed); }
.maintenance-day--high { background: linear-gradient(180deg, #fff, #fff2f2); }

.maintenance-day__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 7px;
  min-height: 32px;
}

.maintenance-day time {
  color: #435158;
  font-size: var(--portal-type-label);
  font-weight: 800;
}

.maintenance-risk {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
  font-size: 10px;
  font-weight: 800;
}

.maintenance-risk--low { color: #187d50; background: #e5f6ed; }
.maintenance-risk--medium { color: #8b5b05; background: #fff1cf; }
.maintenance-risk--high { color: #b21f25; background: #ffe2e3; }

.maintenance-day > strong {
  margin-top: 9px;
  color: var(--ink);
  font-size: var(--portal-type-action);
  line-height: 1.3;
}

.maintenance-day > small,
.maintenance-day__empty {
  margin-top: 4px;
  color: #738087;
  font-size: var(--portal-type-small);
  line-height: 1.4;
}

.maintenance-day__empty {
  margin: auto 0;
  text-align: center;
}

.maintenance-day__rate {
  display: block;
  width: 100%;
  height: 4px;
  margin-top: auto;
  overflow: hidden;
  appearance: none;
  background: #e7ebec;
  border: 0;
  border-radius: 999px;
}

.maintenance-day__rate::-webkit-progress-bar {
  background: #e7ebec;
}

.maintenance-day__rate::-webkit-progress-value {
  background: #2a9d67;
  border-radius: inherit;
}

.maintenance-day__rate::-moz-progress-bar {
  background: #2a9d67;
  border-radius: inherit;
}

.maintenance-day--medium .maintenance-day__rate::-webkit-progress-value { background: #b66d00; }
.maintenance-day--high .maintenance-day__rate::-webkit-progress-value { background: #c10005; }
.maintenance-day--medium .maintenance-day__rate::-moz-progress-bar { background: #b66d00; }
.maintenance-day--high .maintenance-day__rate::-moz-progress-bar { background: #c10005; }

.maintenance-day-detail {
  position: sticky;
  top: 86px;
  padding: 21px;
}

.maintenance-day-summary {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  margin-top: 20px;
  padding: 16px;
  background: #f8faf9;
  border: 1px solid #e5e9e8;
  border-radius: 12px;
}

.maintenance-completion-ring {
  position: relative;
  display: grid;
  place-items: center;
  width: 112px;
  height: 112px;
  border-radius: 50%;
}

.maintenance-completion-ring > svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform: rotate(-90deg);
}

.maintenance-completion-ring circle {
  fill: none;
  stroke-width: 5;
}

.maintenance-completion-ring__track {
  stroke: #e2e8e5;
}

.maintenance-completion-ring__value {
  stroke: #21885d;
  stroke-linecap: round;
}

.maintenance-completion-ring > span {
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.maintenance-completion-ring strong {
  font-size: 20px;
  line-height: 1.1;
}

.maintenance-completion-ring small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
}

.maintenance-day-summary dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.maintenance-day-summary dl div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.maintenance-day-summary dt {
  color: #7b878c;
  font-size: 10px;
}

.maintenance-day-summary dd {
  margin: 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 800;
}

.maintenance-event-list {
  display: flex;
  flex-direction: column;
  max-height: 460px;
  margin-top: 17px;
  overflow-y: auto;
  border-top: 1px solid #e8ebec;
}

.maintenance-event-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 13px 0;
  border-bottom: 1px solid #edf0f1;
}

.maintenance-event-row__status {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: #fff;
  background: #879399;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 900;
}

.maintenance-event-row__status--completed { background: #2a9d67; }
.maintenance-event-row__status--failed { background: #d62d32; }
.maintenance-event-row__status--in_progress { background: #eda734; }

.maintenance-event-row > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 3px;
}

.maintenance-event-row > div strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--portal-type-action);
}

.maintenance-event-row > div small,
.maintenance-event-row > time {
  color: #748087;
  font-size: var(--portal-type-small);
}

.maintenance-event-row > time {
  grid-column: 2 / -1;
}

.maintenance-status {
  padding: 4px 7px;
  color: #55646a;
  background: #eef1f2;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}

.maintenance-status--completed { color: #187d50; background: #e5f6ed; }
.maintenance-status--failed { color: #b21f25; background: #ffe2e3; }
.maintenance-status--in_progress { color: #8b5b05; background: #fff1cf; }

.maintenance-detail-empty,
.maintenance-rules-empty {
  display: flex;
  align-items: center;
  gap: 13px;
  color: var(--muted);
}

.maintenance-detail-empty {
  flex-direction: column;
  margin-top: 18px;
  padding: 34px 15px;
  text-align: center;
  background: #fafbfb;
  border: 1px dashed #dce2e4;
  border-radius: 12px;
}

.maintenance-detail-empty > span,
.maintenance-rules-empty > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  color: var(--orange-dark);
  background: rgba(238, 0, 0, .07);
  border-radius: 50%;
  font-weight: 900;
}

.maintenance-detail-empty p,
.maintenance-rules-empty p {
  margin: 3px 0 0;
  font-size: var(--portal-type-label);
  line-height: 1.5;
}

.maintenance-rules-panel {
  margin-top: 0;
}

.maintenance-rules-empty {
  margin-top: 18px;
  padding: 22px;
  background: #fafbfb;
  border: 1px dashed #dce2e4;
  border-radius: 11px;
}

.maintenance-rule-table-wrap {
  margin-top: 18px;
  overflow-x: auto;
  border: 1px solid #e1e5e6;
  border-radius: 10px;
}

.maintenance-rule-table {
  width: 100%;
  min-width: 970px;
  border-collapse: collapse;
}

.maintenance-rule-table th,
.maintenance-rule-table td {
  padding: 13px 14px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid #e8ebec;
  font-size: var(--portal-type-label);
}

.maintenance-rule-table th {
  color: #66747a;
  background: #f7f9f9;
  font-weight: 800;
}

.maintenance-rule-table tr:last-child td {
  border-bottom: 0;
}

.maintenance-rule-table td {
  color: #56636a;
}

.maintenance-rule-table td strong {
  color: var(--ink);
  font-size: var(--portal-type-action);
}

.maintenance-rule-table time {
  white-space: nowrap;
}

.maintenance-rule-switch {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  color: #6f7b80;
  cursor: pointer;
  font-size: var(--portal-type-label);
  font-weight: 750;
}

.maintenance-rule-switch span {
  display: block;
  width: 34px;
  height: 19px;
  padding: 3px;
  background: #bac3c6;
  border-radius: 999px;
}

.maintenance-rule-switch span::after {
  content: "";
  display: block;
  width: 13px;
  height: 13px;
  background: #fff;
  border-radius: 50%;
  transition: transform .15s ease;
}

.maintenance-rule-switch--active {
  color: #187d50;
}

.maintenance-rule-switch--active span {
  background: #2a9d67;
}

.maintenance-rule-switch--active span::after {
  transform: translateX(15px);
}

.maintenance-rule-state,
.maintenance-rule-readonly {
  color: #7b878c;
  font-size: var(--portal-type-label);
  font-weight: 750;
}

.maintenance-rule-state--active {
  color: #187d50;
}

.maintenance-rule-actions {
  display: flex;
  gap: 10px;
}

.maintenance-rule-actions button {
  color: var(--orange-dark);
  cursor: pointer;
  font-size: var(--portal-type-label);
  font-weight: 750;
}

.maintenance-rule-actions button:last-child {
  color: #9f3438;
}

.maintenance-smart-filter-summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.maintenance-smart-filter-summary span {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  min-height: 28px;
  padding: 5px 9px;
  color: #607077;
  background: #f3f6f6;
  border: 1px solid #e2e7e8;
  border-radius: 999px;
  font-size: var(--portal-type-small);
  font-weight: 700;
  white-space: nowrap;
}

.maintenance-smart-filter-summary strong {
  color: var(--ink);
  font-size: var(--portal-type-action);
}

.maintenance-smart-filter-summary .maintenance-smart-filter-summary--attention {
  color: #9a6305;
  background: #fff6df;
  border-color: #f2dfad;
}

.maintenance-smart-filter-summary .maintenance-smart-filter-summary--attention strong {
  color: #8b5b05;
}

.maintenance-smart-filter-table-wrap {
  margin-top: 18px;
  overflow-x: auto;
  border: 1px solid #e1e5e6;
  border-radius: 10px;
}

.maintenance-smart-filter-table {
  width: 100%;
  min-width: 1180px;
  border-collapse: collapse;
}

.maintenance-smart-filter-table th,
.maintenance-smart-filter-table td {
  padding: 14px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e8ebec;
  font-size: var(--portal-type-label);
}

.maintenance-smart-filter-table th {
  color: #66747a;
  background: #f7f9f9;
  font-weight: 800;
  white-space: nowrap;
}

.maintenance-smart-filter-table th:first-child { width: 22%; }
.maintenance-smart-filter-table th:nth-child(2) { width: 19%; }
.maintenance-smart-filter-table th:nth-child(3) { width: 17%; }
.maintenance-smart-filter-table th:nth-child(4) { width: 16%; }
.maintenance-smart-filter-table th:nth-child(5) { width: 14%; }
.maintenance-smart-filter-table th:last-child { width: 12%; }

.maintenance-smart-filter-table tr:last-child td {
  border-bottom: 0;
}

.maintenance-smart-filter-table td {
  color: #56636a;
}

.maintenance-smart-filter-product {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
}

.maintenance-smart-filter-thumbnail {
  display: grid;
  width: 58px;
  height: 66px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #e3e7e8;
  border-radius: 9px;
  background: #fff;
}

.maintenance-smart-filter-thumbnail--machine img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50px;
  height: 58px;
  object-fit: contain;
  transform: translate(-50%, -50%);
}

.maintenance-smart-filter-thumbnail--machine {
  position: relative;
}

.maintenance-smart-filter-thumbnail--filter img {
  width: 52px;
  height: 58px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.maintenance-smart-filter-table td > strong,
.maintenance-smart-filter-identity > strong,
.maintenance-smart-filter-filter > strong,
.maintenance-smart-filter-machine {
  display: block;
  color: var(--ink);
  font-size: var(--portal-type-action);
  font-weight: 800;
  line-height: 1.35;
}

button.maintenance-smart-filter-machine {
  padding: 0;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
}

button.maintenance-smart-filter-machine:hover {
  color: var(--orange-dark);
  text-decoration: none;
}

button.maintenance-smart-filter-machine:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .18);
  outline-offset: 3px;
}

.maintenance-smart-filter-table td > small,
.maintenance-smart-filter-identity small,
.maintenance-smart-filter-filter small {
  display: block;
  margin-top: 4px;
  color: #758188;
  font-size: var(--portal-type-small);
  line-height: 1.45;
}

.maintenance-smart-filter-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 26px;
  padding: 4px 8px;
  color: #58666c;
  background: #edf1f2;
  border-radius: 999px;
  font-size: var(--portal-type-small);
  font-weight: 800;
  line-height: 1.25;
}

.maintenance-smart-filter-status i {
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  background: currentColor;
  border-radius: 50%;
}

.maintenance-smart-filter-status--good {
  color: #187d50;
  background: #e5f6ed;
}

.maintenance-smart-filter-status--soon {
  color: #8b5b05;
  background: #fff1cf;
}

.maintenance-smart-filter-status--replace,
.maintenance-smart-filter-status--expired {
  color: #b21f25;
  background: #ffe2e3;
}

.maintenance-smart-filter-status--off {
  color: #6f7b80;
  background: #eef1f2;
}

.maintenance-smart-filter-table progress {
  display: block;
  width: 100%;
  height: 6px;
  margin-top: 8px;
  overflow: hidden;
  appearance: none;
  background: #e5e9ea;
  border: 0;
  border-radius: 999px;
}

.maintenance-smart-filter-table progress::-webkit-progress-bar {
  background: #e5e9ea;
  border-radius: 999px;
}

.maintenance-smart-filter-table progress::-webkit-progress-value {
  background: #2a9d67;
  border-radius: 999px;
}

.maintenance-smart-filter-table progress::-moz-progress-bar {
  background: #2a9d67;
  border-radius: 999px;
}

.maintenance-smart-filter-row--soon progress::-webkit-progress-value { background: #eda734; }
.maintenance-smart-filter-row--soon progress::-moz-progress-bar { background: #eda734; }
.maintenance-smart-filter-row--replace progress::-webkit-progress-value,
.maintenance-smart-filter-row--expired progress::-webkit-progress-value { background: #d62d32; }
.maintenance-smart-filter-row--replace progress::-moz-progress-bar,
.maintenance-smart-filter-row--expired progress::-moz-progress-bar { background: #d62d32; }
.maintenance-smart-filter-row--off progress::-webkit-progress-value { background: #a8b2b6; }
.maintenance-smart-filter-row--off progress::-moz-progress-bar { background: #a8b2b6; }

.maintenance-smart-filter-empty {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 18px;
  padding: 22px;
  color: var(--muted);
  background: #fafbfb;
  border: 1px dashed #dce2e4;
  border-radius: 11px;
}

.maintenance-smart-filter-empty > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  color: var(--orange-dark);
  background: rgba(238, 0, 0, .07);
  border-radius: 50%;
  font-weight: 900;
}

.maintenance-smart-filter-empty p {
  margin: 3px 0 0;
  font-size: var(--portal-type-label);
  line-height: 1.5;
}

.maintenance-rule-modal {
  width: min(660px, calc(100vw - 28px));
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
}

.maintenance-rule-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.maintenance-rule-form label:not(.maintenance-rule-active) {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #435158;
  font-weight: 750;
}

.maintenance-rule-form :is(input:not([type="checkbox"]), select) {
  width: 100%;
  height: 46px;
  padding: 0 13px;
  background: #fbfcfc;
  border: 1px solid #dce2e4;
  border-radius: 9px;
  outline: none;
}

.maintenance-rule-form :is(input:not([type="checkbox"]), select):focus {
  background: #fff;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(238, 0, 0, .09);
}

.maintenance-rule-active {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px;
  background: #f8faf9;
  border: 1px solid #e1e6e4;
  border-radius: 10px;
}

.maintenance-rule-active input {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  accent-color: var(--orange);
}

.maintenance-rule-active span {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.maintenance-rule-active small {
  color: var(--muted);
  font-size: var(--portal-type-small);
  font-weight: 500;
}

@media (max-width: 1320px) {
  .maintenance-filter-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .smart-filter-overview-filter-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .maintenance-filter-panel > .primary-action {
    width: 100%;
  }

  .smart-filter-overview-filter-panel > .primary-action {
    grid-column: 1 / -1;
  }

  .maintenance-presets {
    grid-column: auto;
    justify-content: flex-end;
  }

  .maintenance-workspace {
    grid-template-columns: 1fr;
  }

  .maintenance-day-detail {
    position: static;
  }
}

@media (max-width: 900px) {
  .maintenance-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .maintenance-panel-heading {
    flex-direction: column;
  }

  .maintenance-smart-filter-summary {
    justify-content: flex-start;
  }

  .maintenance-legend {
    justify-content: flex-start;
  }
}

@media (max-width: 620px) {
  .maintenance-page {
    gap: 14px;
  }

  .maintenance-filter-panel,
  .maintenance-rule-form {
    grid-template-columns: 1fr;
  }

  .smart-filter-overview-filter-panel > .primary-action {
    grid-column: auto;
  }

  .maintenance-presets,
  .modal-form__wide {
    grid-column: auto;
  }

  .maintenance-presets {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .maintenance-metrics {
    grid-template-columns: 1fr;
  }

  .maintenance-calendar-panel,
  .maintenance-day-detail,
  .maintenance-rules-panel,
  .maintenance-smart-filter-panel {
    padding: 16px;
  }

  .maintenance-day-summary {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .maintenance-day-summary dl {
    width: 100%;
  }

  .maintenance-rules-panel .primary-action {
    width: 100%;
    justify-content: center;
  }
}

[data-corner-mode="square"] :is(
  .maintenance-filter-panel,
  .maintenance-calendar-panel,
  .maintenance-day-detail,
  .maintenance-rules-panel,
  .maintenance-smart-filter-panel,
  .maintenance-day,
  .maintenance-calendar__blank,
  .maintenance-day-summary,
  .maintenance-detail-empty,
  .maintenance-rules-empty,
  .maintenance-smart-filter-table-wrap,
  .maintenance-smart-filter-empty,
  .maintenance-rule-table-wrap,
  .maintenance-rule-form :is(input, select),
  .maintenance-rule-active
) {
  border-radius: 0;
}


/* Source: dealers-v1.css */
.dealers-page {
  gap: 18px;
}

.dealers-panel {
  min-height: 430px;
  padding: 0 22px 18px;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 16px;
}

.dealers-panel__header {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e9edef;
}

.dealers-panel__header > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.dealers-panel__header strong {
  color: #17232b;
  font-size: 15px;
}

.dealers-panel__header small {
  color: #81909a;
  font-size: 11px;
}

.dealer-list {
  display: flex;
  flex-direction: column;
}

.dealer-row {
  display: grid;
  grid-template-columns: minmax(235px, 1.55fr) 72px 75px 92px 80px 106px 16px;
  gap: 16px;
  width: 100%;
  min-height: 78px;
  align-items: center;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  text-align: left;
  transition: background-color .16s ease;
}

.dealer-row:last-child {
  border-bottom: 0;
}

.dealer-row:hover {
  background: #fbfcfc;
}

.dealer-row:focus-visible {
  outline: 2px solid #ee0000;
  outline-offset: 2px;
}

.dealer-row__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.dealer-row__identity > div,
.dealer-row__metric {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.dealer-row__identity strong,
.dealer-row__metric strong {
  overflow: hidden;
  color: #17232b;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dealer-row__identity small,
.dealer-row__metric small {
  overflow: hidden;
  color: #81909a;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dealer-row__icon,
.dealer-empty-icon {
  display: grid;
  flex: none;
  width: 38px;
  height: 38px;
  color: #7a48a6;
  background: #f2eafb;
  border-radius: 11px;
  place-items: center;
  font-size: 11px;
  font-weight: 850;
}

.dealer-empty-icon {
  width: 50px;
  height: 50px;
  margin-bottom: 14px;
  border: 1px solid #e3d4f2;
  font-size: 14px;
}

.dealer-hero {
  display: flex;
  min-height: 132px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 24px 27px;
  background:
    radial-gradient(circle at 82% 12%, rgba(122,72,166,.11), transparent 30%),
    #fff;
  border: 1px solid #dfe5e7;
  border-radius: 16px;
}

.dealer-hero__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 18px;
}

.dealer-hero__icon {
  display: grid;
  flex: none;
  width: 66px;
  height: 66px;
  color: #fff;
  background: linear-gradient(145deg, #8b56b8, #65328e);
  border-radius: 18px;
  place-items: center;
  font-size: 18px;
  font-weight: 850;
  box-shadow: 0 12px 25px rgba(101,50,142,.2);
}

.dealer-hero h1 {
  margin: 4px 0 3px;
  color: #111c24;
  letter-spacing: -.035em;
  font-size: 29px;
}

.dealer-hero p {
  margin: 0;
  color: #81909a;
  font-size: 12px;
}

.dealer-hero__actions {
  display: flex;
  flex: none;
  align-items: center;
  gap: 10px;
}

.dealer-detail-grid {
  display: grid;
  grid-template-columns: minmax(300px, .75fr) minmax(360px, 1.25fr);
  gap: 14px;
  margin-top: 14px;
}

.dealer-contact-panel,
.dealer-scope-panel {
  min-height: 300px;
}

.dealer-scope-note {
  display: flex;
  gap: 12px;
  margin-top: 14px;
  padding: 15px;
  color: #286a4c;
  background: #edf9f3;
  border: 1px solid #cfeadb;
  border-radius: 11px;
}

.dealer-scope-note--neutral {
  color: #58666e;
  background: #f6f8f9;
  border-color: #e2e7e9;
}

.dealer-scope-note > span {
  display: grid;
  flex: none;
  width: 28px;
  height: 28px;
  color: #fff;
  background: #2ca36a;
  border-radius: 8px;
  place-items: center;
  font-size: 12px;
  font-weight: 850;
}

.dealer-scope-note--neutral > span {
  background: #71818a;
}

.dealer-scope-note strong {
  display: block;
  color: inherit;
  font-size: 12px;
}

.dealer-scope-note p {
  margin: 4px 0 0;
  color: inherit;
  font-size: 10px;
  line-height: 1.55;
}

.dealer-customer-list {
  display: flex;
  flex-direction: column;
}

.dealer-customer-row {
  display: grid;
  grid-template-columns: 34px minmax(220px, 1.4fr) 70px 75px 90px 105px 16px;
  gap: 12px;
  width: 100%;
  min-height: 68px;
  align-items: center;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  text-align: left;
}

.dealer-customer-row:last-child {
  border-bottom: 0;
}

.dealer-customer-row:hover {
  background: #fbfcfc;
}

.dealer-customer-row > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.dealer-customer-row strong {
  overflow: hidden;
  color: #17232b;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dealer-customer-row small {
  overflow: hidden;
  color: #81909a;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .dealer-row {
    grid-template-columns: minmax(220px, 1.4fr) 70px 75px 92px 106px 16px;
  }

  .dealer-row__metric:nth-of-type(5) {
    display: none;
  }

  .dealer-detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .dealer-row {
    grid-template-columns: 1fr auto 14px;
    padding: 12px 0;
  }

  .dealer-row__metric,
  .dealer-row .customer-health {
    display: none;
  }

  .dealer-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .dealer-hero__actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .dealer-customer-row {
    grid-template-columns: 34px 1fr auto 14px;
  }

  .dealer-customer-row > div:not(.dealer-customer-row__name),
  .dealer-customer-row .customer-health {
    display: none;
  }
}


/* Source: service-v1.css */
.service-page {
  gap: 18px;
}

.service-live-label {
  display: inline-flex;
  height: 36px;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  color: #267c53;
  background: #eaf8f1;
  border: 1px solid #d1ecde;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 750;
}

.service-live-label i,
.source-state i {
  width: 7px;
  height: 7px;
  background: #2aa66b;
  border-radius: 50%;
}

.service-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 13px;
}

.service-page > .service-metrics,
.service-page > .service-panel {
  margin-top: 22px;
}

.service-panel {
  min-height: 430px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 16px;
  scroll-margin-top: 88px;
}

.service-panel__heading {
  display: flex;
  min-height: 78px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 24px;
  border-bottom: 1px solid #e8ecee;
}

.service-panel__heading span,
.service-panel__heading h2 {
  display: block;
}

.service-panel__heading span {
  margin-bottom: 5px;
  color: #ee0000;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.service-panel__heading h2 {
  margin: 0;
  color: #111c24;
  font-size: 20px;
  font-weight: 550;
}

.service-filters {
  display: inline-flex;
  padding: 3px;
  background: #f1f4f5;
  border-radius: 10px;
}

.service-filters button {
  min-width: 70px;
  height: 31px;
  padding: 0 11px;
  cursor: pointer;
  color: #728089;
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 750;
}

.service-filters button.active {
  color: #c10005;
  background: #fff;
  box-shadow: 0 2px 7px rgba(28,40,47,.08);
}

.service-panel:focus {
  outline: none;
}

.service-panel:focus-visible {
  outline: 3px solid rgba(52, 120, 197, .22);
  outline-offset: 3px;
}

.service-filter-context {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 16px 24px 4px;
  padding: 12px 14px;
  color: #53636b;
  background: #f6f8fa;
  border: 1px solid #dfe7ec;
  border-radius: 10px;
  font-size: 11px;
  line-height: 1.55;
}

.service-filter-context > span {
  display: grid;
  flex: none;
  width: 25px;
  height: 25px;
  color: var(--blue);
  background: var(--blue-soft);
  border-radius: 8px;
  place-items: center;
}

.service-filter-context > span svg {
  width: 15px;
  height: 15px;
}

.service-filter-context p {
  margin: 2px 0 0;
}

.service-filter-context strong {
  color: #293841;
}

.service-list {
  display: flex;
  flex-direction: column;
}

.service-row {
  display: grid;
  grid-template-columns: 40px minmax(245px, 1.5fr) minmax(160px, .9fr) 92px 120px 95px 16px;
  gap: 14px;
  width: 100%;
  min-height: 82px;
  align-items: center;
  padding: 10px 24px;
  cursor: pointer;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  text-align: left;
  transition: background-color .16s ease;
}

.service-row:last-child {
  border-bottom: 0;
}

.service-row:hover {
  background: #fbfcfc;
}

.service-row:focus-visible {
  outline: 2px solid #ee0000;
  outline-offset: -2px;
}

.service-severity {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  font-size: 14px;
  font-weight: 850;
}

.service-severity--fault {
  color: #c10005;
  background: #dfdfdf;
}

.service-severity--warning {
  color: #c10005;
  background: #dfdfdf;
}

.service-row__message,
.service-row__machine,
.service-row__priority,
.service-row__status,
.service-row__time {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.service-row strong {
  overflow: hidden;
  color: #17232b;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.service-row small,
.service-row span:not(.service-severity):not(.priority-badge):not(.customer-row__arrow) {
  overflow: hidden;
  color: #81909a;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.priority-badge {
  display: inline-flex;
  width: fit-content;
  min-height: 25px;
  align-items: center;
  justify-content: center;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}

.priority-badge--low {
  color: #62717a;
  background: #edf1f3;
}

.priority-badge--normal {
  color: #286ba8;
  background: #eaf3fc;
}

.priority-badge--high {
  color: #c10005;
  background: #dfdfdf;
}

.priority-badge--urgent {
  color: #c10005;
  background: #dfdfdf;
}

.service-empty {
  display: grid;
  min-height: 310px;
  place-items: center;
  align-content: center;
  gap: 8px;
  padding: 32px;
  color: #7f8c95;
  text-align: center;
}

.service-empty > span {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  color: #24865a;
  background: #e8f7ef;
  border-radius: 15px;
  font-size: 18px;
  font-weight: 850;
}

.service-empty strong {
  color: #223039;
  font-size: 14px;
}

.service-empty p {
  max-width: 450px;
  margin: 0;
  font-size: 11px;
}

.service-hero {
  display: flex;
  min-height: 136px;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding: 24px 27px;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 16px;
}

.service-hero--fault {
  background: radial-gradient(circle at 82% 12%, rgba(212,63,65,.09), transparent 30%), #fff;
}

.service-hero--warning {
  background: radial-gradient(circle at 82% 12%, rgba(231,116,33,.1), transparent 30%), #fff;
}

.service-hero__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 18px;
}

.service-hero__identity > span {
  display: grid;
  flex: none;
  width: 66px;
  height: 66px;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, #ee0000, #c10005);
  border-radius: 18px;
  font-size: 24px;
  font-weight: 850;
  box-shadow: 0 12px 25px rgba(188,49,53,.18);
}

.service-hero--warning .service-hero__identity > span {
  background: linear-gradient(145deg, #ee0000, #c10005);
  box-shadow: 0 12px 25px rgba(204,93,24,.18);
}

.service-hero h1 {
  margin: 4px 0 4px;
  color: #111c24;
  letter-spacing: -.03em;
  font-size: 27px;
}

.service-hero p {
  margin: 0;
  color: #7f8d96;
  font-size: 11px;
}

.source-state {
  display: inline-flex;
  flex: none;
  min-height: 32px;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}

.source-state--active {
  color: #c10005;
  background: #dfdfdf;
}

.source-state--active i { background: #c10005; }

.source-state--closed {
  color: #267c53;
  background: #eaf8f1;
}

.service-source-warning {
  display: flex;
  gap: 12px;
  padding: 14px 17px;
  color: #994020;
  background: #dfdfdf;
  border: 1px solid #dfdfdf;
  border-radius: 12px;
}

.service-source-warning > span {
  display: grid;
  flex: none;
  width: 28px;
  height: 28px;
  place-items: center;
  color: #fff;
  background: #ee0000;
  border-radius: 8px;
  font-weight: 850;
}

.service-source-warning strong {
  display: block;
  font-size: 11px;
}

.service-source-warning p {
  margin: 3px 0 0;
  font-size: 10px;
}

.service-detail-grid {
  display: grid;
  grid-template-columns: minmax(320px, .9fr) minmax(380px, 1.1fr);
  gap: 14px;
  margin-top: 14px;
}

.service-facts-panel,
.service-workflow-panel {
  min-height: 345px;
}

.service-case-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
  padding-top: 14px;
}

.service-case-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #34434b;
  font-size: 10px;
  font-weight: 750;
}

.service-case-form select,
.service-case-form textarea {
  width: 100%;
  color: #17232b;
  background: #fbfcfc;
  border: 1px solid #dce2e4;
  border-radius: 9px;
  outline: none;
  font: inherit;
  font-weight: 600;
}

.service-case-form select {
  height: 42px;
  padding: 0 11px;
}

.service-case-form textarea {
  min-height: 92px;
  padding: 11px;
  resize: vertical;
  line-height: 1.5;
}

.service-case-form select:focus,
.service-case-form textarea:focus {
  border-color: #ee0000;
  box-shadow: 0 0 0 3px rgba(242,103,44,.1);
}

.service-case-form__wide {
  grid-column: 1 / -1;
}

.service-form-note {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 11px;
  color: #687780;
  background: #f4f7f8;
  border-radius: 9px;
}

.service-form-note span {
  display: grid;
  flex: none;
  width: 22px;
  height: 22px;
  place-items: center;
  color: #fff;
  background: #71818a;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 850;
}

.service-form-note p {
  margin: 0;
  font-size: 10px;
  line-height: 1.45;
}

.service-readonly,
.service-timeline-empty {
  display: grid;
  min-height: 230px;
  place-items: center;
  align-content: center;
  gap: 7px;
  color: #7e8b94;
  text-align: center;
}

.service-readonly > span,
.service-timeline-empty > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: #3d72a5;
  background: #eaf3fc;
  border-radius: 11px;
  font-weight: 850;
}

.service-readonly strong,
.service-timeline-empty strong {
  color: #334149;
  font-size: 11px;
}

.service-readonly p,
.service-timeline-empty p {
  max-width: 400px;
  margin: 0;
  font-size: 10px;
}

.service-timeline {
  position: relative;
  display: flex;
  max-height: 380px;
  flex-direction: column;
  overflow: auto;
  padding: 15px 0 0 4px;
}

.service-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 11px;
  padding: 0 0 18px;
}

.service-timeline__item::before {
  position: absolute;
  top: 13px;
  bottom: 0;
  left: 6px;
  width: 1px;
  content: "";
  background: #dfe5e7;
}

.service-timeline__item:last-child::before {
  display: none;
}

.service-timeline__item > span {
  z-index: 1;
  width: 13px;
  height: 13px;
  margin-top: 2px;
  background: #ee0000;
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #dfdfdf;
}

.service-timeline__item strong,
.service-timeline__item small {
  display: block;
}

.service-timeline__item strong {
  color: #25323a;
  font-size: 11px;
}

.service-timeline__item small {
  margin-top: 4px;
  color: #83909a;
  font-size: 10px;
}

.service-timeline__item p {
  margin: 8px 0 0;
  padding: 9px 11px;
  color: #526169;
  background: #f6f8f9;
  border-radius: 8px;
  font-size: 10px;
  line-height: 1.5;
}

.service-heading-actions,
.service-panel__actions,
.service-hero__states {
  display: flex;
  align-items: center;
  gap: 10px;
}

.service-heading-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.service-heading-actions .secondary-outline-action,
.service-panel__actions .secondary-outline-action {
  width: auto;
  min-height: 38px;
  margin: 0;
  padding: 0 15px;
}

.service-panel__actions {
  justify-content: flex-end;
}

.service-archive-all {
  color: #a00005;
  border-color: #e4b8ba;
}

.service-archive-all:disabled {
  cursor: not-allowed;
  opacity: .48;
}

.service-metrics.service-archive-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-archive-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 17px;
  color: #42545f;
  background: #eef5fa;
  border: 1px solid #d8e7f1;
  border-radius: 12px;
}

.service-archive-note > span {
  display: grid;
  flex: none;
  width: 28px;
  height: 28px;
  place-items: center;
  color: #fff;
  background: #3979a9;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 850;
}

.service-archive-note strong {
  display: block;
  color: #253640;
  font-size: 11px;
}

.service-archive-note p {
  margin: 3px 0 0;
  font-size: 10px;
  line-height: 1.5;
}

.service-hero__states {
  flex: none;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.source-state--archived {
  color: #4f6370;
  background: #e9eef1;
}

.source-state--archived i {
  background: #71848f;
}

.service-archive-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 14px;
  padding: 20px 24px;
  background: #fff;
  border: 1px solid #e6c8ca;
  border-radius: 16px;
}

.service-archive-callout--restore {
  background: #f8fcfa;
  border-color: #cfe8da;
}

.service-archive-callout > div > span {
  color: #ee0000;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.service-archive-callout h2 {
  margin: 4px 0 5px;
  color: #14212a;
  font-size: 18px;
}

.service-archive-callout p {
  max-width: 700px;
  margin: 0;
  color: #687984;
  font-size: 11px;
  line-height: 1.5;
}

.service-archive-callout :is(.primary-action, .secondary-outline-action) {
  flex: none;
  width: auto;
  min-width: 130px;
  margin: 0;
}

@media (max-width: 1180px) {
  .service-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .service-row {
    grid-template-columns: 40px minmax(220px, 1.5fr) minmax(145px, .9fr) 92px 120px 16px;
  }

  .service-row__time {
    display: none;
  }
}

@media (max-width: 820px) {
  .service-metrics,
  .service-detail-grid {
    grid-template-columns: 1fr;
  }

  .service-panel__heading,
  .service-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .service-panel__actions,
  .service-heading-actions,
  .service-hero__states {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .service-panel__actions .secondary-outline-action {
    width: 100%;
  }

  .service-row {
    grid-template-columns: 40px 1fr auto 16px;
    padding: 12px 16px;
  }

  .service-row__machine,
  .service-row__status,
  .service-row__time {
    display: none;
  }
}

@media (max-width: 560px) {
  .service-metrics {
    grid-template-columns: 1fr;
  }

  .service-case-form {
    grid-template-columns: 1fr;
  }

  .service-archive-metrics {
    grid-template-columns: 1fr;
  }

  .service-archive-callout {
    align-items: stretch;
    flex-direction: column;
  }

  .service-archive-callout :is(.primary-action, .secondary-outline-action) { width: 100%; }
}


/* Source: reports-v1.css */
.reports-page {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.reports-heading {
  align-items: flex-end;
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: space-between;
  margin-bottom: 4px;
}

.reports-heading h1 {
  font-size: 35px;
  font-weight: 500;
  letter-spacing: -1.4px;
  margin: 10px 0 8px;
}

.reports-heading p {
  color: #7b8994;
  margin: 0;
}

.report-export {
  column-gap: 8px;
  justify-content: center;
  min-width: 154px;
}

.report-export > span {
  flex: none;
  margin: 0;
}

.report-export-actions {
  align-items: center;
  display: flex;
  flex: none;
  gap: 10px;
}

.report-filter-panel {
  align-items: flex-end;
  background: #fff;
  border: 1px solid #dbe2e5;
  border-radius: 16px;
  display: grid;
  gap: 12px;
  grid-template-columns: auto 142px 142px minmax(180px, 1fr) minmax(190px, 1fr) auto;
  padding: 15px 18px;
}

.report-filter-panel label {
  color: #41515a;
  display: flex;
  flex-direction: column;
  font-size: 13px;
  font-weight: 700;
  gap: 7px;
}

.report-filter-panel input,
.report-filter-panel select {
  background: #fafcfc;
  border: 1px solid #d7dfe2;
  border-radius: 10px;
  color: #14232d;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  height: 42px;
  min-width: 0;
  padding: 0 11px;
}

.report-presets {
  background: #f0f3f4;
  border-radius: 11px;
  display: flex;
  gap: 3px;
  padding: 4px;
}

.report-presets button {
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: #687983;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  height: 34px;
  padding: 0 13px;
  white-space: nowrap;
}

.report-presets button.active {
  background: #fff;
  box-shadow: 0 2px 8px rgba(28, 44, 54, .08);
  color: #ee0000;
}

.report-metrics {
  display: grid;
  gap: 15px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.report-materials {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.report-materials__heading {
  margin-bottom: 0;
}

.ingredient-panel-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 9px;
  min-width: 0;
}

.ingredient-unit-switch {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  padding: 3px;
  background: #f0f3f4;
  border: 1px solid #e0e6e8;
  border-radius: 8px;
}

.ingredient-unit-switch button {
  min-width: 43px;
  height: 27px;
  padding: 0 7px;
  color: #68777e;
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.ingredient-unit-switch button:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, .65);
}

.ingredient-unit-switch button:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 1px;
}

.ingredient-unit-switch button[aria-pressed="true"] {
  color: var(--red);
  background: #fff;
  box-shadow: 0 1px 4px rgba(31, 45, 51, .1);
}

.report-material-grid {
  display: grid;
  gap: 15px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.report-material-card {
  align-items: center;
  background: #fff;
  border: 1px solid #dbe2e5;
  border-radius: var(--portal-surface-radius, 16px);
  display: grid;
  gap: 15px;
  grid-template-columns: 52px minmax(0, 1fr);
  min-width: 0;
  padding: 19px 20px;
}

.report-material-card__icon {
  align-items: center;
  border-radius: 14px;
  display: flex;
  height: 52px;
  justify-content: center;
  width: 52px;
}

.report-material-card__icon .portal-icon {
  height: 25px;
  width: 25px;
}

.report-material-card--beans .report-material-card__icon {
  background: #f6ebe4;
  color: #8a5333;
}

.report-material-card--powder .report-material-card__icon {
  background: #fff4d9;
  color: #ad7412;
}

.report-material-card--milk .report-material-card__icon {
  background: #e6f4fd;
  color: #267eb4;
}

.report-material-card > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.report-material-card small {
  color: #61717a;
  font-size: 13px;
  font-weight: 700;
}

.report-material-card strong {
  color: #14232d;
  font-size: 28px;
  font-weight: 750;
  letter-spacing: -.7px;
  line-height: 1.15;
  margin-top: 5px;
  overflow-wrap: anywhere;
}

.report-material-card em {
  color: #718089;
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
  margin-left: 4px;
}

.report-material-card p {
  color: #64757d;
  font-size: 11px;
  margin: 5px 0 0;
}

.report-materials__note {
  align-items: center;
  color: #60717a;
  display: flex;
  font-size: 11px;
  gap: 7px;
  margin: 0 2px;
}

.report-materials__note > span {
  display: flex;
  flex: none;
}

.report-materials__note .portal-icon {
  height: 16px;
  width: 16px;
}

.report-coverage {
  align-items: center;
  background: #f2f9f5;
  border: 1px solid #d5ebdd;
  border-radius: 12px;
  display: flex;
  gap: 12px;
  padding: 11px 15px;
}

.report-coverage > span {
  align-items: center;
  background: #2da56f;
  border-radius: 50%;
  color: #fff;
  display: flex;
  flex: 0 0 23px;
  font-size: 13px;
  height: 23px;
  justify-content: center;
}

.report-coverage div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.report-coverage strong {
  color: #276047;
  font-size: 13px;
}

.report-coverage small {
  color: #658274;
  font-size: 12px;
}

.reports-grid {
  display: grid;
  gap: 15px;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, .85fr);
}

.report-panel {
  background: #fff;
  border: 1px solid #dbe2e5;
  border-radius: 16px;
  min-width: 0;
  padding: 21px 24px 24px;
}

.report-panel--wide {
  display: flex;
  flex-direction: column;
}

.report-panel--wide > .report-chart {
  flex: 1 1 320px;
}

.report-panel--wide > .report-empty--compact {
  flex: 1;
}

.report-panel--full {
  grid-column: 1 / -1;
}

.report-panel__heading {
  align-items: flex-end;
  border-bottom: 1px solid #e8edef;
  display: flex;
  justify-content: space-between;
  margin-bottom: 18px;
  padding-bottom: 15px;
}

.report-panel__heading span {
  color: #ee0000;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.35px;
  text-transform: uppercase;
}

.report-panel__heading h2 {
  font-size: 21px;
  font-weight: 500;
  margin: 6px 0 0;
}

.report-panel__heading small {
  color: #8a969e;
  font-size: 11px;
}

.report-panel__chart-legend {
  align-items: center;
  display: inline-flex;
  gap: 7px;
  white-space: nowrap;
}

.report-panel__chart-legend i {
  background: #fff4df;
  border: 2px solid #f28c00;
  border-radius: 3px;
  flex: none;
  height: 10px;
  width: 10px;
}

.report-trend-heading__actions {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.report-trend-view-switch {
  align-items: center;
  background: #f2f5f5;
  border: 1px solid #dce3e5;
  border-radius: 10px;
  display: inline-flex;
  padding: 3px;
}

.report-trend-view-switch__option {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: #66747b;
  cursor: pointer;
  display: inline-flex;
  font-size: 11px;
  font-weight: 750;
  gap: 6px;
  height: 31px;
  justify-content: center;
  padding: 0 10px;
  transition: background 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.report-trend-view-switch__option svg {
  fill: none;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 16px;
}

.report-trend-view-switch__option:hover {
  color: #a90004;
}

.report-trend-view-switch__option.is-active {
  background: #fff;
  color: #c10005;
  box-shadow: 0 1px 4px rgba(36, 50, 56, .14);
}

.report-trend-view-switch__option:focus-visible {
  outline: 2px solid #c10005;
  outline-offset: 2px;
}

.report-chart {
  display: grid;
  height: auto;
  min-height: 320px;
  overflow-x: auto;
  padding: 18px 2px 0;
  position: relative;
}

.report-chart__grid,
.report-chart__plot {
  grid-column: 1;
  grid-row: 1;
  min-width: 620px;
}

.report-chart__grid {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 13px 0 25px;
  pointer-events: none;
}

.report-chart__grid span {
  align-items: center;
  color: #8b979d;
  display: flex;
  font-size: 10px;
  gap: 9px;
  height: 0;
}

.report-chart__grid b {
  flex: 0 0 32px;
  font-weight: 600;
  text-align: right;
}

.report-chart__grid i {
  border-top: 1px dashed #e1e7e9;
  flex: 1;
}

.report-chart__plot {
  display: flex;
  gap: 5px;
  padding-left: 42px;
  position: relative;
}

.report-chart__day {
  align-items: center;
  border-radius: 8px;
  display: flex;
  flex: 1 0 10px;
  flex-direction: column;
  justify-content: flex-end;
  min-width: 8px;
  position: relative;
  transition: background 150ms ease;
  z-index: 1;
}

.report-chart__day:hover {
  background: linear-gradient(to bottom, rgba(238, 0, 0, .035), rgba(238, 0, 0, .015));
}

.report-chart__value {
  color: #7c8992;
  font-size: 10px;
  font-weight: 700;
  min-height: 13px;
  transition: color 150ms ease;
}

.report-chart__day:hover .report-chart__value {
  color: #a90004;
}

.report-chart__bar {
  display: block;
  flex: 1 1 auto;
  height: auto;
  min-height: 3px;
  overflow: visible;
  width: min(24px, 72%);
}

.report-chart__bar rect {
  fill: #d90005;
  filter: drop-shadow(0 2px 2px rgba(150, 0, 4, .18));
  stroke: #b00004;
  stroke-width: .6;
}

.report-chart__bar.has-incident rect {
  fill: #e00005;
  stroke: #f28c00;
  stroke-width: 2;
}

.report-chart__day small {
  color: #9aa5ab;
  font-size: 10px;
  height: 18px;
  margin-top: 7px;
  white-space: nowrap;
}

.report-chart--wave {
  display: block;
  min-width: 0;
  overflow-x: auto;
  padding-top: 18px;
}

.report-chart__wave {
  height: 300px;
  min-width: 620px;
  overflow: visible;
  width: 100%;
}

.report-chart__wave-grid line {
  stroke: #e1e7e9;
  stroke-dasharray: 3 4;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.report-chart__wave-grid text,
.report-chart__wave-date,
.report-chart__wave-value {
  fill: #8b979d;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 10px;
  font-weight: 600;
}

.report-chart__wave-date {
  fill: #9aa5ab;
  font-weight: 500;
}

.report-chart__wave-value {
  fill: #7c8992;
  font-weight: 700;
}

.report-chart__wave-area {
  fill: url(#report-trend-wave-area-v139);
}

.report-chart__wave-area--demo {
  fill: url(#demo-report-trend-wave-area-v139);
}

.report-chart__wave-line {
  fill: none;
  filter: drop-shadow(0 3px 3px rgba(150, 0, 4, .16));
  stroke: #d90005;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}

.report-chart__wave-point circle {
  fill: #fff;
  stroke: #d90005;
  stroke-width: 2.4;
  vector-effect: non-scaling-stroke;
}

.report-chart__wave-point.has-incident circle {
  fill: #e00005;
  stroke: #f28c00;
  stroke-width: 3;
}

.report-drinks {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.report-drink {
  align-items: center;
  display: flex;
  gap: 11px;
}

.report-drink__rank {
  align-items: center;
  background: #dfdfdf;
  border-radius: 8px;
  color: #ee0000;
  display: flex;
  flex: 0 0 28px;
  font-size: 12px;
  font-weight: 800;
  height: 28px;
  justify-content: center;
}

.report-drink > div {
  flex: 1;
  min-width: 0;
}

.report-drink > div > span {
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 6px;
}

.report-drink strong,
.report-drink b {
  font-size: 13px;
}

.report-drink strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.report-drink__progress {
  display: block;
  width: 100%;
  appearance: none;
  background: #edf1f2;
  border: 0;
  border-radius: 4px;
  height: 5px;
  overflow: hidden;
}

.report-drink__progress::-webkit-progress-bar {
  background: #edf1f2;
}

.report-drink__progress::-webkit-progress-value {
  background: #d90005;
  border-radius: inherit;
}

.report-drink__progress::-moz-progress-bar {
  background: #d90005;
  border-radius: inherit;
}

.report-table-wrap {
  overflow-x: auto;
}

.report-table {
  border-collapse: collapse;
  min-width: 820px;
  width: 100%;
}

.report-table th {
  color: #89959c;
  font-size: 11px;
  letter-spacing: .35px;
  padding: 0 12px 10px;
  text-align: left;
  text-transform: uppercase;
}

.report-table td {
  border-top: 1px solid #edf1f2;
  color: #283b45;
  font-size: 13px;
  padding: 14px 12px;
}

.report-table td:first-child {
  min-width: 190px;
}

.report-table td strong,
.report-table td small {
  display: block;
}

.report-table td small {
  color: #89969d;
  font-size: 11px;
  margin-top: 4px;
}

.availability-pill {
  background: #e7f7ef;
  border-radius: 999px;
  color: #168153;
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  padding: 6px 10px;
}

.availability-pill--medium {
  background: #dfdfdf;
  color: #c10005;
}

.availability-pill--low {
  background: #dfdfdf;
  color: #c10005;
}

.availability-pill--unknown {
  background: #eff2f3;
  color: #77878f;
}

.report-empty,
.report-loading {
  align-items: center;
  color: #7e8c94;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 280px;
  text-align: center;
}

.report-empty--compact {
  min-height: 210px;
}

.report-empty > span {
  align-items: center;
  background: #eef6fb;
  border-radius: 12px;
  color: #2f75bc;
  display: flex;
  font-size: 19px;
  height: 50px;
  justify-content: center;
  margin-bottom: 12px;
  width: 50px;
}

.report-empty strong {
  color: #263842;
  font-size: 14px;
}

.report-empty p,
.report-loading p {
  font-size: 12px;
  margin: 7px 0 0;
}

@media (max-width: 1320px) {
  .report-filter-panel {
    grid-template-columns: auto repeat(2, 135px) minmax(170px, 1fr) minmax(180px, 1fr);
  }

  .report-filter-panel > button:last-child {
    grid-column: 5;
  }
}

@media (max-width: 1050px) {
  .reports-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .report-export-actions {
    justify-content: flex-end;
    max-width: 100%;
    width: 100%;
  }

  .report-filter-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-presets {
    grid-column: 1 / -1;
  }

  .report-filter-panel > button:last-child {
    grid-column: auto;
  }

  .report-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reports-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .reports-heading {
    align-items: stretch;
    flex-direction: column;
    gap: 15px;
  }

  .report-export-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-export-actions .report-export {
    min-width: 0;
    width: 100%;
  }

  .report-filter-panel,
  .report-metrics {
    grid-template-columns: 1fr;
  }

  .report-materials__heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .ingredient-panel-heading-actions {
    justify-content: space-between;
    width: 100%;
  }

  .report-material-grid {
    grid-template-columns: 1fr;
  }

  .report-presets {
    overflow-x: auto;
  }

  .report-panel {
    padding: 18px;
  }

  .report-panel__heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .report-trend-heading__actions {
    align-items: flex-start;
    margin-top: 7px;
    width: 100%;
  }
}


/* Source: activity-v1.css */
/* FACILenjoy activity layout fix v1 */
.activity-page {
  padding-bottom: 48px;
}

.activity-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.activity-heading h1 {
  margin: 11px 0 8px;
  color: #102033;
  font-size: 39px;
  font-weight: 500;
  letter-spacing: -1.5px;
}

.activity-heading p {
  margin: 0;
  color: #7c8b9d;
  font-size: 17px;
}

.activity-secure-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid #cce8dc;
  border-radius: 24px;
  background: #ebf8f2;
  color: #16855c;
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

.activity-secure-badge i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #2eaa78;
}

.activity-filter-panel {
  display: grid;
  grid-template-columns: auto minmax(130px, .75fr) minmax(130px, .75fr) minmax(160px, 1fr) minmax(145px, .9fr) minmax(170px, 1fr) max-content;
  align-items: end;
  gap: 14px;
  padding: 22px;
  border: 1px solid #dce3e6;
  border-radius: 18px;
  background: #fff;
}

.activity-filter-panel > * {
  min-width: 0;
}

.activity-filter-panel label {
  display: grid;
  gap: 8px;
  color: #293848;
  font-size: 13px;
  font-weight: 800;
}

.activity-filter-panel input,
.activity-filter-panel select {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid #d6dfe3;
  border-radius: 11px;
  outline: none;
  background: #fff;
  color: #102033;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}

.activity-filter-panel input:focus,
.activity-filter-panel select:focus {
  border-color: #ee0000;
  box-shadow: 0 0 0 3px rgba(243, 107, 43, .1);
}

.activity-presets {
  display: flex;
  min-height: 48px;
  padding: 4px;
  border-radius: 12px;
  background: #f0f3f4;
}

.activity-presets button {
  padding: 0 14px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #68798a;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.activity-presets button.active {
  background: #fff;
  color: #ee0000;
  box-shadow: 0 2px 8px rgba(16, 32, 51, .08);
}

.activity-filter-panel > button {
  min-height: 48px;
  justify-self: end;
}

.activity-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
}

.activity-metrics .detail-metric {
  min-height: 130px;
}

.activity-log-panel {
  overflow: hidden;
  border: 1px solid #dce3e6;
  border-radius: 18px;
  background: #fff;
}

.activity-log-panel__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 28px 20px;
  border-bottom: 1px solid #e7ecee;
}

.activity-log-panel__heading span {
  display: block;
  margin-bottom: 8px;
  color: #ee0000;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}

.activity-log-panel__heading h2 {
  margin: 0;
  color: #102033;
  font-size: 24px;
  font-weight: 600;
}

.activity-log-panel__heading small {
  color: #8190a0;
  font-size: 13px;
}

.activity-timeline {
  padding: 0 28px;
}

.activity-event {
  display: grid;
  grid-template-columns: 46px minmax(240px, 1.5fr) minmax(180px, .8fr) minmax(170px, .75fr) 170px;
  align-items: center;
  gap: 18px;
  min-height: 100px;
  border-bottom: 1px solid #edf0f1;
}

.activity-event__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: #eef4fa;
  color: #2873c5;
  font-size: 13px;
  font-weight: 900;
}

.activity-event--authentication .activity-event__icon {
  background: #e8f7f0;
  color: #209668;
}

.activity-event--machines .activity-event__icon,
.activity-event--organizations .activity-event__icon {
  background: #dfdfdf;
  color: #ee0000;
}

.activity-event--service .activity-event__icon {
  background: #dfdfdf;
  color: #ee0000;
}

.activity-event__main,
.activity-event__actor,
.activity-event__organization,
.activity-event time {
  min-width: 0;
}

.activity-event__main > strong,
.activity-event__actor strong,
.activity-event__organization strong {
  display: block;
  overflow: hidden;
  color: #102033;
  font-size: 14px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-event__main p,
.activity-event__actor span {
  overflow: hidden;
  margin: 4px 0 0;
  color: #7f8e9e;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-event__category,
.activity-event__actor small,
.activity-event__organization small {
  display: block;
  margin-bottom: 5px;
  color: #91a0ae;
  font-size: 11px;
  font-weight: 700;
}

.activity-event__category {
  color: #ee0000;
  font-weight: 900;
  letter-spacing: .7px;
  text-transform: uppercase;
}

.activity-event time {
  color: #4d5f70;
  font-size: 13px;
  font-weight: 800;
  text-align: right;
}

.activity-event time span {
  display: block;
  margin-top: 5px;
  color: #93a0ad;
  font-size: 11px;
  font-weight: 500;
}

.activity-page-empty {
  display: grid;
  place-items: center;
  min-height: 330px;
  padding: 40px;
  color: #102033;
  text-align: center;
}

.activity-page-empty > span {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 17px;
  background: #e8f7f0;
  color: #209668;
  font-size: 25px;
}

.activity-page-empty p {
  margin: -24px 0 0;
  color: #8290a0;
  font-size: 13px;
}

.activity-load-more {
  display: flex;
  justify-content: center;
  padding: 22px;
}

.activity-privacy-note {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 16px 20px;
  border: 1px solid #cce8dc;
  border-radius: 14px;
  background: #f1faf6;
  color: #246f57;
}

.activity-privacy-note > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #2fa879;
  color: #fff;
  font-weight: 900;
}

.activity-privacy-note strong,
.activity-privacy-note small {
  display: block;
}

.activity-privacy-note strong {
  font-size: 14px;
}

.activity-privacy-note small {
  margin-top: 4px;
  font-size: 12px;
}

@media (max-width: 1500px) {
  .activity-filter-panel {
    grid-template-columns: auto repeat(2, minmax(135px, .7fr)) minmax(170px, 1fr) minmax(150px, .85fr);
  }

  .activity-search {
    grid-column: 1 / span 4;
  }

  .activity-filter-panel > button {
    grid-column: 5;
    justify-self: stretch;
  }

  .activity-event {
    grid-template-columns: 46px minmax(220px, 1.4fr) minmax(160px, .8fr) minmax(150px, .7fr) 145px;
  }
}

@media (max-width: 1050px) {
  .activity-filter-panel,
  .activity-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .activity-presets,
  .activity-search {
    grid-column: span 2;
  }

  .activity-filter-panel > button {
    grid-column: span 2;
  }

  .activity-event {
    grid-template-columns: 46px 1fr 150px;
    padding: 18px 0;
  }

  .activity-event__organization {
    grid-column: 2;
  }

  .activity-event time {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 700px) {
  .activity-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .activity-filter-panel,
  .activity-metrics {
    grid-template-columns: 1fr;
  }

  .activity-presets,
  .activity-search {
    grid-column: auto;
  }

  .activity-filter-panel > button {
    grid-column: auto;
  }

  .activity-event {
    grid-template-columns: 42px 1fr;
  }

  .activity-event__actor,
  .activity-event__organization,
  .activity-event time {
    grid-column: 2;
    grid-row: auto;
    text-align: left;
  }

  .activity-log-panel__heading {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Source: settings-v1.css */
/* FACILenjoy settings v1 */
.settings-page {
  max-width: 1600px;
  margin: 0 auto;
}

.settings-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.settings-heading h1 {
  margin: 11px 0 8px;
  font-size: clamp(31px, 3vw, 43px);
  letter-spacing: -0.045em;
}

.settings-heading p {
  margin: 0;
  color: #7b8995;
  font-size: 16px;
}

.settings-secure-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex: none;
  padding: 13px 18px;
  color: #177b51;
  background: #ebf8f1;
  border: 1px solid #c9ead9;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
}

.settings-secure-badge i {
  width: 8px;
  height: 8px;
  background: #2aa66f;
  border-radius: 50%;
}

.settings-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.settings-metrics .detail-metric {
  min-height: 130px;
}

.settings-metrics .detail-metric > strong {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 21px;
}

.settings-metrics .detail-metric > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

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

.settings-card {
  min-width: 0;
  padding: 25px;
  background: #fff;
  border: 1px solid #dde4e7;
  border-radius: 15px;
}

.settings-card--wide {
  grid-column: 1 / -1;
}

.settings-card__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 19px;
  border-bottom: 1px solid #edf0f1;
}

.settings-card__heading > div > span,
.settings-readonly-card > div > span {
  color: #ee0000;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.settings-card__heading h2,
.settings-readonly-card h2 {
  margin: 6px 0 5px;
  font-size: 21px;
  letter-spacing: -0.025em;
}

.settings-card__heading p,
.settings-readonly-card p {
  max-width: 610px;
  margin: 0;
  color: #84919a;
  font-size: 12px;
  line-height: 1.55;
}

.settings-card__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 850;
}

.settings-card__icon--blue {
  color: #2d70bd;
  background: #e9f3fd;
}

.settings-card__icon--green {
  color: #20895d;
  background: #e8f7ef;
}

.settings-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  padding-top: 20px;
}

.settings-form label,
.settings-organization-select {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
  color: #38464f;
  font-size: 11px;
  font-weight: 780;
}

.settings-form input,
.settings-form select,
.settings-organization-select select {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  color: #16212a;
  background: #fbfcfc;
  border: 1px solid #d7dfe2;
  border-radius: 10px;
  outline: none;
  font-size: 13px;
  font-weight: 650;
}

.settings-form input:focus,
.settings-form select:focus,
.settings-organization-select select:focus {
  border-color: #ee0000;
  box-shadow: 0 0 0 3px rgba(239, 108, 47, 0.12);
}

.settings-form input[readonly] {
  color: #7f8b91;
  background: #f2f5f5;
}

.settings-form__wide {
  grid-column: 1 / -1;
}

.settings-form__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 3px;
  padding-top: 17px;
  border-top: 1px solid #edf0f1;
}

.settings-form__actions > span {
  color: #8a969c;
  font-size: 11px;
  line-height: 1.5;
}

.settings-form__actions .primary-action {
  flex: none;
}

.settings-password-note {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  color: #2e6951;
  background: #eff9f4;
  border: 1px solid #d1ebdd;
  border-radius: 10px;
}

.settings-password-note > span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  color: #fff;
  background: #2ca36e;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 850;
}

.settings-password-note strong,
.settings-password-note small {
  display: block;
}

.settings-password-note strong {
  font-size: 11px;
}

.settings-password-note small {
  margin-top: 3px;
  color: #698278;
  font-size: 10px;
}

.settings-password-note button {
  padding: 7px 9px;
  color: #17794f;
  background: #fff;
  border: 1px solid #cce6d8;
  border-radius: 8px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
}

.settings-session-count {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: #748189;
  font-size: 11px;
}

.settings-session-count strong {
  color: #178055;
  font-size: 21px;
}

.settings-current-session {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 15px;
  padding-top: 20px;
}

.settings-current-session__icon,
.settings-readonly-card__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #258d60;
  background: #e8f7ef;
  border-radius: 11px;
  font-weight: 850;
}

.settings-current-session > div strong,
.settings-current-session > div small {
  display: block;
}

.settings-current-session > div strong {
  font-size: 13px;
}

.settings-current-session > div small {
  margin-top: 4px;
  color: #87939a;
  font-size: 10px;
}

.settings-organization-select {
  width: min(380px, 45vw);
}

.settings-organization-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 20px;
  overflow: hidden;
  background: #dfdfdf;
  border: 1px solid #dfdfdf;
  border-radius: 10px;
}

.settings-organization-meta > div {
  min-width: 0;
  padding: 13px 15px;
  background: #f8fafa;
}

.settings-organization-meta small,
.settings-organization-meta strong {
  display: block;
}

.settings-organization-meta small {
  color: #8a969c;
  font-size: 10px;
}

.settings-organization-meta strong {
  overflow: hidden;
  margin-top: 5px;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}

.settings-readonly-card {
  display: flex;
  align-items: center;
  gap: 17px;
}

.settings-security-note {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  padding: 13px 16px;
  color: #446477;
  background: #edf6fd;
  border: 1px solid #d2e5f4;
  border-radius: 12px;
}

.settings-security-note > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: none;
  color: #fff;
  background: #397fc5;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 850;
}

.settings-security-note strong,
.settings-security-note small {
  display: block;
}

.settings-security-note strong {
  font-size: 11px;
}

.settings-security-note small {
  margin-top: 3px;
  color: #718692;
  font-size: 10px;
}

.settings-card .app-alert {
  margin: 16px 0 0;
}

@media (max-width: 1180px) {
  .settings-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .settings-grid {
    grid-template-columns: 1fr;
  }

  .settings-card--wide {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
  .settings-heading,
  .settings-card__heading,
  .settings-form__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .settings-secure-badge {
    align-self: flex-start;
  }

  .settings-metrics,
  .settings-form,
  .settings-organization-meta {
    grid-template-columns: 1fr;
  }

  .settings-organization-select {
    width: 100%;
  }

  .settings-current-session {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .settings-current-session .access-status,
  .settings-current-session .secondary-outline-action {
    grid-column: 1 / -1;
  }

  .settings-form__actions .primary-action,
  .settings-current-session .secondary-outline-action {
    width: 100%;
  }
}


/* Source: notifications-v1.css */
/* FACILenjoy notification center v1 */
.notification-center {
  position: relative;
  z-index: 2;
}

.notification-button {
  color: #34434d;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.notification-button:hover,
.notification-button[aria-expanded="true"] {
  border-color: #ee0000;
  background: #dfdfdf;
  color: #ee0000;
}

.notification-button svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.notification-button .notification-count {
  display: grid;
  place-items: center;
  position: absolute;
  top: -6px;
  right: -7px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 10px;
  background: #ee0000;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.notification-button .notification-count--overflow {
  font-size: 10px;
}

.notification-panel {
  position: absolute;
  top: 46px;
  right: 0;
  z-index: 30;
  width: min(400px, calc(100vw - 32px));
  overflow: hidden;
  border: 1px solid #dce3e6;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(21, 38, 48, .2);
}

.notification-panel__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid #e8edef;
}

.notification-panel__heading span {
  display: block;
  margin-bottom: 5px;
  color: #ee0000;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.25px;
  text-transform: uppercase;
}

.notification-panel__heading h2 {
  margin: 0;
  color: #102033;
  font-size: 21px;
  font-weight: 650;
}

.notification-mark-all {
  flex: none;
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: #f2f5f6;
  color: #63727c;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.notification-mark-all:hover:not(:disabled) {
  background: #dfdfdf;
  color: #c10005;
}

.notification-mark-all:disabled {
  cursor: default;
  opacity: .52;
}

.notification-list {
  max-height: min(480px, calc(100vh - 150px));
  overflow-y: auto;
}

.notification-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 8px;
  align-items: start;
  gap: 12px;
  width: 100%;
  min-height: 92px;
  padding: 15px 18px;
  border: 0;
  border-bottom: 1px solid #edf0f1;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.notification-item:hover {
  background: #f8faf9;
}

.notification-item--unread {
  background: #dfdfdf;
}

.notification-item__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: #dfdfdf;
  color: #c10005;
  font-size: 14px;
  font-weight: 900;
}

.notification-item--warning .notification-item__icon {
  background: #dfdfdf;
  color: #ee0000;
}

.notification-item__body {
  min-width: 0;
}

.notification-item__body strong,
.notification-item__body small,
.notification-item__body time {
  display: block;
}

.notification-item__body strong {
  overflow: hidden;
  color: #152633;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notification-item__body small {
  overflow: hidden;
  margin-top: 5px;
  color: #6d7d87;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notification-item__body time {
  margin-top: 7px;
  color: #9aa5ab;
  font-size: 10px;
  font-weight: 700;
}

.notification-item__unread {
  width: 7px;
  height: 7px;
  margin-top: 6px;
  border-radius: 50%;
  background: #ee0000;
  box-shadow: 0 0 0 4px #dfdfdf;
}

.notification-empty,
.notification-loading,
.notification-error {
  display: grid;
  place-items: center;
  min-height: 185px;
  padding: 25px;
  color: #778690;
  text-align: center;
}

.notification-empty span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: #e9f7f0;
  color: #249867;
  font-size: 18px;
  font-weight: 900;
}

.notification-empty strong,
.notification-empty small {
  display: block;
}

.notification-empty strong {
  color: #22343f;
  font-size: 13px;
}

.notification-empty small {
  margin-top: 5px;
  font-size: 11px;
}

.notification-error {
  min-height: 110px;
  color: #c10005;
  font-size: 12px;
  font-weight: 750;
}

.notification-scrim {
  position: fixed;
  inset: 0;
  z-index: 8;
  border: 0;
  background: transparent;
  cursor: default;
}

@media (max-width: 760px) {
  .notification-center .icon-button {
    display: grid;
  }

  .notification-panel {
    position: fixed;
    top: 72px;
    right: 12px;
    left: 12px;
    width: auto;
  }

  .notification-list {
    max-height: calc(100vh - 160px);
  }
}


/* Source: mobile-menu-v1.css */
.topbar__leading {
  display: flex;
  align-items: center;
  min-width: 0;
}

.mobile-menu-button,
.mobile-menu-close,
.mobile-menu-scrim {
  display: none;
}

body.mobile-menu-open {
  overflow: hidden;
}

@media (max-width: 820px) {
  .topbar {
    z-index: 20;
  }

  .topbar__leading {
    gap: 11px;
  }

  .mobile-menu-button {
    display: grid;
    flex: none;
    place-content: center;
    gap: 4px;
    width: 42px;
    height: 42px;
    padding: 0;
    color: var(--ink);
    background: #fff;
    border: 1px solid #dfe5e7;
    border-radius: 10px;
    cursor: pointer;
    box-shadow: 0 3px 9px rgb(32 47 52 / 5%);
  }

  .mobile-menu-button span {
    width: 17px;
    height: 2px;
    background: currentColor;
    border-radius: 999px;
  }

  .mobile-menu-button:hover,
  .mobile-menu-button:focus-visible {
    color: var(--orange-dark);
    border-color: #ee000066;
    background: var(--orange-soft);
  }

  .mobile-menu-button:focus-visible,
  .mobile-menu-close:focus-visible,
  .mobile-menu-scrim:focus-visible {
    outline: 3px solid #ee000038;
    outline-offset: 2px;
  }

  .sidebar {
    display: flex;
    z-index: 42;
    width: min(86vw, 320px);
    max-width: 100%;
    visibility: hidden;
    transform: translateX(-102%);
    transition: transform 220ms ease, visibility 220ms ease;
    box-shadow: 18px 0 48px rgb(20 31 36 / 18%);
  }

  .sidebar--open {
    visibility: visible;
    transform: translateX(0);
  }

  .sidebar__brand {
    flex: none;
    justify-content: space-between;
    padding-right: 16px;
  }

  .sidebar nav {
    flex: none;
    overflow: visible;
    overscroll-behavior: auto;
    padding-top: 16px;
    padding-bottom: 0;
  }

  .sidebar .nav-item {
    min-height: 44px;
  }

  .mobile-menu-close {
    display: grid;
    flex: none;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0 0 3px;
    color: #6f7b81;
    background: #f5f7f7;
    border: 1px solid #e5e9ea;
    border-radius: 10px;
    cursor: pointer;
    font-size: 26px;
    font-weight: 300;
    line-height: 1;
  }

  .mobile-menu-close:hover,
  .mobile-menu-close:focus-visible {
    color: var(--orange-dark);
    background: var(--orange-soft);
  }

  .mobile-menu-scrim {
    display: block;
    position: fixed;
    z-index: 41;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    background: rgb(19 29 34 / 48%);
    border: 0;
    cursor: pointer;
    animation: mobile-menu-scrim-in 180ms ease-out;
  }

  @keyframes mobile-menu-scrim-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }
}

@media (max-width: 560px) {
  .topbar .user-menu .avatar {
    display: none;
  }
}

@media (max-width: 390px) {
  .mobile-brand .brand__name {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar,
  .mobile-menu-scrim {
    animation: none;
    transition: none;
  }
}


/* Source: brand-logo-v1.css */
.brand--logo {
  display: block;
  flex: none;
}

.brand__image-frame {
  position: relative;
  display: block;
  width: 290px;
  height: 60px;
  overflow: hidden;
}

.brand__image {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  transform: translateY(-21.5%);
}

.brand--compact .brand__image-frame {
  width: 172px;
  height: 38px;
}

@media (max-width: 820px) {
  .mobile-brand .brand__image-frame {
    width: 145px;
    height: 32px;
  }
}

@media (max-width: 390px) {
  .mobile-brand .brand__image-frame {
    width: 110px;
    height: 25px;
  }
}


/* Source: login-background-machine-photo-v4.css */
.login-page .login-header {
  justify-content: center;
  position: relative;
}

.login-page .login-header .secure-label {
  position: absolute;
  right: 4vw;
}

.login-main {
  background-color: #f8f8f6;
  background-image:
    linear-gradient(90deg, rgba(10, 15, 18, 0.22) 0%, rgba(15, 8, 5, 0.1) 52%, rgba(10, 12, 14, 0.24) 100%),
    url("/assets/facilenjoy-login-fe66-v4.webp");
  background-position: center 50%;
  background-repeat: no-repeat;
  background-size: cover;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: clamp(32px, 5vw, 72px);
  place-items: center;
  position: relative;
}

.login-panel {
  background: transparent;
  padding: 0;
  width: 100%;
}

.login-card {
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(255, 255, 255, 0.82);
  box-shadow: 0 24px 60px rgba(45, 35, 25, 0.2);
  margin: 0 auto;
}

.login-panel .privacy-note {
  background: rgba(255, 255, 255, 0.62);
  border-radius: 999px;
  color: #55646b;
  padding: 6px 12px;
}

@media (max-width: 820px) {
  .login-main {
    padding: 42px 24px;
  }
}

@media (max-width: 560px) {
  .login-main {
    background-image:
      linear-gradient(rgba(10, 15, 18, 0.24), rgba(10, 12, 14, 0.2)),
      url("/assets/facilenjoy-login-fe66-v4.webp");
    background-position: center;
    padding: 30px 15px;
  }

  .login-card {
    background: rgba(255, 255, 255, 0.94);
  }
}


.settings-tabs {
  display: flex;
  gap: 6px;
  margin: -8px 0 18px;
  padding: 5px;
  background: #f4f6f6;
  border: 1px solid #dde4e7;
  border-radius: 12px;
  width: fit-content;
}

.settings-tab {
  min-height: 38px;
  padding: 0 16px;
  color: #707070;
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 780;
}

.settings-tab--active {
  color: #c10005;
  background: #fff;
  box-shadow: 0 2px 8px rgba(24, 34, 39, .08);
}

.smtp-settings-grid .app-alert {
  margin-top: 18px;
  margin-bottom: 0;
}

.smtp-enabled {
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 0 15px;
  background: #f6faf8;
  border: 1px solid #d5e9de;
  border-radius: 10px;
}

.smtp-enabled input {
  width: 20px;
  min-height: 20px;
  accent-color: #ee0000;
}

.smtp-settings-form label small {
  color: #84919a;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
}

.smtp-test {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
  padding: 15px;
  background: #f8f9f9;
  border: 1px solid #e2e7e8;
  border-radius: 10px;
}

.smtp-test .secondary-outline-action {
  min-height: 48px;
}

@media (max-width: 680px) {
  .settings-tabs { width: 100%; }
  .settings-tab { flex: 1; padding: 0 8px; }
  .smtp-test { grid-template-columns: 1fr; }
}

.login-support-action {
  padding: 0;
  color: var(--orange-dark);
  background: transparent;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 750;
}

.login-support-action:hover,
.login-support-action:focus-visible {
  text-decoration: underline;
}

.password-reset-requested {
  min-height: 300px;
  justify-content: center;
}

.password-reset-requested .secondary-outline-action,
.activation-error .secondary-outline-action {
  margin-top: 20px;
}

/* Login composition v4 */
.login-page {
  position: relative;
  grid-template-rows: 1fr auto;
}

.login-page .login-header {
  position: absolute;
  z-index: 6;
  inset: 22px auto auto 28px;
  min-height: 0;
  padding: 0;
  background: transparent;
  border: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.login-page .login-header > .brand {
  display: none;
}

.login-page .login-header .secure-label {
  position: static;
  display: flex;
  padding: 8px 12px;
  color: #ffffff;
  background: var(--login-glass-surface, rgba(16, 24, 21, 0.72));
  border: 0;
  border-radius: 999px;
  backdrop-filter: blur(12px) saturate(125%);
  -webkit-backdrop-filter: blur(12px) saturate(125%);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.42);
}

.login-page .secure-label__dot {
  box-shadow: 0 0 0 4px rgba(42, 157, 103, 0.24);
}

.login-page .login-main {
  min-height: calc(100vh - 46px);
  padding: clamp(78px, 8vh, 100px) 24px 42px;
}

.login-page .login-card {
  width: min(530px, 100%);
  padding: 27px 28px 25px;
  border-radius: 9px;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, 0.94);
  box-shadow: 0 22px 55px rgba(34, 26, 20, 0.25);
}

.login-card__brand {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 0 20px;
  margin-bottom: 22px;
  background: #fff;
  border-bottom: 0;
}

.login-card__brand .brand__image-frame {
  width: min(440px, 100%);
  height: auto;
  aspect-ratio: 2007 / 784;
}

.login-card__brand .brand__image {
  position: static;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
}

.login-card__heading--signin {
  text-align: center;
  margin-bottom: 22px;
}

.login-card__heading--signin h2 {
  margin: 0;
  font-size: 23px;
  letter-spacing: -0.02em;
}

.login-page .login-form {
  max-width: 600px;
  margin: 0 auto;
}

.login-page .input-wrap input {
  height: 58px;
  border-radius: 5px;
  font-size: 15px;
}

.login-page .login-submit {
  height: 46px;
  margin-top: 25px;
  border-radius: 5px;
  box-shadow: 0 8px 18px rgba(238, 0, 0, 0.24);
}

.login-page .login-card__support {
  max-width: 600px;
  margin: 18px auto 0;
  padding-top: 0;
  border-top: 0;
  text-align: right;
  font-size: 12px;
}

.login-page .privacy-note {
  margin-top: 16px;
}

@media (max-width: 680px) {
  .login-page .login-header {
    inset: 14px auto auto 14px;
  }

  .login-page .login-header .secure-label {
    padding: 7px 10px;
    font-size: 11px;
  }

  .login-page .login-main {
    padding: 66px 14px 25px;
  }

  .login-page .login-card {
    padding: 22px 20px;
    border-radius: 12px;
  }

  .login-card__brand {
    padding-bottom: 18px;
    margin-bottom: 20px;
  }

  .login-card__brand .brand__image-frame {
    width: min(390px, 100%);
    height: auto;
  }

.login-card__heading--signin h2 {
  font-size: 20px;
}

  .login-page .login-card__support {
    text-align: center;
  }

  .login-page .login-footer {
    gap: 10px;
    padding: 0 16px;
  }
}

/* Two-factor authentication */
.login-card__heading--two-factor {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.login-card__heading--two-factor p {
  max-width: 360px;
  margin: 0;
  color: #74828c;
  font-size: 13px;
  line-height: 1.55;
}

.login-two-factor-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 3px;
  color: #188057;
  background: #e9f8f0;
  border: 1px solid #ccebdc;
  border-radius: 12px;
}

.login-two-factor-icon svg {
  width: 21px;
  height: 21px;
}

.two-factor-code-input {
  min-height: 54px;
  text-align: center;
  letter-spacing: .34em;
  font-size: 21px !important;
  font-variant-numeric: tabular-nums;
}

.login-card__support--two-factor {
  text-align: center !important;
}

.settings-two-factor-heading {
  align-items: center;
}

.two-factor-switch {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: none;
  padding: 8px 12px 8px 9px;
  color: #687780;
  background: #f5f7f7;
  border: 1px solid #d7dfe2;
  border-radius: 999px;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.two-factor-switch:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .18);
  outline-offset: 2px;
}

.two-factor-switch:disabled {
  cursor: wait;
  opacity: .65;
}

.two-factor-switch__track {
  position: relative;
  width: 42px;
  height: 24px;
  background: #b6c0c5;
  border-radius: 999px;
  transition: background-color .18s ease;
}

.two-factor-switch__track i {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(17, 30, 38, .2);
  transition: transform .18s ease;
}

.two-factor-switch strong {
  font-size: 11px;
}

.two-factor-switch--enabled {
  color: #13784e;
  background: #eaf8f1;
  border-color: #c5e8d6;
}

.two-factor-switch--enabled .two-factor-switch__track {
  background: #28a56e;
}

.two-factor-switch--enabled .two-factor-switch__track i {
  transform: translateX(18px);
}

.two-factor-switch--pending {
  color: #9a6500;
  background: #fff8e7;
  border-color: #f1d99b;
}

.settings-two-factor-content {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(440px, 1.4fr);
  gap: 22px;
  padding-top: 22px;
}

.two-factor-explanation {
  padding: 5px 6px 5px 0;
  color: #5f6e77;
  font-size: 12px;
  line-height: 1.65;
}

.two-factor-explanation > p {
  margin: 0 0 17px;
}

.two-factor-explanation > strong {
  display: block;
  margin-bottom: 8px;
  color: #26343d;
  font-size: 12px;
}

.two-factor-explanation ol {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 19px;
}

.two-factor-explanation li::marker {
  color: #ee0000;
  font-weight: 800;
}

.two-factor-state-panel {
  min-width: 0;
  padding: 20px;
  background: #f7f9f9;
  border: 1px solid #e0e6e8;
  border-radius: 13px;
}

.two-factor-off-state,
.two-factor-enabled-state {
  display: flex;
  min-height: 180px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.two-factor-off-state p,
.two-factor-enabled-state p {
  max-width: 650px;
  margin: 14px 0 18px;
  color: #708089;
  font-size: 12px;
  line-height: 1.6;
}

.two-factor-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #6f7d85;
  font-size: 11px;
  font-weight: 800;
}

.two-factor-status i {
  width: 8px;
  height: 8px;
  background: #aeb9be;
  border-radius: 50%;
}

.two-factor-status--enabled {
  color: #167a50;
}

.two-factor-status--enabled i {
  background: #29a66f;
  box-shadow: 0 0 0 4px rgba(41, 166, 111, .12);
}

.two-factor-status--pending {
  color: #976300;
}

.two-factor-status--pending i {
  background: #d99816;
  box-shadow: 0 0 0 4px rgba(217, 152, 22, .13);
}

.two-factor-setup {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(250px, 1fr);
  align-items: center;
  gap: 22px;
}

.two-factor-qr {
  display: grid;
  place-items: center;
  padding: 10px;
  background: #fff;
  border: 1px solid #dce3e5;
  border-radius: 12px;
}

.two-factor-qr img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
}

.two-factor-setup__form h3 {
  margin: 12px 0 6px;
  font-size: 18px;
}

.two-factor-setup__form > p {
  margin: 0;
  color: #718089;
  font-size: 11px;
  line-height: 1.55;
}

.two-factor-setup__form > code {
  display: block;
  margin: 11px 0 15px;
  padding: 9px 10px;
  overflow-wrap: anywhere;
  color: #34434c;
  background: #fff;
  border: 1px dashed #cbd5d9;
  border-radius: 8px;
  letter-spacing: .08em;
  font-size: 11px;
  font-weight: 800;
}

.two-factor-setup__form form,
.two-factor-disable-form {
  display: grid;
  gap: 11px;
}

.two-factor-setup__form label,
.two-factor-disable-form label {
  display: grid;
  gap: 7px;
  color: #38464f;
  font-size: 11px;
  font-weight: 780;
}

.two-factor-setup__form input,
.two-factor-disable-form input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  color: #16212a;
  background: #fff;
  border: 1px solid #d4dde0;
  border-radius: 9px;
  outline: none;
}

.two-factor-setup__form input:focus,
.two-factor-disable-form input:focus {
  border-color: #ee0000;
  box-shadow: 0 0 0 3px rgba(238, 0, 0, .1);
}

.two-factor-disable-form {
  width: min(440px, 100%);
  margin-top: 2px;
}

.two-factor-disable-form small {
  color: #7c8a92;
  font-size: 10px;
  line-height: 1.5;
}

.two-factor-inline-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

@media (max-width: 980px) {
  .settings-two-factor-content {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .settings-two-factor-heading {
    align-items: flex-start;
  }

  .two-factor-setup {
    grid-template-columns: 1fr;
  }

  .two-factor-qr {
    width: min(280px, 100%);
    margin: 0 auto;
  }

  .two-factor-inline-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .two-factor-inline-actions button {
    width: 100%;
    justify-content: center;
  }
}

.overview-device-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.danger-outline-action {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  color: var(--red);
  background: #fff;
  border: 1px solid #df9fa1;
  border-radius: 9px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.danger-outline-action:hover:not(:disabled) {
  color: #fff;
  background: var(--red);
  border-color: var(--red);
}

.danger-outline-action:focus-visible {
  outline: 3px solid rgba(193, 0, 5, .2);
  outline-offset: 3px;
}

.danger-outline-action:disabled {
  color: #9da5a8;
  background: #f4f6f6;
  border-color: #dfe4e5;
  cursor: not-allowed;
}

.stat-card--link {
  position: relative;
  width: 100%;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.stat-card--link:hover {
  transform: translateY(-2px);
  border-color: #cbd3d5;
  box-shadow: 0 10px 24px rgba(48, 62, 67, .11);
}

.stat-card--link:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .22);
  outline-offset: 3px;
}

.stat-card__arrow {
  position: absolute;
  right: 17px;
  bottom: 15px;
  color: #9aa5a9;
  font-size: 14px;
  font-weight: 800;
  transition: color .16s ease, transform .16s ease;
}

.stat-card--link:hover .stat-card__arrow,
.stat-card--link:focus-visible .stat-card__arrow {
  color: #758187;
  transform: translateX(2px);
}

.stat-card--attention .stat-card__arrow,
.stat-card--attention:hover .stat-card__arrow,
.stat-card--attention:focus-visible .stat-card__arrow {
  color: var(--red);
}

.stat-card__action {
  position: absolute;
  z-index: 2;
  right: 17px;
  bottom: 15px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #758187;
  font-size: 10px;
  font-weight: 800;
  transition: color .16s ease, transform .16s ease;
}

.stat-card--link:hover .stat-card__action,
.stat-card--link:focus-visible .stat-card__action {
  color: #59676e;
  transform: translateX(2px);
}

.stat-card--with-action > p {
  padding-right: 58px;
}

@media (max-width: 680px) {
  .overview-device-actions {
    width: 100%;
    justify-content: stretch;
  }

  .overview-device-actions > button {
    flex: 1 1 190px;
  }
}

.device-danger-zone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: 14px;
  padding: 20px 22px;
  background: #fff8f8;
  border: 1px solid #f0c9ca;
  border-radius: 14px;
}

.device-danger-zone > div {
  max-width: 760px;
}

.device-danger-zone span {
  color: var(--red);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.device-danger-zone h2 {
  margin: 5px 0 5px;
  font-size: 18px;
}

.device-danger-zone p {
  margin: 0;
  color: #766669;
  font-size: 11px;
  line-height: 1.55;
}

.danger-action {
  display: inline-flex;
  flex: none;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  color: #fff;
  background: var(--red);
  border: 1px solid var(--red);
  border-radius: 9px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 7px 18px rgba(193, 0, 5, .18);
}

.danger-action:hover {
  background: #9f0004;
  border-color: #9f0004;
}

.danger-action:focus-visible {
  outline: 3px solid rgba(193, 0, 5, .24);
  outline-offset: 3px;
}

.danger-action:disabled {
  cursor: wait;
  opacity: .62;
}

.delete-device-modal {
  max-width: 560px;
}

.delete-device-warning {
  display: flex;
  gap: 11px;
  margin: 18px 0;
  padding: 13px;
  color: #6e3133;
  background: #fff3f3;
  border: 1px solid #f1ced0;
  border-radius: 10px;
}

.delete-device-warning > span {
  display: grid;
  flex: none;
  width: 23px;
  height: 23px;
  color: #fff;
  background: var(--red);
  border-radius: 7px;
  place-items: center;
  font-size: 12px;
  font-weight: 850;
}

.delete-device-warning div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.delete-device-warning strong {
  font-size: 11px;
}

.delete-device-warning small {
  font-size: 10px;
  line-height: 1.5;
}

.delete-device-warning--blocked {
  color: #735923;
  background: #fff8e8;
  border-color: #eedba9;
}

.delete-device-warning--blocked > span {
  background: #a87811;
}

.waterunit-permission-status {
  display: block;
  margin-top: 9px;
  color: #849095;
  font-size: 10px;
}

@media (max-width: 680px) {
  .device-danger-zone {
    align-items: stretch;
    flex-direction: column;
  }

  .device-danger-zone .danger-action,
  .delete-device-modal .danger-action {
    width: 100%;
  }
}

/* Device overview empty states */
.coffee-machine-empty-image {
  display: block;
  width: 176px;
  height: 176px;
  margin-bottom: 8px;
  object-fit: contain;
}

.empty-state--coffee-dashboard {
  margin-top: 40px;
}

.waterunits-panel .empty-state--large {
  padding-top: 24px;
}

.waterunit-empty-image {
  display: block;
  width: auto;
  height: 150px;
  max-width: 112px;
  margin-bottom: 14px;
  object-fit: contain;
}

@media (max-width: 560px) {
  .empty-state--coffee-dashboard {
    margin-top: 24px;
  }

  .coffee-machine-empty-image {
    width: 152px;
    height: 152px;
  }

  .waterunit-empty-image {
    height: 132px;
    max-width: 100px;
  }
}

@media (max-width: 430px) {
  .login-card__brand .brand__image-frame {
    width: 100%;
    height: auto;
  }

  .login-page .login-footer span:first-child {
    max-width: 65%;
  }
}

/* Final FACILenjoy typography and palette tokens. */
:root {
  --facilenjoy-red: #ee0000;
  --facilenjoy-red-secondary: #c10005;
  --facilenjoy-gray-light: #dfdfdf;
  --facilenjoy-gray-dark: #707070;
  --orange: #ee0000;
  --orange-dark: #c10005;
  --orange-soft: #dfdfdf;
  --red: #c10005;
  --red-soft: #dfdfdf;
  --ink-soft: #707070;
  --muted: #707070;
  --line: #dfdfdf;
  --canvas: #e7e7e7;
  --font-sans: "Roboto", Arial, sans-serif;
  --default-font-family: "Roboto", Arial, sans-serif;
}

html,
body,
button,
input,
select,
optgroup,
textarea {
  font-family: "Roboto", Arial, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Glacial Indifference", "Roboto", Arial, sans-serif;
  font-weight: 700;
}

/* Keep the login logo inside and centred in its card. */
.login-page > .login-header > .brand--logo {
  display: none !important;
}

.login-page .login-card > .login-card__brand {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  overflow: hidden;
}

.login-page .login-card > .login-card__brand > .brand--logo {
  position: static;
  display: block;
  width: 100%;
  margin: 0 auto;
}

.login-page .login-card > .login-card__brand .brand__image-frame {
  position: relative;
  display: block;
  width: min(440px, 100%);
  height: auto;
  margin: 0 auto;
  aspect-ratio: 2007 / 784;
  overflow: hidden;
}

.login-page .login-card > .login-card__brand .brand__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: contain;
  object-position: center;
  transform: none;
}

/* The source PNG contains generous white margins. Render its visible bounds. */
.login-page .login-card > .login-card__brand > .brand--logo {
  display: none !important;
}

.login-page .login-card > .login-card__brand::before {
  content: "";
  display: block;
  width: min(440px, 100%);
  aspect-ratio: 1880 / 415;
  margin: 0 auto;
  background-image: url("/assets/facilenjoy-iot-logo-v1.png");
  background-repeat: no-repeat;
  background-size: 106.76% auto;
  background-position: center 44.7%;
}

/* Dedicated cropped login logo; no inherited brand positioning. */
.login-page .login-card > .login-card__brand::before {
  content: none;
  display: none;
}

.login-page .login-card .login-card__logo {
  position: static;
  display: block;
  width: min(440px, 100%);
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  transform: none;
}

/* Keep the rotating beans inside a stationary oval matching the opening of the black C. */
.login-page .login-card .login-card__logo-frame {
  position: relative;
  display: block;
  width: min(440px, 100%);
  margin: 0 auto;
  background: #fff;
}

.login-page .login-card__logo-frame .login-card__logo {
  width: 100%;
}

.login-page .login-card .login-card__logo-beans {
  position: absolute;
  z-index: 1;
  top: 11.5839%;
  left: 25.6356%;
  width: 9.7458%;
  height: 48.2270%;
  overflow: hidden;
  border-radius: 50%;
  pointer-events: none;
}

.login-page .login-card .login-card__logo-beans img {
  position: absolute;
  display: block;
  top: -3.9216%;
  left: -9.7826%;
  width: 119.5652%;
  max-width: none;
  height: auto;
  transform-origin: center;
  backface-visibility: hidden;
}

.login-page .login-card .login-card__logo-beans--spinning img {
  animation: login-logo-beans-spin 1.2s linear infinite;
}

@keyframes login-logo-beans-spin {
  to { transform: rotate(1turn); }
}

@media (prefers-reduced-motion: reduce) {
  .login-page .login-card .login-card__logo-beans--spinning img {
    animation: none;
  }
}

/* Login finishing touches: floating status/footer and stronger card depth. */
.login-page {
  --login-glass-surface: rgba(16, 24, 21, 0.72);
  grid-template-rows: 1fr;
}

.login-page .login-header {
  inset: 22px 28px auto auto;
}

.login-page .login-main {
  min-height: 100vh;
  padding-bottom: 86px;
}

/* Position the complete login card over the logo in the machine display. */
.login-page .login-panel {
  transform: translateY(clamp(-84px, -7vh, -56px));
}

@media (max-height: 840px) and (min-width: 681px) {
  .login-page .login-panel {
    transform: translateY(-24px);
  }
}

@media (max-width: 680px) {
  .login-page .login-panel {
    transform: none;
  }
}

.login-page .login-card {
  background: #fff;
  border: 0;
  border-radius: 14px;
  box-shadow:
    0 54px 120px rgba(0, 0, 0, 0.48),
    0 26px 54px rgba(0, 0, 0, 0.32),
    0 8px 20px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
}

.login-page .input-wrap input {
  background: #f7f8f8;
  border-color: #d5dcdf;
  box-shadow: inset 0 1px 2px rgba(21, 31, 36, 0.04);
}

.login-page .input-wrap input:hover {
  border-color: #c4cdd1;
}

.login-page .input-wrap input:focus {
  background: #ffffff;
  border-color: rgba(238, 0, 0, 0.62);
  box-shadow: 0 0 0 4px rgba(238, 0, 0, 0.12);
}

.login-page .input-wrap input:-webkit-autofill,
.login-page .input-wrap input:-webkit-autofill:hover {
  -webkit-text-fill-color: #172129;
  caret-color: #172129;
  -webkit-box-shadow: 0 0 0 1000px #f7f8f8 inset;
  transition: background-color 9999s ease-out 0s;
}

.login-page .input-wrap input:-webkit-autofill:focus {
  -webkit-text-fill-color: #172129;
  -webkit-box-shadow:
    0 0 0 1000px #ffffff inset,
    0 0 0 4px rgba(238, 0, 0, 0.12);
}

.login-page .login-submit {
  box-shadow: 0 14px 30px rgba(193, 0, 5, 0.32);
}

.login-page .login-footer {
  position: absolute;
  z-index: 6;
  right: 0;
  bottom: 0;
  left: 0;
  min-height: 58px;
  padding: 0 clamp(22px, 4vw, 76px);
  color: #ffffff;
  background: transparent;
  border: 0;
  font-size: 12px;
  text-shadow: none;
}

.login-page .login-footer strong {
  color: #79e2ad;
  font-weight: 800;
}

.login-page .login-footer > span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 13px;
  color: #ffffff;
  background: var(--login-glass-surface);
  border: 0;
  border-radius: 999px;
  backdrop-filter: blur(12px) saturate(125%);
  -webkit-backdrop-filter: blur(12px) saturate(125%);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  font-weight: 600;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.42);
}

.login-page .login-footer > span:last-child {
  gap: 8px;
}

.login-page .login-footer > span:last-child::before {
  content: "";
  width: 8px;
  height: 8px;
  flex: none;
  border-radius: 50%;
  background: #2a9d67;
  box-shadow: 0 0 0 4px rgba(42, 157, 103, 0.24);
}

@media (max-width: 680px) {
  .login-page .login-header {
    inset: 14px 14px auto auto;
  }

  .login-page .login-main {
    padding-bottom: 78px;
  }

  .login-page .login-footer {
    min-height: 52px;
    padding: 0 14px;
    font-size: 10px;
  }

  .login-page .login-footer > span {
    min-height: 26px;
    padding: 5px 9px;
  }
}


/* The account avatar is a direct shortcut to personal profile settings. */
.avatar-button {
  flex: none;
  padding: 0;
  border: 0;
  cursor: pointer;
  appearance: none;
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.avatar-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 12px rgba(38, 54, 60, 0.24);
}

.avatar-button:focus-visible {
  outline: 3px solid rgba(238, 0, 0, 0.28);
  outline-offset: 3px;
}

/* Uploaded profile photos and organization logos fill the existing identity tiles. */
.avatar,
.settings-card__icon,
.user-row__avatar,
.customer-row__icon,
.customer-hero__icon,
.dealer-row__icon,
.dealer-hero__icon,
.settings-image-editor__preview {
  overflow: hidden;
}

.square-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.organization-logo-trigger {
  position: relative;
  padding: 0;
  cursor: pointer;
  border: 0;
  appearance: none;
  font: inherit;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.organization-logo-trigger:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
}

.organization-logo-trigger:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .28);
  outline-offset: 4px;
}

.organization-logo-modal {
  width: min(520px, 100%);
}

.settings-image-editor.organization-logo-modal__editor {
  margin: 0 0 20px;
}

.settings-image-editor__preview.organization-logo-modal__preview {
  width: 88px;
  height: 88px;
  border-radius: 20px;
}

.settings-image-editor__preview.organization-logo-modal__preview--customer {
  color: #2d70bd;
  background: #e9f3fd;
}

.settings-image-editor__preview.organization-logo-modal__preview--dealer {
  color: #7a48a6;
  background: #f2eafb;
}

.organization-logo-modal .modal__actions {
  margin-top: 0;
}

@media (max-width: 560px) {
  .organization-logo-modal .organization-logo-modal__editor {
    align-items: center;
    flex-direction: column;
    text-align: center;
  }

  .organization-logo-modal__editor .settings-image-editor__actions {
    justify-content: center;
  }
}

.settings-image-editor {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 20px;
  padding: 14px;
  border: 1px solid #e7ebec;
  border-radius: 13px;
  background: #f8fafa;
}

.settings-image-editor--organization {
  margin-top: 16px;
}

.settings-image-editor__preview {
  display: grid;
  flex: none;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 17px;
  color: #fff;
  background: linear-gradient(145deg, #26363c, #4c6067);
  font-size: 16px;
  font-weight: 850;
  box-shadow: 0 8px 18px rgba(38, 54, 60, 0.15);
}

.settings-image-editor__preview--organization {
  color: #2d70bd;
  background: #e9f3fd;
}

.settings-image-editor__copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 4px;
}

.settings-image-editor__copy > strong {
  color: #18242c;
  font-size: 12px;
}

.settings-image-editor__copy > small {
  color: #7f8d95;
  font-size: 10px;
  line-height: 1.5;
}

.settings-image-editor__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 7px;
}

.settings-file-action {
  cursor: pointer;
}

.settings-image-remove {
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #e2b9ba;
  border-radius: 9px;
  color: #b30005;
  background: #fff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 780;
}

.settings-image-remove:hover:not(:disabled) {
  border-color: #ee0000;
  background: #fff5f5;
}

.settings-image-remove:disabled,
.settings-file-action:has(+ .settings-image-remove:disabled) {
  cursor: wait;
  opacity: .65;
}

.settings-image-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.settings-image-editor:focus-within {
  outline: 3px solid rgba(238, 0, 0, 0.22);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  .settings-image-editor {
    align-items: flex-start;
  }

  .settings-image-editor__preview {
    width: 54px;
    height: 54px;
    border-radius: 14px;
  }
}


/* Brand logos navigate back to the dashboard overview. */
.logo-home-button {
  display: block;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  appearance: none;
  transition: opacity 0.16s ease, transform 0.16s ease;
}

.logo-home-button:hover {
  opacity: 0.82;
  transform: translateY(-1px);
}

.logo-home-button:focus-visible {
  outline: 3px solid rgba(238, 0, 0, 0.28);
  outline-offset: 3px;
}


/* Roomier desktop header and account controls. */
@media (min-width: 821px) {
  .topbar,
  .sidebar__brand {
    height: 88px;
  }

  .sidebar__brand {
    padding-right: 17px;
    padding-left: 17px;
  }

  .sidebar .brand--compact .brand__image-frame {
    width: 194px;
    height: 43px;
  }

  .topbar {
    padding-right: 34px;
    padding-left: 34px;
  }

  .breadcrumb {
    gap: 10px;
    font-size: 13px;
  }

  .topbar__actions {
    gap: 15px;
  }

  .icon-button,
  .avatar {
    width: 40px;
    height: 40px;
  }

  .notification-button svg {
    width: 19px;
    height: 19px;
  }

  .notification-panel {
    top: 52px;
  }

  .user-menu {
    gap: 11px;
    padding-left: 15px;
  }

  .user-menu div {
    min-width: 132px;
  }

  .user-menu strong {
    font-size: 13px;
  }

  .user-menu small {
    font-size: 11px;
  }

  .logout-button {
    padding: 9px 12px;
    font-size: 12px;
  }
}

/* Gestapelde kerncijfers per apparaat- en organisatietype. */
.stat-grid--overview {
  align-items: stretch;
}

.stat-stack {
  display: grid;
  align-content: start;
  grid-auto-rows: minmax(0, 1fr);
  gap: 13px;
  height: 100%;
  min-width: 0;
}

.stat-stack .stat-card {
  width: 100%;
}

/* More readable dashboard footer text. */
.dashboard-footer {
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 560px) {
  .dashboard-footer {
    align-items: flex-start;
    flex-wrap: wrap;
    font-size: 11px;
  }
}

/* Roles and permissions */
.roles-page {
  padding-bottom: 28px;
}

.roles-heading {
  margin-bottom: 24px;
}

.roles-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 18px;
}

.roles-assignment-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 14px;
  box-shadow: 0 5px 15px rgba(29, 43, 49, 0.04);
}

.roles-assignment-note__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #168356;
  background: #e8f7ef;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 900;
}

.roles-assignment-note strong,
.roles-assignment-note p {
  display: block;
}

.roles-assignment-note strong {
  font-size: 13px;
}

.roles-assignment-note p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.role-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}

.role-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(29, 43, 49, 0.05);
}

.role-card__heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  padding: 22px 22px 18px;
  border-bottom: 1px solid #edf0f1;
}

.role-card__heading > div > span {
  color: var(--orange);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.role-card__heading h2 {
  margin: 5px 0 6px;
  font-size: 22px;
  letter-spacing: -0.025em;
}

.role-card__heading p {
  max-width: 470px;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.role-card__count {
  flex: none;
  padding: 8px 10px;
  color: #5f6c72;
  background: #f4f6f6;
  border-radius: 9px;
  font-size: 10px;
  white-space: nowrap;
}

.role-card__count strong {
  color: var(--ink);
  font-size: 13px;
}

.role-permission-list {
  padding: 0 22px;
}

.role-permission-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 88px;
  padding: 14px 0;
  border-bottom: 1px solid #edf0f1;
  cursor: pointer;
}

.role-permission-row:last-child {
  border-bottom: 0;
}

.role-permission-row__copy {
  min-width: 0;
}

.role-permission-row__copy small,
.role-permission-row__copy strong,
.role-permission-row__copy p {
  display: block;
}

.role-permission-row__copy small {
  margin-bottom: 3px;
  color: var(--orange-dark);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 10px;
  font-weight: 800;
}

.role-permission-row__copy strong {
  font-size: 12px;
}

.role-permission-row__copy p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.role-switch {
  position: relative;
  display: block;
  flex: none;
  width: 46px;
  height: 26px;
}

.role-switch input {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.role-switch > span {
  position: absolute;
  inset: 0;
  background: #d9dfe1;
  border-radius: 999px;
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.role-switch > span::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(25, 38, 44, 0.2);
  transition: transform 0.16s ease;
}

.role-switch input:checked + span {
  background: #168356;
}

.role-switch input:checked + span::after {
  transform: translateX(20px);
}

.role-switch input:focus-visible + span {
  outline: 3px solid rgba(238, 0, 0, 0.26);
  outline-offset: 3px;
}

.role-card__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 17px 22px 20px;
  background: #fafbfb;
  border-top: 1px solid #edf0f1;
}

.role-card__actions > span {
  max-width: 340px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.role-card__actions .primary-action {
  flex: none;
}

@media (max-width: 1120px) {
  .role-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .roles-metrics {
    grid-template-columns: 1fr;
  }

  .roles-assignment-note {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .roles-assignment-note .secondary-outline-action {
    grid-column: 1 / -1;
    justify-content: center;
    width: 100%;
  }

  .role-card__heading,
  .role-card__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .role-card__heading {
    display: flex;
  }

  .role-card__count {
    align-self: flex-start;
  }

  .role-card__actions .primary-action {
    justify-content: center;
    width: 100%;
  }
}

/* Ruimere, uitgelijnde desktopkop met een zelfstandig scrollbaar menu. */
@media (min-width: 821px) {
  .topbar,
  .sidebar__brand {
    height: 104px;
    min-height: 104px;
  }

  .sidebar__brand {
    flex: none;
    justify-content: center;
    padding-right: 6px;
    padding-left: 6px;
  }

  .sidebar__brand .logo-home-button {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
  }

  .sidebar .brand--compact .brand__image-frame {
    width: 216px;
    height: 60px;
    margin-right: auto;
    margin-left: auto;
  }

  .sidebar .brand--compact .brand__image {
    transform: translateY(-10.5%);
  }

  .sidebar nav {
    flex: none;
    min-height: auto;
    overflow: visible;
    overscroll-behavior: auto;
    scrollbar-gutter: auto;
    padding-top: 18px;
    padding-bottom: 18px;
  }

  .sidebar__status {
    flex: none;
    margin: 12px 15px 17px;
  }
}

/* Compacte live-verbindingsstatus in dezelfde stijl als de meldingsknop. */
.connection-status-button {
  cursor: pointer;
  color: #34434d;
  transition: color .16s ease, border-color .16s ease, background .16s ease;
}

.connection-status-button[aria-disabled="true"] {
  cursor: default;
}

.connection-status-button:not([aria-disabled="true"]):hover,
.connection-status-button--active {
  border-color: var(--green);
  background: var(--green-soft);
  color: #18764e;
}

.connection-status-button--offline:not([aria-disabled="true"]):hover,
.connection-status-button--offline.connection-status-button--active {
  border-color: var(--red);
  background: #fff0f0;
  color: var(--red);
}

.connection-status-button svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.connection-status-button .connection-status-indicator {
  position: absolute;
  top: -5px;
  right: -6px;
  width: 14px;
  height: 14px;
  border: 2px solid #fff;
  border-radius: 50%;
}

.connection-status-button--online .connection-status-indicator {
  background: var(--green);
}

.connection-status-button--offline {
  color: var(--red);
}

.connection-status-button--offline .connection-status-indicator {
  background: var(--red);
}

/* Realtime systeemstatuspagina. */
.system-status-page {
  padding-bottom: 28px;
}

.system-status-heading {
  align-items: center;
}

.system-status-heading > div {
  max-width: 760px;
}

.system-refresh-button {
  flex: none;
  justify-content: center;
  gap: 8px;
  min-width: 145px;
}

.system-refresh-button > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  font-size: 16px;
  line-height: 1;
  transform: translateY(-1px);
}

.system-refresh-button:disabled {
  cursor: wait;
  opacity: .65;
}

.system-status-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 24px 26px;
  border: 1px solid #d9e9e1;
  border-radius: 16px;
  background: linear-gradient(135deg, #f8fcfa, #eef9f3);
  box-shadow: 0 9px 26px rgba(30, 91, 64, .06);
}

.system-status-hero--offline {
  border-color: #f0d6d6;
  background: linear-gradient(135deg, #fffafa, #fff0f0);
  box-shadow: 0 9px 26px rgba(143, 25, 25, .06);
}

.system-status-hero__mark {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: var(--green);
  color: #fff;
  font-size: 22px;
  font-weight: 850;
  box-shadow: 0 8px 20px rgba(42, 157, 103, .22);
}

.system-status-hero--offline .system-status-hero__mark {
  background: var(--red);
  box-shadow: 0 8px 20px rgba(193, 0, 5, .18);
}

.system-status-hero__copy > span {
  color: #378161;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.system-status-hero--offline .system-status-hero__copy > span {
  color: var(--red);
}

.system-status-hero__copy h2 {
  margin: 4px 0 3px;
  letter-spacing: -.025em;
  font-size: 20px;
}

.system-status-hero__copy p {
  margin: 0;
  color: #718078;
  font-size: 12px;
}

.system-status-hero__score {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  min-width: 118px;
}

.system-status-hero__score strong {
  color: #18764e;
  letter-spacing: -.05em;
  font-size: 30px;
  line-height: 1;
}

.system-status-hero--offline .system-status-hero__score strong {
  color: var(--red);
}

.system-status-hero__score span {
  margin-top: 6px;
  color: #738078;
  font-size: 10px;
  font-weight: 700;
}

.system-status-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 26px;
  padding: 14px 4px 17px;
  color: #7b8781;
  font-size: 10px;
}

.system-status-meta > span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.system-status-meta i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px var(--green-soft);
}

.system-status-meta strong {
  color: #506058;
}

.system-status-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.system-card {
  display: flex;
  flex-direction: column;
  min-height: 238px;
  padding: 20px;
  border: 1px solid #e1e7e4;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 5px 15px rgba(35, 54, 45, .04);
}

.system-card--offline {
  border-color: #efd8d8;
}

.system-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.system-card__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--green-soft);
  color: #188055;
  font-size: 10px;
  font-weight: 900;
}

.system-card--offline .system-card__icon {
  background: #fff0f0;
  color: var(--red);
}

.system-status-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
  border-radius: 20px;
  background: var(--green-soft);
  color: #18764e;
  font-size: 10px;
  font-weight: 800;
}

.system-status-label i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
}

.system-card--offline .system-status-label {
  background: #fff0f0;
  color: var(--red);
}

.system-card--offline .system-status-label i {
  background: var(--red);
}

.system-card h2 {
  margin: 17px 0 6px;
  letter-spacing: -.02em;
  font-size: 16px;
}

.system-card > p {
  min-height: 37px;
  margin: 0;
  color: #7b8882;
  font-size: 11px;
  line-height: 1.55;
}

.system-card__detail {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 9px 10px;
  border-radius: 8px;
  background: #f7faf8;
  color: #53665c;
  font-size: 10px;
  font-weight: 700;
}

.system-card--offline .system-card__detail {
  background: #fff7f7;
  color: #9e2f32;
}

.system-card__detail > span {
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
}

.system-card--offline .system-card__detail > span {
  background: var(--red);
}

.system-card__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
}

.system-card__meta span {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.system-card__meta small {
  color: #9aa49f;
  font-size: 10px;
}

.system-card__meta strong {
  color: #46544d;
  font-size: 10px;
}

@media (max-width: 1180px) {
  .system-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .system-status-heading,
  .system-status-hero {
    align-items: stretch;
  }

  .system-status-heading {
    flex-direction: column;
  }

  .system-refresh-button {
    width: 100%;
  }

  .system-status-hero {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 20px;
  }

  .system-status-hero__score {
    grid-column: 1 / -1;
    align-items: flex-start;
    padding-top: 4px;
  }

  .system-status-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .system-status-hero {
    grid-template-columns: 1fr;
  }

  .system-status-hero__mark {
    width: 44px;
    height: 44px;
  }

  .system-status-meta {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Source: user-details-v1.css */
.user-invite-control {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 10px;
}

.users-page .overview-device-actions { align-items: flex-end; }

.user-invite-control .primary-action {
  flex: none;
  justify-content: center;
}

.user-invite-control label {
  display: grid;
  gap: 4px;
  color: #71808a;
  font-size: 10px;
  font-weight: 750;
}

.user-invite-control select {
  min-width: 188px;
  height: 38px;
  padding: 0 30px 0 10px;
  border: 1px solid #dbe2e5;
  border-radius: 9px;
  outline: none;
  background: #fff;
  color: #26343c;
  font-size: 11px;
  font-weight: 700;
}

.user-invite-control select:focus {
  border-color: #ee0000;
  box-shadow: 0 0 0 3px rgba(238, 0, 0, .1);
}

.user-row--button {
  width: 100%;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, box-shadow .18s ease;
}

.user-row--button:hover,
.user-row--button:focus-visible {
  background: #fafcfc;
  box-shadow: inset 4px 0 0 #ee0000;
}

.user-row--button:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .14);
  outline-offset: -3px;
}

.user-row__open {
  color: #ee0000;
  font-size: 11px;
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
}

.user-detail-page {
  display: grid;
  gap: 18px;
}

.user-detail-page .detail-back {
  justify-self: start;
  margin-bottom: 0;
}

.user-detail-heading { align-items: center; }

.user-detail-avatar {
  display: grid;
  width: 78px;
  height: 78px;
  overflow: hidden;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid #dce5e8;
  border-radius: 22px;
  background: #eaf3fd;
  color: #1766bd;
  font-size: 20px;
  font-weight: 850;
}

.user-detail-avatar .square-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.user-detail-form label > small {
  display: block;
  margin-top: 7px;
  color: #84929a;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
}

.user-detail-form__buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.user-detail-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  margin: 8px 0 0;
}

.user-detail-facts > div {
  display: grid;
  grid-template-columns: minmax(140px, .8fr) minmax(0, 1.2fr);
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid #edf0f1;
}

.user-detail-facts dt {
  color: #7c8a92;
  font-size: 11px;
}

.user-detail-facts dd {
  overflow: hidden;
  margin: 0;
  color: #24323a;
  font-size: 11px;
  font-weight: 700;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .user-detail-facts { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .overview-device-actions { align-items: stretch; }
  .users-page .overview-device-actions { align-items: stretch; }
  .user-invite-control {
    flex: 1 1 100%;
    flex-wrap: wrap;
  }
  .user-invite-control label { flex: 1 1 188px; }
  .user-invite-control select { width: 100%; }

  .user-row__open {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .user-detail-heading {
    align-items: flex-start;
    flex-direction: column-reverse;
  }

  .user-detail-form__buttons,
  .user-detail-form__buttons > button { width: 100%; }
  .user-detail-form__buttons { flex-direction: column-reverse; }

  .user-detail-facts > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .user-detail-facts dd { text-align: left; }
}

/* Source: overview-quick-actions-v1.css */
.overview-quick-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

@media (max-width: 760px) {
  .overview-quick-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .overview-quick-actions .primary-action {
    flex: 1 1 180px;
    justify-content: center;
  }
}

/* Grotere pictogramblokken in de overzichtskaarten. */
.stat-icon {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
}

/* Functionele lijniconen als zeer zachte achtergrond in de kerncijferkaarten. */
.stat-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.stat-card__top,
.stat-card > strong,
.stat-card > p {
  position: relative;
  z-index: 1;
}

.stat-card__arrow {
  z-index: 2;
}

.stat-card__watermark {
  position: absolute;
  z-index: 0;
  top: 52%;
  right: auto;
  left: 50%;
  width: clamp(70px, 5vw, 82px);
  height: clamp(70px, 5vw, 82px);
  opacity: .06;
  pointer-events: none;
  transform: translate(-50%, calc(-50% - 8px));
}

.stat-card__watermark svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.stat-card__watermark--image {
  width: clamp(96px, 7vw, 108px);
  height: clamp(96px, 7vw, 108px);
  background-color: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.stat-card__watermark--coffee-machine {
  -webkit-mask-image: url("/assets/coffee-machine-outline-v2.png");
  mask-image: url("/assets/coffee-machine-outline-v2.png");
}

.stat-card__watermark--coffee-online {
  -webkit-mask-image: url("/assets/coffee-machine-online-outline-v2.png");
  mask-image: url("/assets/coffee-machine-online-outline-v2.png");
}

.stat-card__watermark--orange {
  color: var(--orange);
}

.stat-card__watermark--green {
  color: var(--green);
}

.stat-card__watermark--red {
  color: var(--red);
}

.stat-card__watermark--blue {
  color: var(--blue);
}

/* Source: version-history-v1.css */
.version-history-page {
  padding-bottom: 28px;
}

.version-history-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.version-history-heading h1 {
  margin: 6px 0;
  font-size: 28px;
  letter-spacing: -.035em;
}

.version-history-heading p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.version-history-heading__actions {
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 22px;
}

.version-history-heading__buttons {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.version-history-report-button {
  justify-content: center;
  gap: 8px;
}

.version-history-report-button svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.problem-report-modal {
  width: min(640px, 100%);
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
}

.problem-report-form textarea {
  width: 100%;
  min-height: 170px;
  resize: vertical;
  color: var(--ink);
  background: #fbfcfc;
  border: 1px solid #dce2e4;
  border-radius: 9px;
  outline: none;
  padding: 12px;
  font: inherit;
  line-height: 1.55;
}

.problem-report-form textarea:focus {
  border-color: var(--orange);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(239, 108, 47, .1);
}

.problem-report-form label > small {
  color: #7c898f;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
}

.problem-report-form .secondary-action:disabled {
  cursor: wait;
  opacity: .65;
}

.version-history-updated {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
  color: #65737a;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
}

.version-history-updated i,
.version-active-label i,
.version-current-badge i {
  width: 7px;
  height: 7px;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 4px var(--green-soft);
}

.version-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.version-summary-card {
  position: relative;
  overflow: hidden;
  padding: 23px 24px 21px;
  background: #fff;
  border: 1px solid #e1e6e7;
  border-radius: 15px;
  box-shadow: 0 6px 20px rgb(35 48 54 / 5%);
}

.version-summary-card::after {
  position: absolute;
  top: -58px;
  right: -42px;
  width: 145px;
  height: 145px;
  content: "";
  background: radial-gradient(circle, rgb(238 0 0 / 8%), transparent 68%);
  border-radius: 50%;
  pointer-events: none;
}

.version-summary-card--style::after {
  background: radial-gradient(circle, rgb(52 120 197 / 10%), transparent 68%);
}

.version-summary-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.version-summary-card__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #fff;
  background: var(--orange);
  border-radius: 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: -.02em;
  box-shadow: 0 7px 16px rgb(238 0 0 / 20%);
}

.version-summary-card--style .version-summary-card__icon {
  background: #344b59;
  box-shadow: 0 7px 16px rgb(52 75 89 / 18%);
}

.version-active-label,
.version-current-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #18764e;
  font-size: 10px;
  font-weight: 800;
}

.version-summary-card__eyebrow {
  display: block;
  color: #7d898e;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.version-summary-card > strong {
  display: block;
  margin: 4px 0 8px;
  color: var(--ink);
  font-size: 32px;
  line-height: 1;
  letter-spacing: -.05em;
}

.version-summary-card > p {
  max-width: 620px;
  min-height: 44px;
  margin: 0;
  color: #6f7c82;
  font-size: 11px;
  line-height: 1.65;
}

.version-summary-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 0;
}

.version-summary-card dl > div {
  padding: 10px 11px;
  background: #f7f9f9;
  border-radius: 9px;
}

.version-summary-card dt {
  margin-bottom: 3px;
  color: #909ba0;
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.version-summary-card dd {
  margin: 0;
  color: #314149;
  font-size: 10px;
  font-weight: 750;
}

.version-changelog-panel {
  margin-top: 16px;
  padding: 23px 24px 8px;
  background: #fff;
  border: 1px solid #e1e6e7;
  border-radius: 15px;
  box-shadow: 0 6px 20px rgb(35 48 54 / 4%);
}

.version-changelog-panel__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid #edf0f1;
}

.version-changelog-panel__heading > div:first-child > span {
  color: var(--orange);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.version-changelog-panel__heading h2 {
  margin: 4px 0 5px;
  font-size: 20px;
  letter-spacing: -.025em;
}

.version-changelog-panel__heading p {
  max-width: 720px;
  margin: 0;
  color: #7a878d;
  font-size: 11px;
  line-height: 1.55;
}

.version-change-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.version-change__type {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .03em;
}

.version-change__type--nieuw {
  color: #23639f;
  background: #eaf3fc;
}

.version-change__type--verbetering {
  color: #9a5100;
  background: #fff3df;
}

.version-change__type--bugfix {
  color: #18764e;
  background: var(--green-soft);
}

.version-change__type--beveiliging {
  color: #68419b;
  background: #f2eafd;
}

.version-history-state {
  display: grid;
  place-items: center;
  gap: 10px;
  min-height: 180px;
  color: #77858c;
  text-align: center;
  font-size: 11px;
}

.version-history-state .button-spinner {
  border-color: #dfe5e7;
  border-top-color: var(--orange);
}

.version-history-state p {
  margin: 0;
}

.version-release-list {
  position: relative;
}

.version-release__item {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 23px;
  padding: 23px 0;
  border-bottom: 1px solid #edf0f1;
}

.version-release__item:last-child {
  border-bottom: 0;
}

.version-release__item--current {
  margin: 0 -12px;
  padding-right: 12px;
  padding-left: 12px;
  background: linear-gradient(90deg, rgb(232 247 239 / 52%), transparent 72%);
  border-radius: 11px;
}

.version-release__meta {
  padding-top: 2px;
}

.version-release__date {
  color: #4b5a62;
  font-size: 11px;
  font-weight: 800;
}

.version-release__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 9px;
}

.version-release__tags span {
  padding: 4px 7px;
  color: #718087;
  background: #f3f6f6;
  border: 1px solid #e7ebec;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 750;
}

.version-release__content {
  min-width: 0;
}

.version-release__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 13px;
}

.version-release__heading h3 {
  margin: 0;
  color: #26343b;
  font-size: 15px;
  letter-spacing: -.015em;
}

.version-release__heading p {
  margin: 4px 0 0;
  color: #7b888e;
  font-size: 10px;
  line-height: 1.55;
}

.version-current-badge {
  padding: 6px 9px;
  background: #f4fbf7;
  border: 1px solid #dcefe5;
  border-radius: 999px;
}

.version-change-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.version-change {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  padding: 10px 11px;
  background: #fafbfb;
  border: 1px solid #edf0f1;
  border-radius: 9px;
}

.version-change > div {
  min-width: 0;
}

.version-change strong {
  display: block;
  color: #35444c;
  font-size: 11px;
}

.version-change p {
  margin: 3px 0 0;
  color: #7c898f;
  font-size: 10px;
  line-height: 1.55;
}

@media (max-width: 900px) {
  .version-summary-grid {
    grid-template-columns: 1fr;
  }

  .version-summary-card > p {
    min-height: auto;
  }

  .version-changelog-panel__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .version-change-legend {
    justify-content: flex-start;
  }
}

@media (max-width: 680px) {
  .version-history-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .version-history-heading__actions {
    align-items: flex-start;
    justify-content: flex-start;
  }

  .version-history-heading__buttons {
    justify-content: flex-start;
  }

  .version-history-updated {
    white-space: normal;
  }

  .version-summary-card,
  .version-changelog-panel {
    padding-right: 17px;
    padding-left: 17px;
  }

  .version-summary-card dl {
    grid-template-columns: 1fr;
  }

  .version-release__item {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .version-release__item--current {
    margin-right: -6px;
    margin-left: -6px;
    padding-right: 6px;
    padding-left: 6px;
  }

  .version-release__heading {
    flex-direction: column;
  }

  .version-change {
    grid-template-columns: 1fr;
  }

  .version-change__type {
    justify-self: start;
  }
}

/* Compact desktopmenu zonder onnodige verticale scrollbar. */
@media (min-width: 821px) {
  .sidebar nav {
    padding-top: 14px;
    padding-bottom: 4px;
    scrollbar-gutter: auto;
  }

  .sidebar .nav-label--second {
    margin-top: 10px;
  }

  .sidebar .nav-item {
    height: 40px;
    margin-top: 1px;
    margin-bottom: 1px;
  }
}

/* Klant- en dealerkoppeling in het volledige koffiemachineoverzicht. */
.machine-row--ownership {
  grid-template-columns:
    minmax(190px, 1.35fr)
    minmax(105px, .8fr)
    minmax(105px, .8fr)
    minmax(100px, .75fr)
    minmax(105px, .8fr)
    70px
    86px;
  gap: 12px;
}

@media (max-width: 1250px) {
  .machine-row--ownership {
    grid-template-columns:
      minmax(180px, 1.3fr)
      minmax(100px, 1fr)
      minmax(100px, 1fr)
      minmax(100px, .8fr)
      86px;
  }

  .machine-row--ownership .machine-row__metric--dealer {
    display: flex;
  }

  .machine-row--ownership .machine-row__metric--update,
  .machine-row--ownership .machine-row__metric--drinks {
    display: none;
  }
}

@media (max-width: 950px) {
  .machine-row--ownership {
    grid-template-columns:
      minmax(170px, 1.3fr)
      minmax(100px, 1fr)
      minmax(100px, 1fr)
      86px;
  }

  .machine-row--ownership .machine-row__metric--status {
    display: none;
  }
}

@media (max-width: 720px) {
  .machine-row--ownership {
    grid-template-columns: 1fr auto;
  }

  .machine-row--ownership .machine-row__metric {
    display: none;
  }
}
/* Source: portal-typography-v1.css */
/* Centrale, compacte typografieschaal voor het ingelogde IoT-portaal. */
:root {
  --portal-type-page-title: clamp(28px, 2vw, 32px);
  --portal-type-detail-title: 28px;
  --portal-type-page-intro: 14px;
  --portal-type-section-title: 20px;
  --portal-type-body: 13px;
  --portal-type-control: 13px;
  --portal-type-action: 12px;
  --portal-type-label: 11px;
  --portal-type-small: 10px;
  --portal-type-metric: 22px;
}

.dashboard-content {
  font-size: var(--portal-type-body);
  line-height: 1.5;
}

.portal-page-heading h1 {
  margin: 7px 0 6px;
  color: var(--ink);
  font-size: var(--portal-type-page-title);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.15;
}

.portal-page-heading > div:first-child > p {
  max-width: 850px;
  margin: 0;
  color: var(--muted);
  font-size: var(--portal-type-page-intro);
  line-height: 1.6;
}

.portal-detail-heading h1 {
  color: var(--ink);
  font-size: var(--portal-type-detail-title);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.2;
}

.portal-detail-heading p {
  color: var(--muted);
  font-size: var(--portal-type-body);
  line-height: 1.5;
}

.dashboard-eyebrow {
  font-size: var(--portal-type-small);
  font-weight: 850;
  line-height: 1.4;
}

.service-live-label,
.activity-secure-badge,
.settings-secure-badge,
.version-history-updated {
  font-size: var(--portal-type-action);
}

:is(
  .panel__heading,
  .detail-panel__heading,
  .users-panel__heading,
  .service-panel__heading,
  .report-panel__heading,
  .activity-log-panel__heading,
  .settings-card__heading,
  .role-card__heading,
  .notification-panel__heading,
  .version-changelog-panel__heading
) h2,
.settings-readonly-card h2,
.system-status-hero__copy h2 {
  font-size: var(--portal-type-section-title);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.25;
}

.machines-panel__header strong,
.customers-panel__header strong,
.dealers-panel__header strong {
  font-size: var(--portal-type-section-title);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.25;
}

:is(
  .panel__heading,
  .detail-panel__heading,
  .users-panel__heading,
  .service-panel__heading,
  .report-panel__heading,
  .activity-log-panel__heading,
  .settings-card__heading,
  .role-card__heading,
  .notification-panel__heading,
  .version-changelog-panel__heading
) > div > span,
.settings-readonly-card > div > span {
  font-size: var(--portal-type-small);
  font-weight: 850;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

:is(
  .panel__heading,
  .detail-panel__heading,
  .users-panel__heading,
  .service-panel__heading,
  .report-panel__heading,
  .activity-log-panel__heading,
  .settings-card__heading,
  .role-card__heading,
  .notification-panel__heading,
  .version-changelog-panel__heading
) > small,
.machines-panel__header small,
.customers-panel__header small,
.dealers-panel__header small {
  font-size: var(--portal-type-label);
  line-height: 1.45;
}

.detail-metric small,
.detail-metric span {
  font-size: var(--portal-type-label);
  line-height: 1.45;
}

.detail-metric strong {
  font-size: var(--portal-type-metric);
  line-height: 1.15;
}

.stat-card__top small,
.stat-card p {
  font-size: var(--portal-type-label);
}

.stat-card > strong {
  font-size: 26px;
  line-height: 1.15;
}

:is(.dashboard-content, .modal) form label {
  font-size: var(--portal-type-action);
  line-height: 1.4;
}

:is(.dashboard-content, .modal) :is(
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea
) {
  font-size: var(--portal-type-control);
  line-height: 1.45;
}

:is(.dashboard-content, .modal) :is(
  .primary-action,
  .secondary-action,
  .secondary-outline-action,
  .back-button,
  .detail-back,
  .danger-action
) {
  font-size: var(--portal-type-action);
}

.service-filters button,
.report-presets button,
.activity-presets button {
  font-size: var(--portal-type-action);
}

:is(
  .machine-row,
  .customer-row,
  .dealer-row,
  .user-row,
  .invitation-row,
  .service-row,
  .customer-machine-row,
  .customer-user-row,
  .dealer-customer-row,
  .dealer-user-row
) strong {
  font-size: var(--portal-type-body);
  line-height: 1.35;
}

:is(
  .machine-row,
  .customer-row,
  .dealer-row,
  .user-row,
  .invitation-row,
  .service-row,
  .customer-machine-row,
  .customer-user-row,
  .dealer-customer-row,
  .dealer-user-row
) small,
.service-row span:not(.service-severity):not(.priority-badge):not(.customer-row__arrow) {
  font-size: var(--portal-type-label);
  line-height: 1.4;
}

.activity-event__main > strong,
.activity-event__actor strong,
.activity-event__organization strong {
  font-size: var(--portal-type-body);
}

.activity-event__main p,
.activity-event__actor span,
.activity-event time {
  font-size: var(--portal-type-label);
}

.location-card strong,
.event-row__top strong,
.history-list strong,
.role-permission-row__copy strong {
  font-size: var(--portal-type-action);
}

.location-card p,
.location-card small,
.event-row p,
.event-row small,
.history-list small,
.role-permission-row__copy p {
  font-size: var(--portal-type-small);
}

.status-badge,
.access-status,
.priority-badge,
.customer-health,
.source-state,
.linked-user-count,
.version-current-badge,
.version-active-label {
  font-size: var(--portal-type-label);
}

@media (max-width: 760px) {
  .portal-page-heading h1 {
    font-size: 28px;
  }

  .portal-page-heading > div:first-child > p {
    font-size: 13px;
  }
}

/* Source: dashboard-production-v1.css */
.operations-dashboard {
  display: grid;
  gap: 13px;
  margin-top: 22px;
}

.operations-dashboard__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  padding: 0 3px 3px;
}

.operations-dashboard__heading h2 {
  margin: 5px 0 3px;
  color: var(--ink);
  font-size: 22px;
  font-weight: 750;
  letter-spacing: -.025em;
  line-height: 1.2;
}

.operations-dashboard__heading p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.operations-live {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  color: #227c58;
  background: #edf9f3;
  border: 1px solid #d9f0e4;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 750;
}

.operations-live i {
  width: 7px;
  height: 7px;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(45, 169, 112, .1);
}

.operations-summary-grid,
.operations-trend-grid {
  display: grid;
  gap: 13px;
}

.operations-summary-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
}

.operations-trend-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.operations-card {
  min-width: 0;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 13px;
  box-shadow: 0 5px 16px rgba(31, 45, 51, .04);
}

.operations-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 19px 21px 15px;
  border-bottom: 1px solid #edf0f1;
}

.operations-card > header > div:first-child > span {
  display: block;
  color: var(--orange);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.operations-card h3 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 18px;
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.25;
}

.operations-card__freshness {
  color: #88959a;
  font-size: 10px;
  line-height: 1.45;
  text-align: right;
}

.operations-card__header-actions {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 9px;
  min-width: 0;
}

.operations-today-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 0;
  margin: 0 21px;
  border-bottom: 1px solid #edf0f1;
}

.operations-today-metrics > div {
  min-width: 0;
  padding: 18px 20px 17px 0;
}

.operations-today-metrics > div + div {
  padding-left: 24px;
  padding-right: 0;
  border-left: 1px solid #edf0f1;
  text-align: right;
}

.operations-today-metrics strong,
.operations-today-metrics span {
  display: block;
}

.operations-today-metrics strong {
  overflow: hidden;
  color: var(--ink);
  font-size: clamp(23px, 2vw, 31px);
  font-weight: 760;
  letter-spacing: -.04em;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operations-today-metrics span {
  margin-top: 7px;
  color: #7e8c92;
  font-size: 11px;
}

.top-drinks-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 17px 21px 20px;
  list-style: none;
}

.top-drinks-list li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.top-drinks-list__rank {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: #7c898f;
  background: #f2f5f5;
  border-radius: 7px;
  font-size: 10px;
  font-weight: 850;
}

.top-drinks-list li:first-child .top-drinks-list__rank {
  color: #9a5200;
  background: #fff0da;
}

.top-drinks-list li > div {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.top-drinks-list li > div > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.top-drinks-list strong {
  overflow: hidden;
  color: #34434a;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.top-drinks-list small {
  flex: none;
  color: #849197;
  font-size: 10px;
}

.top-drinks-list__progress {
  display: block;
  width: 100%;
  overflow: hidden;
  height: 4px;
  appearance: none;
  background: #edf0f1;
  border: 0;
  border-radius: 999px;
}

.top-drinks-list__progress::-webkit-progress-bar {
  background: #edf0f1;
}

.top-drinks-list__progress::-webkit-progress-value {
  background: #d90005;
  border-radius: inherit;
}

.top-drinks-list__progress::-moz-progress-bar {
  background: #d90005;
  border-radius: inherit;
}

.operations-empty {
  display: grid;
  justify-items: center;
  min-height: 165px;
  padding: 28px 20px;
  text-align: center;
}

.operations-empty > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 10px;
  color: #9aa5a9;
  background: #f4f6f6;
  border-radius: 12px;
  font-size: 21px;
}

.operations-empty strong {
  font-size: 12px;
}

.operations-empty p {
  max-width: 330px;
  margin: 5px 0 0;
  color: #8a969b;
  font-size: 10px;
  line-height: 1.5;
}

.usage-metrics {
  display: grid;
  gap: 0;
  padding: 6px 21px 4px;
}

.usage-metrics > div {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 14px 0;
  border-bottom: 1px solid #edf0f1;
}

.usage-metrics > div:last-child {
  border-bottom: 0;
}

.usage-metrics > div > span:last-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.usage-metrics small,
.usage-metrics strong {
  display: block;
}

.usage-metrics small {
  color: #65747b;
  font-size: 11px;
}

.usage-metrics strong {
  color: var(--ink);
  font-size: 22px;
  font-weight: 720;
  letter-spacing: -.03em;
  white-space: nowrap;
}

.usage-metrics em {
  margin-left: 3px;
  color: #7d8a90;
  font-size: 11px;
  font-style: normal;
  font-weight: 650;
  letter-spacing: 0;
}

.usage-metric__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 900;
}

.usage-metric__icon--beans {
  color: #8a5333;
  background: #f6ebe4;
}

.usage-metric__icon--powder {
  color: #ad7412;
  background: #fff4d9;
}

.usage-metric__icon--milk {
  color: #267eb4;
  background: #e6f4fd;
}

.operations-card__note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 21px 20px;
  padding: 10px 11px;
  color: #75848b;
  background: #f6f8f8;
  border-radius: 9px;
  font-size: 10px;
  line-height: 1.5;
}

.operations-card--usage {
  display: flex;
  flex-direction: column;
}

.operations-card--usage .operations-card__note {
  margin-top: auto;
}

.operations-card__note span {
  display: grid;
  flex: none;
  place-items: center;
  width: 15px;
  height: 15px;
  color: #fff;
  background: #839197;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 850;
}

.operations-card--chart {
  position: relative;
  display: grid;
  grid-template-rows: 82px minmax(0, 1fr) auto;
  overflow: hidden;
  min-height: 520px;
}

.operations-card--chart > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  align-items: start;
  height: 82px;
  padding: 19px 27px 10px;
  border-bottom: 0;
}

.operations-card--chart h3 {
  font-size: 21px;
}

.operations-card--chart > .operations-legend {
  align-content: center;
  align-items: center;
  align-self: stretch;
  width: 100%;
  padding: 8px 27px 12px;
  justify-content: flex-start;
}

.operations-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 13px;
}

.operations-legend > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #65747b;
  font-size: 10px;
}

.operations-legend__toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 5px 7px;
  color: #536169;
  background: transparent;
  border: 0;
  border-radius: 8px;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease, opacity 150ms ease;
}

.operations-legend__toggle:hover {
  background: #f3f6f7;
}

.operations-legend__toggle:focus-visible {
  outline: 2px solid #176ea8;
  outline-offset: 2px;
}

.operations-legend__toggle.is-hidden {
  color: #8a969b;
  opacity: .68;
}

.operations-legend__toggle.is-hidden span {
  text-decoration: none;
}

.operations-legend i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.operations-legend__toggle i {
  flex: none;
  width: 11px;
  height: 11px;
  transition: opacity 150ms ease, transform 150ms ease;
}

.operations-legend__toggle.is-hidden i {
  opacity: .32;
  transform: scale(.82);
}

.operations-legend--production {
  flex-wrap: wrap;
  justify-content: flex-start !important;
  max-width: 100%;
  max-height: none;
  padding: 8px 27px 12px !important;
  overflow: visible;
}

.operations-production-legend__toggle {
  display: grid;
  flex: 0 1 auto;
  grid-template-columns: 11px minmax(0, auto);
  grid-template-rows: auto auto;
  column-gap: 7px;
  row-gap: 1px;
  min-width: 0;
  max-width: 100%;
  text-align: left;
}

.operations-production-legend__toggle > i {
  grid-row: 1 / 3;
  align-self: center;
}

.operations-production-legend__toggle > span {
  max-width: 220px;
  overflow-wrap: anywhere;
  white-space: normal;
}

.operations-production-legend__toggle > small {
  color: #89959a;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
}

.operations-production-legend__toggle.is-hidden > small {
  opacity: .7;
}

.legend-milk { background: #2f9fe9; }
.legend-beans { background: #aa6943; }
.legend-powder { background: #efad32; }
.legend-production { background: var(--orange); }

.production-series-color-0 { --production-series-color: #e60000; }
.production-series-color-1 { --production-series-color: #3976d8; }
.production-series-color-2 { --production-series-color: #1d9a73; }
.production-series-color-3 { --production-series-color: #a060d1; }
.production-series-color-4 { --production-series-color: #df7b20; }
.production-series-color-5 { --production-series-color: #008ba3; }
.production-series-color-6 { --production-series-color: #c34870; }
.production-series-color-7 { --production-series-color: #63732d; }
.production-series-color-8 { --production-series-color: #7758d7; }
.production-series-color-9 { --production-series-color: #a55732; }
.production-series-color-10 { --production-series-color: #1682c4; }
.production-series-color-11 { --production-series-color: #68818c; }

.operations-legend i[class^="production-series-color-"] {
  background: var(--production-series-color);
}

.operations-chart {
  display: block;
  width: 100%;
  height: auto;
  padding: 0 18px 14px;
  overflow: visible;
}

.operations-chart-interactive {
  position: relative;
  display: grid;
  align-items: center;
  min-width: 0;
  min-height: 0;
}

.operations-chart[data-trend-chart] {
  cursor: crosshair;
  outline: none;
  touch-action: pan-y;
}

.operations-chart[data-trend-chart]:focus-visible {
  border-radius: 9px;
  outline: 2px solid #176ea8;
  outline-offset: -4px;
}

.operations-chart__grid line {
  stroke: #e9edef;
  stroke-width: 1;
}

.operations-chart__grid text,
.operations-chart__axis-label,
.operations-chart__unit {
  fill: #7f8c92;
  font-family: inherit;
  font-size: 12px;
}

.operations-chart__unit {
  font-size: 11px;
  font-weight: 700;
}

.operations-chart__line {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.4;
  vector-effect: non-scaling-stroke;
}

.operations-chart__line--milk { stroke: #2f9fe9; }
.operations-chart__line--beans { stroke: #aa6943; }
.operations-chart__line--powder { stroke: #efad32; }
.operations-chart__line--production { stroke: var(--orange); }

.operations-chart__line[class*="production-series-color-"] {
  stroke: var(--production-series-color);
}

.operations-chart__dot {
  fill: #fff;
  stroke-width: 1.8;
  vector-effect: non-scaling-stroke;
}

.operations-chart__interaction-layer {
  pointer-events: none;
}

.operations-chart__hit-area {
  fill: transparent;
  pointer-events: all;
}

.operations-chart__timeline {
  stroke: #aeb9be;
  stroke-dasharray: 4 4;
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.operations-chart__focus-dot {
  stroke: #fff;
  stroke-width: 2.5;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 1px 2px rgba(26, 42, 49, .28));
}

.operations-chart__focus-dot--milk { fill: #2f9fe9; }
.operations-chart__focus-dot--beans { fill: #aa6943; }
.operations-chart__focus-dot--powder { fill: #efad32; }

.operations-chart__focus-dot[class*="production-series-color-"] {
  fill: var(--production-series-color);
}

.operations-chart-tooltip {
  position: absolute;
  z-index: 3;
  width: max-content;
  min-width: 205px;
  max-width: calc(100% - 16px);
  padding: 12px 14px 13px;
  color: var(--ink);
  background: rgba(255, 255, 255, .98);
  border: 1px solid #dfe5e7;
  border-radius: 9px;
  box-shadow: 0 8px 24px rgba(28, 43, 50, .18), 0 2px 6px rgba(28, 43, 50, .08);
  pointer-events: none;
}

.operations-chart-tooltip__date {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.25;
}

.operations-chart-tooltip__rows {
  display: grid;
  gap: 6px;
}

.operations-chart-tooltip__row {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: #526168;
  font-size: 12px;
  line-height: 1.35;
}

.operations-chart-tooltip__row > i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.operations-chart-tooltip__row > i[class^="production-series-color-"] {
  background: var(--production-series-color);
}

.operations-chart-tooltip__row > strong {
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.operations-chart-tooltip__row small {
  color: #748187;
  font-size: 10px;
  font-weight: 700;
}

.operations-chart__assistive {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.operations-chart__line--milk__dot { stroke: #2f9fe9; }
.operations-chart__line--beans__dot { stroke: #aa6943; }
.operations-chart__line--powder__dot { stroke: #efad32; }
.operations-chart__line--production__dot { stroke: var(--orange); }

.operations-chart__dot[class*="production-series-color-"] {
  stroke: var(--production-series-color);
}

.operations-chart__area {
  fill: url(#production-area-v120);
  stroke: none;
}

.operations-chart__empty {
  position: absolute;
  right: 22px;
  bottom: 68px;
  left: 22px;
  margin: 0;
  padding: 8px 10px;
  color: #849197;
  background: rgba(247, 249, 249, .92);
  border-radius: 8px;
  font-size: 10px;
  text-align: center;
}

html[data-corner-mode="rounded"] :is(
  .operations-card,
  .operations-empty > span,
  .usage-metric__icon,
  .operations-card__note
) {
  border-radius: var(--platform-block-radius) !important;
}

@media (max-width: 1180px) {
  .operations-summary-grid,
  .operations-trend-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .operations-dashboard {
    margin-top: 18px;
  }

  .operations-dashboard__heading,
  .operations-card > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .operations-dashboard__heading {
    gap: 12px;
  }

  .operations-card > header {
    gap: 9px;
  }

  .operations-card__freshness {
    text-align: left;
  }

  .operations-card__header-actions {
    align-items: flex-start;
    width: 100%;
  }

  .operations-today-metrics {
    grid-template-columns: 1fr;
  }

  .operations-today-metrics > div,
  .operations-today-metrics > div + div {
    padding: 15px 0;
    border-left: 0;
  }

  .operations-today-metrics > div + div {
    border-top: 1px solid #edf0f1;
    text-align: left;
  }

  .operations-legend {
    justify-content: flex-start;
  }

  .operations-legend--production {
    max-width: 100%;
  }

  .operations-card--chart {
    min-height: 420px;
  }
}

@media (max-width: 480px) {
  .operations-card > header,
  .top-drinks-list,
  .usage-metrics {
    padding-right: 16px;
    padding-left: 16px;
  }

  .operations-today-metrics,
  .operations-card__note {
    margin-right: 16px;
    margin-left: 16px;
  }

  .usage-metrics > div > span:last-child {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}

/* Source: dashboard-widgets-v1.css */
.overview-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.widgets-button__icon {
  position: relative;
  display: block;
  width: 15px;
  height: 15px;
  flex: none;
  opacity: .7;
}

.widgets-button {
  gap: 9px;
}

.widgets-button__icon i {
  position: absolute;
  display: block;
  border-radius: 2px;
}

.widgets-button__icon i:nth-child(1),
.widgets-button__icon i:nth-child(4) {
  width: 6px;
  height: 6px;
  border: 1.5px solid currentColor;
}

.widgets-button__icon i:nth-child(1) {
  top: 1px;
  left: 1px;
}

.widgets-button__icon i:nth-child(2) {
  top: 0;
  right: 0;
  width: 7px;
  height: 7px;
  background: currentColor;
}

.widgets-button__icon i:nth-child(3) {
  bottom: 0;
  left: 0;
  width: 7px;
  height: 7px;
  background: currentColor;
}

.widgets-button__icon i:nth-child(4) {
  right: 1px;
  bottom: 1px;
}

.dashboard-widgets-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: stretch;
  gap: 13px;
}

.dashboard-widget {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  grid-column: span 2;
}

.dashboard-widget--wide {
  grid-column: span 6;
}

.dashboard-widget--narrow {
  grid-column: span 2;
}

.dashboard-widget--production-wide {
  grid-column: span 5;
}

.dashboard-widget--production-narrow {
  grid-column: span 3;
}

.dashboard-widget--half {
  grid-column: span 4;
}

.dashboard-widget > :is(.stat-card, .panel, .operations-card) {
  width: 100%;
  height: 100%;
}

.dashboard-widget > .stat-card {
  display: flex;
  flex-direction: column;
  height: 144px;
  min-height: 144px;
  max-height: 144px;
}

.dashboard-widget > .stat-card > p {
  margin-top: auto;
}

.dashboard-widget > .panel {
  min-height: 335px;
}

.dashboard-widget > .operations-card {
  min-height: 100%;
}

.dashboard-widget--editing {
  padding: 48px 6px 6px;
  background: #f1f3f3;
  border: 1px dashed #c9d0d2;
  border-radius: 16px;
  transition: border-color .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.dashboard-widget--editing > :not(.dashboard-widget__editor) {
  pointer-events: none;
  user-select: none;
}

.dashboard-widget__editor {
  position: absolute;
  z-index: 3;
  top: 7px;
  right: 7px;
  left: 7px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.dashboard-widget__editor button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 32px;
  padding: 0 9px;
  color: #59666c;
  background: #fff;
  border: 1px solid #d9dfe1;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 750;
}

.dashboard-widget__editor button:hover:not(:disabled),
.dashboard-widget__editor button:focus-visible {
  color: var(--orange-dark);
  border-color: rgba(238, 0, 0, .34);
  outline: none;
}

.dashboard-widget__editor button:focus-visible {
  box-shadow: 0 0 0 3px rgba(238, 0, 0, .13);
}

.dashboard-widget__editor button:disabled {
  opacity: .38;
  cursor: not-allowed;
}

.dashboard-widget__editor .dashboard-widget__drag-handle {
  margin-right: auto;
  cursor: grab;
  letter-spacing: -3px;
}

.dashboard-widget__editor .dashboard-widget__drag-handle:active {
  cursor: grabbing;
}

.dashboard-widget__editor .dashboard-widget__remove {
  color: var(--orange-dark);
}

.dashboard-widget--dragging {
  opacity: .48;
}

.dashboard-widget--drag-over {
  border-color: var(--orange);
  box-shadow: 0 0 0 4px rgba(238, 0, 0, .1);
}

.widget-catalog {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: 18px 28px;
  margin: -4px 0 18px;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 13px;
  box-shadow: 0 5px 16px rgba(31, 45, 51, .04);
}

.widget-catalog h2 {
  margin: 5px 0 4px;
  color: var(--ink);
  font-size: 20px;
  font-weight: 750;
  letter-spacing: -.025em;
}

.widget-catalog p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.widget-catalog__items {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.widget-catalog__items button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 11px;
  color: #4d5b61;
  background: #f7f9f9;
  border: 1px solid #dfe5e7;
  border-radius: 9px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.widget-catalog__items button:hover,
.widget-catalog__items button:focus-visible {
  color: var(--orange-dark);
  background: #fff;
  border-color: rgba(238, 0, 0, .34);
  outline: none;
}

.widget-catalog__items button span {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  color: #fff;
  background: var(--orange);
  border-radius: 50%;
  font-size: 14px;
  font-weight: 500;
}

.widget-catalog__empty {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  color: #227c58 !important;
  font-weight: 700;
}

.widget-catalog__empty span {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  color: var(--green);
  background: var(--green-soft);
  border-radius: 7px;
}

.widget-catalog .widget-catalog__error,
.widget-catalog__message {
  grid-column: 1 / -1;
}

.widget-catalog .widget-catalog__error {
  margin: 0;
}

.widget-catalog__message {
  color: #227c58 !important;
  font-weight: 700;
}

.dashboard-widgets-empty {
  grid-column: 1 / -1;
  display: grid;
  place-items: center;
  min-height: 260px;
  padding: 35px;
  text-align: center;
  background: #fff;
  border: 1px dashed #cbd2d4;
  border-radius: 13px;
}

.dashboard-widgets-empty > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: var(--orange);
  background: var(--orange-soft);
  border-radius: 11px;
  font-size: 21px;
}

.dashboard-widgets-empty h2 {
  margin: 13px 0 3px;
  font-size: 18px;
}

.dashboard-widgets-empty p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

html[data-corner-mode="rounded"] :is(
  .dashboard-widget--editing,
  .widget-catalog,
  .dashboard-widgets-empty
) {
  border-radius: var(--platform-block-radius) !important;
}

@media (max-width: 1180px) {
  .dashboard-widgets-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .dashboard-widget--stat,
  .dashboard-widget--narrow {
    grid-column: span 2;
  }

  .dashboard-widget--wide,
  .dashboard-widget--production-wide,
  .dashboard-widget--production-narrow,
  .dashboard-widget--half {
    grid-column: span 4;
  }
}

@media (max-width: 760px) {
  .overview-heading-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .widget-catalog {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .widget-catalog__items,
  .widget-catalog__empty {
    justify-content: flex-start;
  }

  .dashboard-widgets-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .dashboard-widget,
  .dashboard-widget--stat,
  .dashboard-widget--wide,
  .dashboard-widget--narrow,
  .dashboard-widget--production-wide,
  .dashboard-widget--production-narrow,
  .dashboard-widget--half {
    grid-column: span 1;
  }

  .dashboard-widget__editor .dashboard-widget__remove {
    padding-inline: 8px;
  }
}

/* Source: machine-dashboard-widgets-v1.css */
.machine-widget-catalog {
  margin: 13px 0 0;
}

.machine-dashboard-widgets-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: stretch;
  gap: 13px;
  margin-top: 13px;
}

.machine-dashboard-widget {
  min-width: 0;
  grid-column: span 3;
}

.machine-dashboard-widget--metric {
  grid-column: span 3;
}

.machine-dashboard-widget--wide {
  grid-column: span 12;
}

.machine-dashboard-widget--primary {
  grid-column: span 7;
}

.machine-dashboard-widget--secondary {
  grid-column: span 5;
}

.machine-dashboard-widget > :is(.detail-metric, .detail-panel) {
  width: 100%;
  height: 100%;
}

.machine-dashboard-widget > .detail-metric {
  min-height: 105px;
}

.machine-dashboard-widget > .detail-panel {
  min-height: 300px;
}

.machine-dashboard-widget--wide > .detail-panel {
  min-height: 250px;
}

.machine-production-trend-panel {
  overflow: hidden;
}

.machine-production-trend-heading {
  align-items: center;
}

.machine-production-trend-heading__meta {
  display: grid;
  justify-items: end;
  gap: 5px;
  min-width: 0;
}

.machine-production-trend-heading__meta > small {
  color: #849197;
  font-size: 10px;
  line-height: 1.35;
}

.detail-panel__heading .machine-production-trend-heading__meta .machine-production-legend {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 320px;
  color: #536169;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: normal;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-align: right;
  text-transform: none;
}

.machine-production-filter-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(135px, .75fr)) minmax(290px, 1.5fr) auto;
  align-items: end;
  gap: 12px;
  padding: 16px 0 14px;
  border-bottom: 1px solid #edf0f1;
}

.machine-production-filter-form > label,
.machine-production-filter-form__range label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
}

.machine-production-filter-form label > span,
.machine-production-filter-form__range legend {
  color: #536169;
  font-size: 10px;
  font-weight: 800;
}

.machine-production-filter-form :is(select, input) {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 11px;
  color: var(--ink);
  background: #fafcfc;
  border: 1px solid #d7dfe2;
  border-radius: 9px;
  outline: none;
  font-size: 11px;
  font-weight: 700;
}

.machine-production-filter-form :is(select, input):focus {
  background: #fff;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(238, 0, 0, .09);
}

.machine-production-filter-form :is(select, input):disabled {
  cursor: wait;
  opacity: .68;
}

.machine-production-filter-form__range {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
  align-items: end;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.machine-production-filter-form__range legend {
  grid-column: 1 / -1;
  margin-bottom: 6px;
  padding: 0;
}

.machine-production-filter-form__range > span {
  display: grid;
  height: 42px;
  place-items: center;
  color: #8a969b;
}

.machine-production-filter-form__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.machine-production-filter-form__actions :is(.primary-action, .secondary-outline-action) {
  height: 42px;
  justify-content: center;
  white-space: nowrap;
}

.machine-production-filter-form__actions .secondary-outline-action:disabled {
  cursor: wait;
  opacity: .68;
}

.machine-production-filter-form__error {
  margin: 12px 0 0;
  padding: 10px 12px;
  color: #a51e24;
  background: #fff1f1;
  border: 1px solid #f1cdcf;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.45;
}

.machine-production-legend > i,
.machine-production-legend__dot {
  flex: none;
  width: 11px;
  height: 11px;
  background: #4f73d4;
  border-radius: 50%;
}

.machine-production-chart-interactive {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 18px 10px 2px;
}

.machine-production-chart {
  padding-bottom: 8px;
}

.machine-production-chart__line {
  stroke: #4f73d4;
}

.machine-production-chart__line__dot {
  stroke: #4f73d4;
}

.machine-production-chart__focus-dot {
  fill: #4f73d4;
}

.machine-production-chart__area {
  fill: url(#machine-production-area-v1);
  stroke: none;
}

.machine-production-chart__empty {
  max-width: 930px;
  margin: 0 auto 18px;
  padding: 9px 12px;
  color: #7e8b91;
  background: #f6f8f8;
  border-radius: 8px;
  font-size: 11px;
  line-height: 1.45;
  text-align: center;
}

.machine-dashboard-widgets-grid > .dashboard-widgets-empty {
  grid-column: 1 / -1;
}

.smart-filter-action {
  white-space: nowrap;
}

.machine-smart-filter-panel {
  scroll-margin-top: 24px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.machine-smart-filter-panel:focus {
  outline: none;
}

.machine-smart-filter-panel--highlighted {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(239, 108, 47, .16), 0 8px 24px rgba(41, 54, 59, .08);
}

.smart-filter-heading {
  align-items: center;
}

.smart-filter-heading__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.smart-filter-heading > .smart-filter-status {
  display: inline-flex;
  min-height: 31px;
  align-items: center;
  gap: 7px;
  padding: 0 11px;
  color: #526067;
  background: #f0f3f3;
  border-radius: 999px;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  font-size: 10px;
  font-weight: 800;
}

.smart-filter-status i {
  width: 7px;
  height: 7px;
  flex: none;
  background: currentColor;
  border-radius: 50%;
}

.smart-filter-status--good {
  color: #1f7b50 !important;
  background: #e8f7ef !important;
}

.smart-filter-status--off {
  color: #66747a !important;
  background: #edf1f2 !important;
}

.smart-filter-toggle {
  position: relative;
  display: inline-flex;
  min-height: 31px;
  align-items: center;
  gap: 7px;
  color: #536168;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
}

.smart-filter-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.smart-filter-toggle__track {
  position: relative;
  display: inline-flex;
  width: 46px;
  height: 25px;
  flex: none;
  align-items: center;
  padding: 3px;
  background: #98a3a7;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(32, 48, 54, .08);
  transition: background-color .18s ease, box-shadow .18s ease;
}

.smart-filter-toggle__track i {
  width: 19px;
  height: 19px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(25, 39, 44, .22);
  transform: translateX(0);
  transition: transform .18s ease;
}

.smart-filter-toggle input:checked + .smart-filter-toggle__track {
  background: #16865e;
}

.smart-filter-toggle input:checked + .smart-filter-toggle__track i {
  transform: translateX(21px);
}

.smart-filter-toggle input:focus-visible + .smart-filter-toggle__track {
  box-shadow: 0 0 0 3px rgba(22, 134, 94, .2);
}

.smart-filter-toggle input:disabled + .smart-filter-toggle__track {
  opacity: .55;
}

.smart-filter-toggle:has(input:disabled) {
  cursor: not-allowed;
}

.smart-filter-toggle strong {
  min-width: 18px;
  color: #66747a;
  font-size: 10px;
}

.smart-filter-toggle--enabled strong {
  color: #16865e;
}

.smart-filter-status--soon {
  color: #946000 !important;
  background: #fff3d9 !important;
}

.smart-filter-status--replace,
.smart-filter-status--expired {
  color: var(--facilenjoy-red-secondary, #c10005) !important;
  background: #fdebec !important;
}

.smart-filter-error {
  margin: 14px 0 0;
}

.smart-filter-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.smart-filter-metrics > div {
  min-width: 0;
  padding: 14px 15px;
  background: #f8fafb;
  border: 1px solid #e8edef;
  border-radius: 11px;
}

.smart-filter-metrics small,
.smart-filter-config-preview small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
}

.smart-filter-metrics strong {
  display: block;
  overflow: hidden;
  margin-top: 6px;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.12;
  text-overflow: ellipsis;
}

.smart-filter-metrics span {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.4;
}

.smart-filter-body {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 12px;
  margin-top: 12px;
}

.smart-filter-product,
.smart-filter-lifetime {
  min-width: 0;
  min-height: 350px;
  padding: 18px;
  border: 1px solid #e7ebee;
  border-radius: 12px;
}

.smart-filter-product {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  align-items: center;
  gap: 19px;
  background: linear-gradient(135deg, #f7f9ff, #fff 62%);
}

.smart-filter-product__image {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.smart-filter-product__image img {
  width: 250px;
  height: 320px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.smart-filter-product__image .smart-filter-product__image-placeholder {
  display: grid;
  width: 250px;
  height: 320px;
  place-items: center;
  border: 1px dashed #d8dfe4;
  border-radius: 12px;
  background: #f8fafb;
  color: #78848a;
  font-size: 11px;
  font-weight: 750;
}

.smart-filter-product__image span {
  color: #909a9f;
  font-size: 10px;
}

.smart-filter-product__details > span,
.smart-filter-lifetime > div > span,
.smart-filter-config-form > div:first-child > span {
  color: #16307c;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.smart-filter-product__details h3,
.smart-filter-lifetime h3,
.smart-filter-config-form h3 {
  margin: 5px 0 0;
  color: var(--ink);
  font-size: 17px;
}

.smart-filter-product__details > strong {
  display: block;
  margin-top: 13px;
  color: #16307c;
  font-size: 22px;
}

.smart-filter-product__details p,
.smart-filter-lifetime p,
.smart-filter-config-form p,
.smart-filter-actions p,
.smart-filter-readonly {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.smart-filter-product__details a {
  display: inline-block;
  margin-top: 10px;
  color: #16307c;
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
}

.smart-filter-product__details a:hover {
  text-decoration: underline;
}

.smart-filter-lifetime {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fbfcfd;
}

.smart-filter-lifetime progress {
  width: 100%;
  height: 13px;
  margin-top: 26px;
  overflow: hidden;
  appearance: none;
  background: #e9edef;
  border: 0;
  border-radius: 999px;
}

.smart-filter-lifetime progress::-webkit-progress-bar {
  background: #e9edef;
  border-radius: 999px;
}

.smart-filter-lifetime progress::-webkit-progress-value {
  background: #29a26a;
  border-radius: 999px;
  transition: width .3s ease;
}

.smart-filter-lifetime progress::-moz-progress-bar {
  background: #29a26a;
  border-radius: 999px;
}

.machine-smart-filter-panel--soon progress::-webkit-progress-value {
  background: #d89a20;
}

.machine-smart-filter-panel--soon progress::-moz-progress-bar {
  background: #d89a20;
}

.machine-smart-filter-panel--replace progress::-webkit-progress-value,
.machine-smart-filter-panel--expired progress::-webkit-progress-value {
  background: var(--facilenjoy-red-secondary, #c10005);
}

.machine-smart-filter-panel--replace progress::-moz-progress-bar,
.machine-smart-filter-panel--expired progress::-moz-progress-bar {
  background: var(--facilenjoy-red-secondary, #c10005);
}

.machine-smart-filter-panel--off progress::-webkit-progress-value {
  background: #a4adb1;
}

.machine-smart-filter-panel--off progress::-moz-progress-bar {
  background: #a4adb1;
}

.smart-filter-progress-label {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 10px;
  margin-top: 7px;
  color: var(--muted);
  font-size: 10px;
}

.smart-filter-progress-label strong {
  color: var(--ink);
  text-align: center;
}

.smart-filter-progress-label span:last-child {
  text-align: right;
}

.smart-filter-management {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: 18px;
  row-gap: 10px;
  margin-top: 12px;
  padding: 15px 16px;
  background: #f8fafb;
  border: 1px solid #e7ecee;
  border-radius: 12px;
}

.smart-filter-config-form {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  grid-template-columns: minmax(190px, 1.4fr) minmax(160px, 1fr) minmax(120px, .7fr) minmax(105px, .6fr) auto;
  align-items: end;
  gap: 10px;
}

.smart-filter-config-form label {
  display: grid;
  gap: 5px;
  color: #536168;
  font-size: 10px;
  font-weight: 750;
}

.smart-filter-config-form select {
  width: 100%;
  min-height: 39px;
  padding: 0 10px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #dce2e5;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
}

.smart-filter-config-preview {
  min-height: 39px;
  padding: 7px 10px;
  background: #fff;
  border: 1px solid #dce2e5;
  border-radius: 9px;
}

.smart-filter-config-preview strong {
  display: block;
  margin-top: 3px;
  color: #16307c;
  font-size: 11px;
}

.smart-filter-config-form button,
.smart-filter-install-action button,
.smart-filter-actions button {
  justify-content: center;
  white-space: nowrap;
}

.smart-filter-config-form > button {
  width: 225px;
}

.smart-filter-install-action {
  display: flex;
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-content: flex-end;
  width: 225px;
}

.smart-filter-install-action button {
  width: 100%;
}

.smart-filter-actions {
  display: grid;
  grid-column: 2;
  grid-row: 2;
  width: 225px;
  max-width: 225px;
  justify-items: end;
  gap: 8px;
}

.smart-filter-actions button {
  width: 100%;
}

.smart-filter-actions p {
  text-align: right;
}

.smart-filter-calculator-disclosure {
  grid-column: 1 / -1;
  grid-row: 3;
  min-width: 0;
}

.smart-filter-calculator-disclosure__summary {
  display: grid;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  place-items: center;
  color: #d90000;
  background: #fff;
  border: 1px solid #dce3e6;
  border-radius: 11px;
  cursor: pointer;
  list-style: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.smart-filter-calculator-disclosure__summary::-webkit-details-marker {
  display: none;
}

.smart-filter-calculator-disclosure__summary:hover {
  border-color: #d90000;
  background: #fff4f4;
}

.smart-filter-calculator-disclosure__summary:focus-visible {
  border-color: #16307c;
  outline: none;
  box-shadow: 0 0 0 3px rgba(22, 48, 124, .12);
}

.smart-filter-calculator-disclosure__icon {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  color: inherit;
}

.smart-filter-calculator-disclosure__icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.smart-filter-calculator-disclosure[open] .smart-filter-calculator-disclosure__summary {
  border-color: rgba(217, 0, 0, .35);
  background: #fff4f4;
}

.smart-filter-calculator-disclosure__content {
  width: 100%;
  margin-top: 10px;
}

.smart-filter-bypass-calculator {
  display: block;
  grid-column: 1 / -1;
  grid-row: 3;
  padding: 17px;
  background: #f6f8f9;
  border: 1px solid #dce3e6;
  border-radius: 13px;
}

.smart-filter-calculator-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.smart-filter-bypass-intro {
  max-width: 760px;
}

.smart-filter-bypass-intro > span,
.smart-filter-bypass-result > span {
  display: block;
  color: #16307c;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.smart-filter-bypass-intro h3 {
  margin: 5px 0 0;
  color: var(--ink);
  font-size: 19px;
}

.smart-filter-bypass-intro p,
.smart-filter-bypass-result p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.smart-filter-bypass-intro a {
  display: inline-block;
  color: #16307c;
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
}

.smart-filter-bypass-intro a:hover {
  text-decoration: underline;
}

.smart-filter-calculator-source {
  flex: 0 0 auto;
  padding-bottom: 2px;
}

.smart-filter-calculator-source a {
  color: #16307c;
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
}

.smart-filter-calculator-source a:hover {
  text-decoration: underline;
}

.smart-filter-bypass-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 12px 13px;
  color: #536168;
  background: #fff;
  border: 1px solid #dce2e5;
  border-radius: 11px;
  font-size: 10px;
  font-weight: 750;
}

.smart-filter-calculator-fields {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(155px, .8fr) minmax(155px, .8fr) minmax(245px, 1.3fr) minmax(195px, 1fr);
  align-items: stretch;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #dce3e6;
}

.smart-filter-bypass-input {
  display: flex;
  align-items: center;
  gap: 8px;
}

.smart-filter-bypass-input input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 11px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cfd8dc;
  border-radius: 9px;
  outline: none;
  font: inherit;
  font-size: 15px;
  font-weight: 800;
}

.smart-filter-bypass-input input:focus {
  border-color: #16307c;
  box-shadow: 0 0 0 3px rgba(22, 48, 124, .11);
}

.smart-filter-bypass-input input:disabled {
  color: #8b969b;
  background: #f2f5f6;
  cursor: not-allowed;
}

.smart-filter-bypass-field select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 0 10px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cfd8dc;
  border-radius: 9px;
  outline: none;
  font-size: 10px;
  font-weight: 750;
}

.smart-filter-bypass-field select:focus {
  border-color: #16307c;
  box-shadow: 0 0 0 3px rgba(22, 48, 124, .11);
}

.smart-filter-bypass-input strong {
  color: #16307c;
  font-size: 12px;
}

.smart-filter-bypass-field small {
  color: #7a878c;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
}

.smart-filter-bypass-result {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 15px 17px;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-left: 4px solid #8b989d;
  border-radius: 11px;
}

.smart-filter-calculator-results {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: stretch;
  gap: 10px;
  margin-top: 10px;
}

.smart-filter-bypass-result > strong {
  display: block;
  margin-top: 6px;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.25;
}

.smart-filter-bypass-result--ready {
  background: #edf8f3;
  border-color: #cceadc;
  border-left-color: #16865e;
}

.smart-filter-bypass-result--ready > span,
.smart-filter-bypass-result--ready > strong {
  color: #08734d;
}

.smart-filter-bypass-result--attention {
  background: #fff8e8;
  border-color: #f0dfb5;
  border-left-color: #c48714;
}

.smart-filter-bypass-result--attention > span {
  color: #8d5b00;
}

.smart-filter-bypass-result--invalid {
  background: #fff1f1;
  border-color: #f0d1d2;
  border-left-color: var(--facilenjoy-red-secondary, #c10005);
}

.smart-filter-bypass-result--invalid > span,
.smart-filter-bypass-result--invalid > strong {
  color: var(--facilenjoy-red-secondary, #c10005);
}

.smart-filter-advice-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 11px 0 0;
}

.smart-filter-advice-facts > div {
  min-width: 0;
  padding: 7px 8px;
  background: rgba(255, 255, 255, .7);
  border: 1px solid rgba(22, 48, 124, .08);
  border-radius: 8px;
}

.smart-filter-advice-facts dt {
  color: #718086;
  font-size: 10px;
}

.smart-filter-advice-facts dd {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 10px;
  font-weight: 800;
}

.smart-filter-readonly {
  margin-top: 12px;
  padding: 11px 13px;
  background: #f5f7f8;
  border-radius: 9px;
}

.smart-filter-disabled-notice {
  margin-top: 12px;
  padding: 14px 16px;
  color: #4f5d63;
  background: #f4f7f7;
  border: 1px solid #e2e8e9;
  border-radius: 11px;
}

.smart-filter-disabled-notice strong {
  display: block;
  color: var(--ink);
  font-size: 11px;
}

.smart-filter-disabled-notice p {
  margin: 4px 0 0;
  font-size: 10px;
  line-height: 1.5;
}

html[data-corner-mode="rounded"] .machine-dashboard-widget--editing {
  border-radius: var(--platform-block-radius) !important;
}

@media (max-width: 1050px) {
  .machine-dashboard-widget--metric {
    grid-column: span 6;
  }

  .machine-dashboard-widget--wide,
  .machine-dashboard-widget--primary,
  .machine-dashboard-widget--secondary {
    grid-column: span 12;
  }

  .smart-filter-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .machine-production-filter-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .machine-production-filter-form__range,
  .machine-production-filter-form__actions {
    grid-column: 1 / -1;
  }

  .smart-filter-body,
  .smart-filter-management {
    grid-template-columns: minmax(0, 1fr);
  }

  .smart-filter-config-form,
  .smart-filter-install-action,
  .smart-filter-actions,
  .smart-filter-calculator-disclosure,
  .smart-filter-bypass-calculator {
    grid-column: 1;
    grid-row: auto;
  }

  .smart-filter-config-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .smart-filter-config-form > div:first-child,
  .smart-filter-actions {
    grid-column: 1 / -1;
  }

  .smart-filter-bypass-calculator {
    padding: 15px;
  }

  .smart-filter-calculator-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .smart-filter-calculator-results {
    grid-template-columns: minmax(0, 1fr);
  }

  .smart-filter-actions {
    justify-items: start;
  }

  .smart-filter-install-action {
    justify-content: flex-start;
  }

  .smart-filter-actions p {
    text-align: left;
  }
}

@media (max-width: 720px) {
  .machine-dashboard-widgets-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .machine-dashboard-widget,
  .machine-dashboard-widget--metric,
  .machine-dashboard-widget--wide,
  .machine-dashboard-widget--primary,
  .machine-dashboard-widget--secondary {
    grid-column: span 1;
  }

  .smart-filter-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .machine-production-trend-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .machine-production-trend-heading__meta {
    justify-items: start;
  }

  .detail-panel__heading .machine-production-trend-heading__meta .machine-production-legend {
    max-width: 100%;
    text-align: left;
  }

  .machine-production-chart-interactive {
    padding: 12px 0 0;
  }

  .machine-production-filter-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .machine-production-filter-form__range,
  .machine-production-filter-form__actions {
    grid-column: auto;
  }

  .machine-production-filter-form__range {
    grid-template-columns: minmax(0, 1fr);
  }

  .machine-production-filter-form__range > span {
    display: none;
  }

  .machine-production-filter-form__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .machine-production-filter-form__actions :is(.primary-action, .secondary-outline-action) {
    width: 100%;
  }

  .smart-filter-heading__actions {
    width: 100%;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .smart-filter-metrics,
  .smart-filter-config-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .smart-filter-config-form > div:first-child,
  .smart-filter-actions {
    grid-column: auto;
  }

  .smart-filter-calculator-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .smart-filter-calculator-fields,
  .smart-filter-calculator-results {
    grid-template-columns: minmax(0, 1fr);
  }

  .smart-filter-product {
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 13px;
    min-height: 0;
    padding: 14px;
  }

  .smart-filter-product__image img {
    width: 125px;
    height: 180px;
  }

  .smart-filter-product__image .smart-filter-product__image-placeholder {
    width: 125px;
    height: 180px;
  }

  .smart-filter-lifetime {
    min-height: 220px;
  }

  .smart-filter-actions {
    display: grid;
    justify-items: stretch;
  }

  .smart-filter-install-action,
  .smart-filter-install-action button,
  .smart-filter-actions,
  .smart-filter-config-form > button,
  .smart-filter-actions button {
    width: 100%;
    max-width: none;
  }
}

/* Logisch gegroepeerde hoofdnavigatie met herkenbare lijniconen. */
.sidebar nav {
  padding-top: 12px;
  padding-bottom: 4px;
}

.nav-group + .nav-group {
  margin-top: 9px;
}

.sidebar .nav-label {
  margin: 0 10px 3px;
  color: #929ea3;
  font-size: 10px;
  line-height: 1.25;
}

.sidebar .nav-item {
  min-height: 38px;
  height: 38px;
  gap: 10px;
  margin-top: 1px;
  margin-bottom: 1px;
  padding-right: 10px;
  padding-left: 10px;
}

.sidebar .nav-item > .nav-item__icon {
  display: grid;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  place-items: center;
  color: #718087;
  background: #f1f4f4;
  border-radius: 7px;
}

.sidebar .nav-item__icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sidebar .nav-item--active > .nav-item__icon {
  color: #fff;
  background: var(--orange);
}

.sidebar .nav-item--disabled > .nav-item__icon {
  color: #a9b1b5;
}

/* Compactere merkzone geeft de navigatie meer zichtbare ruimte. */
.sidebar__brand {
  height: 76px;
  min-height: 76px;
  padding-right: 14px;
  padding-left: 14px;
}

.sidebar__brand .logo-home-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.sidebar .brand--compact .brand__image-frame {
  width: 180px;
  height: 44px;
  margin-right: auto;
  margin-left: auto;
}

.sidebar .brand--compact .brand__image {
  transform: translateY(-15%);
}

/* Gebruikers en rolrechten vormen samen één toegangsbeheeromgeving. */
.access-management-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 22px;
  padding: 4px;
  background: #edf1f2;
  border: 1px solid #e0e6e8;
  border-radius: 11px;
}

.access-management-tab {
  min-height: 36px;
  padding: 0 14px;
  color: #66747b;
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 780;
  transition: color .16s ease, background .16s ease, box-shadow .16s ease;
}

.access-management-tab:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, .68);
}

.access-management-tab:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .2);
  outline-offset: 1px;
}

.access-management-tab--active {
  color: var(--orange-dark);
  background: #fff;
  box-shadow: 0 2px 7px rgba(35, 49, 55, .1);
}

@media (min-width: 821px) {
  .topbar,
  .sidebar__brand {
    height: 84px;
    min-height: 84px;
  }

  .sidebar .brand--compact .brand__image-frame {
    width: 184px;
    height: 46px;
  }
}

@media (max-width: 820px) {
  .sidebar nav {
    padding-top: 12px;
  }

  .sidebar .nav-item {
    min-height: 44px;
    height: 44px;
  }
}

@media (max-width: 560px) {
  .access-management-tabs {
    display: flex;
    width: 100%;
  }

  .access-management-tab {
    flex: 1 1 0;
    padding-right: 9px;
    padding-left: 9px;
  }
}

/* Eén herkenbare lijniconenset voor alle functionele tegels in het portaal. */
.portal-icon {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

:is(
  .input-icon,
  .form-error > span,
  .operations-card__note > span,
  .settings-security-note > span,
  .settings-password-note > span,
  .service-form-note > span,
  .report-coverage > span,
  .activity-privacy-note > span
) > .portal-icon {
  width: 15px;
  height: 15px;
}

:is(
  .stat-icon,
  .activity-icon,
  .notification-item__icon,
  .service-severity,
  .maintenance-event-row__status,
  .event-row__icon,
  .invitation-row__icon,
  .machine-row__icon,
  .location-card__icon,
  .settings-current-session__icon,
  .roles-assignment-note__icon
) > .portal-icon {
  width: 18px;
  height: 18px;
}

:is(
  .usage-metric__icon,
  .system-card__icon,
  .version-summary-card__icon,
  .settings-card__icon,
  .settings-readonly-card__icon,
  .machine-drink-progress__icon,
  .machine-order-row__icon
) > .portal-icon {
  width: 22px;
  height: 22px;
}

:is(
  .customer-empty-icon,
  .dealer-empty-icon,
  .users-empty > span,
  .customer-users-empty > span,
  .service-empty > span,
  .report-empty > span,
  .activity-page-empty > span,
  .notification-empty > div > span,
  .operations-empty > span
) > .portal-icon {
  width: 26px;
  height: 26px;
}

:is(.customer-hero__icon, .dealer-hero__icon) > .portal-icon {
  width: 32px;
  height: 32px;
}

.system-status-hero__mark > .portal-icon {
  width: 30px;
  height: 30px;
}

.activation-email > span > .portal-icon,
:is(.activation-success, .activation-error) > span > .portal-icon {
  width: 22px;
  height: 22px;
}

.machine-drink-action .portal-icon {
  width: 16px;
  height: 16px;
}

/* Klanten en dealers gebruiken voortaan exact dezelfde visuele schaal. */
.customers-page,
.dealers-page {
  gap: 18px;
}

.customers-panel,
.dealers-panel {
  min-height: 430px;
  padding: 0 22px 18px;
  background: #fff;
  border: 1px solid #dfe5e7;
  border-radius: 16px;
}

.customers-panel__header,
.dealers-panel__header {
  min-height: 76px;
  border-bottom-color: #e9edef;
}

.customers-panel__header > div,
.dealers-panel__header > div {
  gap: 5px;
}

.customer-row,
.dealer-row {
  gap: 16px;
  min-height: 78px;
}

.customer-row__identity,
.dealer-row__identity {
  gap: 12px;
}

.customer-row__identity > div,
.customer-row__metric,
.dealer-row__identity > div,
.dealer-row__metric {
  gap: 4px;
}

.customer-row__icon,
.dealer-row__icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
}

.customer-row__icon > .portal-icon,
.dealer-row__icon > .portal-icon {
  width: 20px;
  height: 20px;
}

.customer-empty-icon,
.dealer-empty-icon {
  width: 50px;
  height: 50px;
}

@media (max-width: 760px) {
  .customer-row,
  .dealer-row {
    grid-template-columns: 1fr auto 14px;
    padding: 12px 0;
  }

  .customer-row__metric,
  .dealer-row__metric,
  .customer-row .customer-health,
  .dealer-row .customer-health {
    display: none;
  }
}

/* Inklapbaar desktopmenu: volledig met namen of compact met alleen pictogrammen. */
.sidebar-collapse-button,
.sidebar__compact-brand {
  display: none;
}

.sidebar .nav-item > .nav-item__label {
  display: block;
  flex: 1 1 auto;
  width: auto;
  height: auto;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  background: transparent;
  border-radius: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (min-width: 821px) {
  .dashboard-shell {
    transition: grid-template-columns .2s ease;
  }

  .dashboard-shell--sidebar-collapsed {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .sidebar {
    transition: width .2s ease;
  }

  .sidebar__brand {
    position: relative;
    overflow: visible;
  }

  .sidebar-collapse-button {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: -15px;
    display: grid;
    width: 30px;
    height: 30px;
    padding: 0;
    place-items: center;
    color: #68777e;
    background: #fff;
    border: 1px solid #dce3e5;
    border-radius: 9px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(31, 45, 51, .12);
    transform: translateY(-50%);
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
  }

  .sidebar-collapse-button:hover {
    color: var(--orange-dark);
    background: #fffafa;
    border-color: rgba(238, 0, 0, .32);
    box-shadow: 0 5px 15px rgba(67, 37, 38, .16);
  }

  .sidebar-collapse-button:focus-visible {
    outline: 3px solid rgba(238, 0, 0, .22);
    outline-offset: 2px;
  }

  .sidebar-collapse-button svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .sidebar-collapse-button__arrow {
    transform-box: fill-box;
    transform-origin: center;
    transition: transform .2s ease;
  }

  .sidebar--collapsed {
    width: 76px;
  }

  .sidebar--collapsed .sidebar-collapse-button__arrow {
    transform: scaleX(-1);
  }

  .sidebar--collapsed .sidebar__brand {
    justify-content: center;
    padding-right: 0;
    padding-left: 0;
  }

  .sidebar--collapsed .sidebar__brand .logo-home-button {
    width: 44px;
    height: 44px;
  }

  .sidebar--collapsed .sidebar__brand .brand--compact {
    display: none;
  }

  .sidebar--collapsed .sidebar__compact-brand {
    display: grid;
    width: 34px;
    height: 34px;
    overflow: hidden;
    place-items: center;
    background: #fff;
    border: 1px solid #e6eaeb;
    border-radius: 9px;
    box-shadow: 0 3px 9px rgba(35, 49, 55, .08);
  }

  .sidebar--collapsed .sidebar__compact-brand img {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
  }

  .sidebar--collapsed nav {
    padding: 12px 10px 4px;
  }

  .sidebar--collapsed .nav-label {
    display: none;
  }

  .sidebar--collapsed .nav-group + .nav-group {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #edf0f1;
  }

  .sidebar--collapsed .nav-item {
    justify-content: center;
    gap: 0;
    width: 42px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
  }

  .sidebar--collapsed .nav-item > .nav-item__icon {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }

  .sidebar--collapsed .nav-item > .nav-item__label,
  .sidebar--collapsed .sidebar__theme-preference > div {
    display: none;
  }

  .sidebar--collapsed .sidebar__theme-preference {
    justify-content: center;
    width: 48px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 5px;
    padding-left: 5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-shell,
  .sidebar,
  .sidebar-collapse-button__arrow {
    transition: none;
  }
}

/* Leesbare secundaire informatie op witte kaarten en de lichtgrijze werkruimte. */
:root {
  --facilenjoy-gray-dark: #536169;
  --ink-soft: #536169;
  --muted: #536169;
}

.breadcrumb,
.breadcrumb .breadcrumb-current,
.breadcrumb b,
.dashboard-footer,
.sidebar .nav-label,
.sidebar__status small,
.user-menu small,
.stat-card__top small,
.stat-card p,
.activity-item p,
.activity-item small,
.operations-card__freshness,
.top-drinks-list small,
.report-panel__heading small,
.report-chart__value,
.report-chart__day small,
.report-coverage small,
.maintenance-completion-ring small {
  color: var(--muted);
}

.dashboard-eyebrow,
.panel__heading > div > span,
.detail-panel__heading > div > span,
.operations-card > header > div > span,
.report-panel__heading > div > span {
  color: var(--orange-dark);
}

.login-page .label-row span,
.login-page .login-card__support,
.login-page .privacy-note {
  color: #56646b;
}

.login-page .input-wrap input::placeholder {
  color: #66747a;
}

/* Schakelbare horizontale en verticale koffiemachinedashboardweergave. */
.machine-detail-view-switch {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  padding: 3px;
  background: #f0f2f5;
  border: 1px solid #eceff1;
  border-radius: 999px;
}

.machine-detail-view-switch__option {
  display: grid;
  width: 28px;
  height: 28px;
  padding: 0;
  cursor: pointer;
  color: #9aa6b2;
  background: transparent;
  border: 0;
  border-radius: 50%;
  place-items: center;
  transition: color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.machine-detail-view-switch__option:hover {
  color: #657581;
}

.machine-detail-view-switch__option--active {
  color: var(--red);
  background: #fff;
  box-shadow: 0 4px 12px rgba(38, 52, 59, .14);
}

.machine-detail-view-switch__option:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .2);
  outline-offset: 2px;
}

.machine-detail-view-switch__option:active {
  transform: scale(.96);
}

.machine-detail-view-switch__option svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

/* Zwevende snelkoppeling om vanuit een lang koffiemachinedashboard terug te gaan. */
.machine-back-to-top {
  position: fixed;
  z-index: 40;
  right: calc(22px + env(safe-area-inset-right, 0px));
  bottom: calc(22px + env(safe-area-inset-bottom, 0px));
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  color: #fff;
  background: var(--red);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 11px;
  box-shadow: 0 10px 26px rgba(112, 9, 9, .26);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease, box-shadow .18s ease;
}

.machine-back-to-top--visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.machine-back-to-top--visible:hover {
  box-shadow: 0 13px 30px rgba(112, 9, 9, .34);
  transform: translateY(-2px);
}

.machine-back-to-top:focus-visible {
  outline: 3px solid rgba(238, 0, 0, .24);
  outline-offset: 3px;
}

.machine-back-to-top:active {
  transform: scale(.97);
}

.machine-back-to-top .portal-icon {
  width: 17px;
  height: 17px;
  stroke-width: 2.2;
}

body:has(.toast) .machine-back-to-top {
  bottom: calc(82px + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 720px) {
  .machine-back-to-top {
    right: calc(15px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }

  body:has(.toast) .machine-back-to-top {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .machine-back-to-top {
    transition: none;
  }
}

.machine-detail-layout,
.machine-detail-main {
  min-width: 0;
}

@media (min-width: 1281px) {
  .machine-detail-page--vertical .machine-detail-layout {
    display: grid;
    grid-template-columns: minmax(250px, 300px) minmax(0, 1fr);
    align-items: start;
    gap: 16px;
  }

  .machine-detail-page--vertical .machine-hero {
    position: sticky;
    top: 18px;
    min-height: 520px;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 24px;
  }

  .machine-detail-page--vertical .machine-hero__identity {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }

  .machine-detail-page--vertical .machine-hero__identity > div {
    min-width: 0;
  }

  .machine-detail-page--vertical .machine-hero__icon--photo {
    align-self: center;
    width: 100px;
    height: 140px;
  }

  .machine-detail-page--vertical .machine-hero h1 {
    margin-top: 6px;
    font-size: 22px;
    overflow-wrap: anywhere;
  }

  .machine-detail-page--vertical .machine-hero p {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .machine-detail-page--vertical .machine-hero__status {
    width: 100%;
    min-width: 0;
    align-items: flex-start;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #edf0f1;
  }

  .machine-detail-page--vertical .machine-hero__status-overview {
    width: 100%;
    flex-direction: row-reverse;
    justify-content: flex-end;
  }

  .machine-detail-page--vertical .machine-hero__state {
    align-items: flex-start;
  }

  .machine-detail-page--vertical .machine-mobile-signal {
    padding-right: 0;
    padding-left: 18px;
    border-right: 0;
    border-left: 1px solid #e3e9e6;
    border-radius: 0 9px 9px 0;
  }

  .machine-detail-page--vertical .machine-hero__actions {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
    margin-top: 18px;
  }

  .machine-detail-page--vertical .machine-hero__actions > button {
    width: 100%;
  }

  .machine-detail-page--vertical .machine-widget-catalog {
    margin-top: 0;
    margin-bottom: 13px;
  }

  .machine-detail-page--vertical .machine-dashboard-widgets-grid {
    margin-top: 0;
  }
}

@media (max-width: 720px) {
  .machine-detail-view-switch {
    margin-left: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .machine-detail-view-switch__option {
    transition: none;
  }
}

/* Source: portal-visual-consistency-v1.css */
/* Eenzelfde oppervlak, typografische hiërarchie en maatvoering op alle portalschermen. */
:root {
  --portal-surface-radius: 14px;
}

.maintenance-workspace,
.maintenance-calendar-panel,
.maintenance-day-detail {
  min-width: 0;
}

:is(
  .app-alert,
  .metric-float,
  .login-card,
  .sidebar__status,
  .stat-card,
  .panel,
  .machines-panel,
  .activity-placeholder,
  .modal,
  .machine-form__note,
  .toast,
  .detail-loading,
  .machine-hero,
  .detail-metric,
  .detail-panel,
  .component-state-card,
  .history-strip,
  .customers-panel,
  .customer-hero,
  .location-card,
  .users-panel,
  .activation-card,
  .activation-email,
  .invitation-warning,
  .dealers-panel,
  .dealer-hero,
  .dealer-scope-note,
  .service-panel,
  .service-hero,
  .service-source-warning,
  .service-form-note,
  .service-timeline__item p,
  .report-filter-panel,
  .report-coverage,
  .report-panel,
  .activity-filter-panel,
  .activity-log-panel,
  .activity-privacy-note,
  .settings-card,
  .settings-password-note,
  .settings-organization-meta,
  .settings-security-note,
  .notification-panel,
  .smtp-enabled,
  .smtp-test,
  .device-danger-zone,
  .delete-device-warning,
  .settings-image-editor,
  .settings-image-editor__preview,
  .roles-assignment-note,
  .role-card,
  .system-status-hero,
  .system-card,
  .system-card__detail,
  .user-detail-avatar,
  .version-summary-card,
  .version-summary-card dl > div,
  .version-changelog-panel,
  .version-release__item--current,
  .version-change,
  .maintenance-filter-panel,
  .maintenance-calendar-panel,
  .maintenance-day-detail,
  .maintenance-rules-panel,
  .maintenance-smart-filter-panel,
  .maintenance-day-summary,
  .maintenance-detail-empty,
  .maintenance-rules-empty,
  .maintenance-smart-filter-table-wrap,
  .maintenance-smart-filter-empty,
  .maintenance-rule-table-wrap,
  .consumption-alert-summary article,
  .consumption-alert-explainer,
  .consumption-alert-card,
  .consumption-alert-empty,
  .consumption-alert-loading,
  .machine-row,
  .customer-row,
  .customer-machine-row,
  .customer-user-row,
  .dealer-row,
  .dealer-customer-row,
  .user-row--button,
  .service-row,
  .notification-item
) {
  border-radius: var(--portal-surface-radius) !important;
}

html[data-corner-mode] .notification-list > .notification-item {
  border-radius: 0 !important;
}

[data-corner-mode="square"] :is(
  .maintenance-filter-panel,
  .maintenance-calendar-panel,
  .maintenance-day-detail,
  .maintenance-rules-panel,
  .maintenance-smart-filter-panel,
  .maintenance-day-summary,
  .maintenance-detail-empty,
  .maintenance-rules-empty,
  .maintenance-smart-filter-table-wrap,
  .maintenance-smart-filter-empty,
  .maintenance-rule-table-wrap
) {
  border-radius: var(--portal-surface-radius);
}

.portal-page-heading :is(
  .primary-action,
  .secondary-action,
  .secondary-outline-action,
  .danger-action,
  .danger-outline-action,
  .report-export
) {
  min-height: 46px;
  height: 46px;
}

.login-card__heading--signin h2 {
  font-family: "Glacial Indifference", sans-serif;
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.2;
}

.activation-success h2,
.activation-error h2 {
  font-family: "Glacial Indifference", sans-serif;
  font-size: 29px;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.2;
}

:is(
  .operations-dashboard__heading h2,
  .maintenance-panel-heading h2,
  .maintenance-day-detail__heading h2,
  .system-card h2,
  .version-release__heading h3
) {
  font-size: var(--portal-type-section-title);
  font-weight: 700;
  line-height: 1.25;
}

@media (min-width: 1281px) {
  .machine-detail-page--vertical .machine-hero h1 {
    font-size: var(--portal-type-detail-title);
  }
}

/* Definitieve contrastlaag voor kleine statussen, labels en toelichtingen. */
.sidebar__theme-preference small,
.logout-button,
.machine-row__identity small,
.machine-row__metric small,
.empty-state p,
.detail-metrics article small,
.detail-metrics article p,
.operations-today-metrics span,
.usage-metrics em,
.operations-card__note,
.panel-heading > small,
.detail-panel__heading > small,
.report-metric small,
.secondary-action,
.access-management-tab,
.machine-search input,
.machine-search input::placeholder {
  color: var(--muted);
}

.status-badge--offline {
  color: #536169;
}

.status-badge--online,
.availability-score small,
.rule-row > b,
.status-grid article > b {
  color: #176b4d;
}

/* De geschreven tekst in de acht overzichtskaarten volgt de kleur van de hoofdnavigatie. */
.stat-grid--overview .stat-card__top small,
.stat-grid--overview .stat-card > p {
  color: #66737a;
}

/* Mobiele monteurswerkplek via een intrekbaar QR-servicelabel. */
.technician-access-page {
  min-height: 100dvh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background:
    radial-gradient(circle at 78% 14%, rgba(236, 125, 41, .13), transparent 27%),
    linear-gradient(145deg, #f6f8f9 0%, #eef2f3 100%);
}

.technician-access-header {
  min-height: 88px;
  padding: 20px clamp(20px, 4vw, 58px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: rgba(255, 255, 255, .88);
  border-bottom: 1px solid rgba(20, 37, 45, .08);
  backdrop-filter: blur(18px);
}

.technician-access-header .brand__image-frame {
  width: min(260px, 58vw);
}

.technician-access-main {
  display: grid;
  place-items: center;
  padding: clamp(26px, 6vw, 72px) 20px;
}

.technician-access-card {
  width: min(100%, 560px);
  padding: clamp(28px, 6vw, 52px);
  background: #fff;
  border: 1px solid rgba(20, 37, 45, .09);
  border-radius: 24px;
  box-shadow: 0 28px 75px rgba(26, 43, 51, .13);
}

.technician-access-state {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.technician-access-state > span {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #253942;
  border-radius: 22px;
}

.technician-access-state > span .portal-icon {
  width: 34px;
  height: 34px;
}

.technician-access-state--ready > span {
  background: linear-gradient(145deg, #ef7d29, #d95d17);
  box-shadow: 0 14px 28px rgba(225, 100, 28, .24);
}

.technician-access-state--error > span {
  background: #a83e3e;
}

.technician-access-state h1 {
  margin: 0;
  max-width: 430px;
  font-family: "Glacial Indifference", sans-serif;
  font-size: clamp(30px, 7vw, 43px);
  line-height: 1.04;
  letter-spacing: -.045em;
  color: #172a33;
}

.technician-access-state p {
  margin: 0 0 8px;
  color: #65747b;
  line-height: 1.65;
}

.technician-access-state .login-submit {
  width: 100%;
  margin-top: 8px;
}

.technician-pin-form {
  width: 100%;
  display: grid;
  gap: 10px;
  margin-top: 4px;
  text-align: left;
}

.technician-pin-form label {
  color: #344951;
  font-size: 13px;
  font-weight: 800;
}

.technician-pin-form input {
  width: 100%;
  height: 66px;
  padding: 8px 18px;
  color: #172a33;
  background: #f8fafb;
  border: 1px solid #ccd6da;
  border-radius: 13px;
  outline: none;
  font: inherit;
  font-size: 30px;
  font-weight: 850;
  letter-spacing: .42em;
  text-align: center;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.technician-pin-form input:focus {
  background: #fff;
  border-color: #dc6a23;
  box-shadow: 0 0 0 4px rgba(220, 106, 35, .13);
}

.technician-pin-form > small {
  color: #7a878d;
  font-size: 11px;
  text-align: center;
}

.technician-pin-form .form-error {
  margin: 2px 0 0;
}

.technician-access-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #176b4d;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.technician-access-kicker i,
.technician-live-badge i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #21a16f;
  box-shadow: 0 0 0 5px rgba(33, 161, 111, .12);
}

.technician-access-tools {
  width: 100%;
  margin-top: 10px;
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 9px;
  border-top: 1px solid #edf0f1;
  font-size: 12px;
}

.technician-access-tools a {
  color: #d76017;
  font-weight: 800;
}

.technician-access-tools span {
  color: #7a878d;
}

.technician-service-page {
  max-width: 1500px;
  margin: 0 auto;
}

.technician-standalone-page {
  min-height: 100dvh;
  background: #f2f5f6;
}

.technician-standalone-main {
  padding: clamp(18px, 3vw, 34px);
}

.technician-service-toolbar {
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.technician-pin-session {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #25654e;
  font-size: 12px;
  font-weight: 800;
}

.technician-pin-session .portal-icon {
  width: 18px;
  height: 18px;
}

.technician-quick-actions--single {
  grid-template-columns: minmax(0, 1fr);
}

.technician-machine-hero {
  padding: clamp(22px, 3vw, 34px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 20%, rgba(240, 125, 42, .28), transparent 26%),
    linear-gradient(135deg, #182d36, #29434e);
  border-radius: 18px;
  box-shadow: 0 22px 48px rgba(24, 45, 54, .16);
  overflow: hidden;
}

.technician-machine-identity {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: clamp(18px, 3vw, 32px);
}

.technician-machine-image {
  width: 340px;
  height: 330px;
  flex: 0 0 340px;
  display: grid;
  place-items: center;
}

.technician-machine-image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 18px 20px rgba(0, 0, 0, .24));
}

.technician-machine-identity h1 {
  margin: 4px 0 5px;
  font-family: "Glacial Indifference", sans-serif;
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -.04em;
  line-height: 1;
}

.technician-machine-identity p {
  margin: 0;
  color: rgba(255, 255, 255, .7);
}

.technician-location {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 20px auto;
  gap: 2px 9px;
}

.technician-location > span {
  grid-row: 1 / 3;
  color: #f08a43;
}

.technician-location .portal-icon {
  width: 19px;
  height: 19px;
}

.technician-location strong,
.technician-location small {
  line-height: 1.3;
}

.technician-location small {
  color: rgba(255, 255, 255, .66);
}

.technician-machine-live {
  min-width: 210px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 14px;
}

.technician-machine-live > span,
.technician-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.technician-machine-live > span i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #9aa7ac;
}

.technician-machine-live--online > span i {
  background: #33d391;
  box-shadow: 0 0 0 5px rgba(51, 211, 145, .14);
}

.technician-machine-live strong {
  font-size: 20px;
}

.technician-machine-live small {
  color: rgba(255, 255, 255, .65);
}

.technician-quick-actions {
  margin: 16px 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.technician-quick-actions :is(a, button) {
  min-width: 0;
  min-height: 82px;
  padding: 17px 18px;
  display: grid;
  grid-template-columns: 46px 1fr auto;
  align-items: center;
  gap: 14px;
  color: #243a44;
  text-align: left;
  background: #fff;
  border: 1px solid #e4e9eb;
  border-radius: 14px;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.technician-quick-actions :is(a, button):hover {
  border-color: #efa06b;
  box-shadow: 0 12px 28px rgba(35, 55, 64, .08);
  transform: translateY(-1px);
}

.technician-quick-actions :is(a, button) > span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #df6c24;
  background: #fff2e9;
  border-radius: 12px;
}

.technician-quick-actions .portal-icon {
  width: 23px;
  height: 23px;
}

.technician-quick-actions div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.technician-quick-actions small {
  color: #748087;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.technician-quick-actions b {
  color: #df6c24;
  font-size: 22px;
}

.technician-service-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
  align-items: start;
  gap: 16px;
}

.technician-technical-overview {
  margin-bottom: 16px;
}

.technician-stat-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.technician-stat-grid > article {
  min-width: 0;
  min-height: 112px;
  padding: 15px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: #f6f8f9;
  border: 1px solid #e4e9eb;
  border-radius: 13px;
}

.technician-stat-grid > article.has-attention {
  background: #fff3f2;
  border-color: #efc1bd;
}

.technician-stat-grid small {
  color: #6f7e84;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.technician-stat-grid strong {
  color: #203741;
  font: 800 clamp(24px, 2.4vw, 32px)/1 "Glacial Indifference", sans-serif;
}

.technician-stat-grid .has-attention strong {
  color: #b43d36;
}

.technician-stat-grid span {
  color: #77858b;
  font-size: 12px;
  line-height: 1.35;
}

.technician-data-sections {
  margin-top: 14px;
  display: grid;
  gap: 9px;
}

.technician-data-section {
  overflow: hidden;
  background: #fff;
  border: 1px solid #e2e8ea;
  border-radius: 13px;
}

.technician-data-section[open] {
  border-color: #d7e0e3;
  box-shadow: 0 8px 24px rgba(32, 55, 65, .055);
}

.technician-data-section > summary {
  min-height: 76px;
  padding: 13px 16px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 13px;
  cursor: pointer;
  list-style: none;
}

.technician-data-section > summary::-webkit-details-marker {
  display: none;
}

.technician-data-section > summary:focus-visible {
  outline: 3px solid rgba(224, 104, 32, .24);
  outline-offset: -3px;
}

.technician-data-section__icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #dc681f;
  background: #fff1e7;
  border-radius: 11px;
}

.technician-data-section__icon .portal-icon {
  width: 22px;
  height: 22px;
}

.technician-data-section > summary > span:nth-child(2) {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.technician-data-section > summary small {
  color: #d96621;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.technician-data-section > summary strong {
  color: #283f49;
  font-size: 15px;
}

.technician-data-section > summary b {
  color: #748187;
  font-size: 12px;
  font-weight: 700;
  text-align: right;
}

.technician-data-section > summary > i {
  color: #8a979c;
  font-size: 22px;
  font-style: normal;
  line-height: 1;
  transition: transform .18s ease;
}

.technician-data-section[open] > summary > i {
  transform: rotate(180deg);
}

.technician-data-section__body {
  padding: 18px;
  border-top: 1px solid #e8ecee;
}

.technician-data-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 20px;
}

.technician-data-columns > section + section {
  padding-left: 20px;
  border-left: 1px solid #e4e9eb;
}

.technician-data-columns h3 {
  margin: 0 0 12px;
  color: #2f4650;
  font-size: 15px;
}

.technician-data-list {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 20px;
}

.technician-data-list > div {
  min-width: 0;
  padding: 10px 0;
  display: grid;
  grid-template-columns: minmax(110px, .8fr) minmax(0, 1.2fr);
  gap: 12px;
  border-bottom: 1px solid #edf0f1;
}

.technician-data-list dt,
.technician-data-list dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.technician-data-list dt {
  color: #76858b;
  font-size: 12px;
}

.technician-data-list dd {
  color: #2c434d;
  font-size: 12px;
  font-weight: 800;
  text-align: right;
}

.technician-data-columns .technician-data-list {
  grid-template-columns: 1fr;
}

.technician-log-list,
.technician-compact-log,
.technician-counter-list {
  max-height: 520px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.technician-log-list > section {
  min-width: 0;
  padding: 12px 2px;
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  border-bottom: 1px solid #edf0f1;
}

.technician-log-list > section:first-child {
  padding-top: 2px;
}

.technician-log-list > section:last-child {
  padding-bottom: 2px;
  border-bottom: 0;
}

.technician-log-list section > div,
.technician-compact-log p,
.technician-counter-list span {
  min-width: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.technician-log-list strong,
.technician-compact-log strong,
.technician-counter-list strong {
  color: #2c434d;
}

.technician-log-list small,
.technician-compact-log small,
.technician-counter-list small,
.technician-log-list time {
  color: #78868c;
  font-size: 11px;
  line-height: 1.4;
}

.technician-log-list time {
  max-width: 190px;
  text-align: right;
}

.technician-log-dot {
  width: 9px;
  height: 9px;
  margin-top: 4px;
  border-radius: 50%;
  background: #9ca8ad;
  box-shadow: 0 0 0 4px rgba(156, 168, 173, .12);
}

.technician-log-dot--online {
  background: #28a573;
  box-shadow: 0 0 0 4px rgba(40, 165, 115, .12);
}

.technician-log-list--messages > section {
  grid-template-columns: 36px minmax(0, 1fr) auto;
}

.technician-message-row > span,
.technician-compact-log > div > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: #77868c;
  background: #f0f3f4;
  border-radius: 9px;
}

.technician-message-row > span .portal-icon,
.technician-compact-log > div > span .portal-icon {
  width: 17px;
  height: 17px;
}

.technician-message-row--active > span {
  color: #b63d37;
  background: #fff0ef;
}

.technician-message-row p {
  margin: 5px 0 0;
  color: #5f7077;
  font-size: 12px;
  line-height: 1.45;
}

.technician-compact-log > div {
  padding: 10px 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  border-bottom: 1px solid #edf0f1;
}

.technician-compact-log > div:last-child,
.technician-counter-list > div:last-child {
  border-bottom: 0;
}

.technician-compact-log em {
  margin-top: 3px;
  color: #5f7077;
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
}

.technician-counter-list > div {
  padding: 10px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  border-bottom: 1px solid #edf0f1;
}

.technician-counter-list b {
  color: #263e48;
  font-size: 15px;
}

.technician-data-empty {
  margin: 0;
  padding: 18px;
  color: #748187;
  text-align: center;
  background: #f7f9fa;
  border-radius: 10px;
}

.technician-service-primary,
.technician-service-secondary {
  display: grid;
  gap: 16px;
}

.technician-panel {
  padding: clamp(20px, 3vw, 28px);
  background: #fff;
  border: 1px solid #e5e9eb;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(31, 48, 56, .045);
}

.technician-panel-heading {
  margin-bottom: 20px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.technician-panel-heading > div > span {
  color: #df6c24;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.technician-panel-heading h2 {
  margin: 4px 0;
  font-family: "Glacial Indifference", sans-serif;
  font-size: clamp(23px, 3vw, 29px);
  letter-spacing: -.025em;
  color: #243a44;
}

.technician-panel-heading p {
  margin: 0;
  color: #728087;
  line-height: 1.5;
}

.technician-step-number,
.technician-status-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  color: #df6c24;
  font: 800 17px/1 "Glacial Indifference", sans-serif;
  background: #fff1e7;
  border-radius: 12px;
}

.technician-status-icon .portal-icon {
  width: 23px;
  height: 23px;
}

.technician-status-icon--danger {
  color: #b64040;
  background: #fff0f0;
}

.technician-panel--success {
  border-color: #cfe7dd;
}

.technician-panel--success .technician-status-icon {
  color: #167351;
  background: #eaf7f1;
}

.technician-start-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
}

.technician-start-form label,
.technician-note-field,
.machine-service-qr-copy label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #354b55;
  font-weight: 750;
}

.technician-start-form select,
.technician-note-field textarea,
.machine-service-qr-copy textarea {
  width: 100%;
  padding: 12px 13px;
  color: #263c46;
  background: #fff;
  border: 1px solid #cfd7da;
  border-radius: 9px;
  font: inherit;
}

.technician-start-form select {
  min-height: 46px;
}

.technician-live-badge {
  padding: 9px 12px;
  color: #176b4d;
  background: #eaf7f1;
  border-radius: 999px;
}

.technician-live-badge i {
  width: 7px;
  height: 7px;
}

.technician-checklist {
  display: grid;
  gap: 9px;
}

.technician-checklist-item {
  position: relative;
  padding: 14px;
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: center;
  gap: 13px;
  cursor: pointer;
  background: #f8fafb;
  border: 1px solid #e6ebed;
  border-radius: 12px;
  transition: background .16s ease, border-color .16s ease;
}

.technician-checklist-item:has(input:checked) {
  background: #eff9f4;
  border-color: #b9decf;
}

.technician-checklist-item input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.technician-checklist-item input:focus-visible + .technician-checklist-box {
  outline: 3px solid rgba(224, 104, 32, .28);
  outline-offset: 3px;
}

.technician-checklist-box {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #76848b;
  background: #fff;
  border: 1px solid #d8dfe2;
  border-radius: 10px;
  font-weight: 800;
}

.technician-checklist-item:has(input:checked) .technician-checklist-box {
  color: #fff;
  background: #23845f;
  border-color: #23845f;
}

.technician-checklist-item > span:last-child {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.technician-checklist-item strong {
  color: #304650;
}

.technician-checklist-item small {
  color: #748187;
  line-height: 1.4;
}

.technician-note-field {
  margin-top: 18px;
}

.technician-note-field textarea {
  min-height: 120px;
  resize: vertical;
}

.technician-photo-section {
  margin-top: 16px;
  padding: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: #f8fafb;
  border: 1px solid #e5eaec;
  border-radius: 12px;
}

.technician-photo-section > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.technician-photo-section small {
  color: #77848a;
}

.technician-photo-section input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.technician-photo-button--disabled {
  opacity: .55;
  pointer-events: none;
}

.technician-photo-grid {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.technician-photo-grid a {
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 10px;
  border: 1px solid #dfe5e7;
}

.technician-photo-grid img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.technician-photo-empty {
  margin-top: 10px;
  color: #869197;
  font-size: 12px;
}

.technician-visit-actions {
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.technician-incident-list {
  display: grid;
  gap: 12px;
}

.technician-incident-list > section {
  padding: 17px;
  background: #fff8f4;
  border: 1px solid #f2d9ca;
  border-left: 4px solid #dc6a26;
  border-radius: 11px;
}

.technician-incident-list > section > div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 9px;
}

.technician-incident-list > section > div > span {
  padding: 4px 7px;
  color: #a3431b;
  background: #ffe5d5;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 800;
}

.technician-incident-list small,
.technician-incident-list p,
.technician-incident-list ol {
  color: #736f6c;
}

.technician-incident-list p {
  margin: 10px 0;
  line-height: 1.5;
}

.technician-incident-list ol {
  margin: 0;
  padding-left: 20px;
  line-height: 1.6;
}

.technician-component-list {
  display: grid;
  gap: 9px;
}

.technician-component-list details {
  border: 1px solid #e1e7e9;
  border-radius: 11px;
  overflow: hidden;
}

.technician-component-list summary {
  padding: 14px;
  display: grid;
  grid-template-columns: 10px 1fr auto;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  list-style: none;
  background: #f9fbfb;
}

.technician-component-list summary::-webkit-details-marker {
  display: none;
}

.technician-component-list summary small {
  color: #748187;
}

.technician-component-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #28a675;
}

.technician-component-dot--attention {
  background: #dc6a26;
  box-shadow: 0 0 0 4px rgba(220, 106, 38, .12);
}

.technician-component-list details > div {
  padding: 8px 14px 14px;
  display: grid;
  gap: 8px;
}

.technician-component-list section {
  padding: 10px 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #edf0f1;
}

.technician-component-list section:last-child {
  border-bottom: 0;
}

.technician-component-list section > span {
  color: #28805f;
  font-size: 12px;
}

.technician-component-list ul {
  margin: 0;
  color: #ad4822;
}

.technician-history-columns,
.technician-history-columns > section {
  display: grid;
  gap: 10px;
}

.technician-history-columns > section + section {
  margin-top: 12px;
  padding-top: 20px;
  border-top: 1px solid #e8ecee;
}

.technician-history-columns h3 {
  margin: 0;
  color: #314750;
  font-size: 14px;
}

.technician-history-row {
  padding: 10px 0;
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  border-bottom: 1px solid #edf0f1;
}

.technician-history-row > span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #dd6b25;
  background: #fff1e7;
  border-radius: 8px;
}

.technician-history-row .portal-icon {
  width: 16px;
  height: 16px;
}

.technician-history-row > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.technician-history-row strong {
  color: #3a4e57;
  font-size: 13px;
}

.technician-history-row small,
.technician-history-row p,
.technician-history-empty {
  color: #7b878c;
  font-size: 12px;
}

.technician-history-row p {
  margin: 4px 0 0;
  line-height: 1.45;
}

.technician-readonly,
.technician-access-denied {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

.technician-readonly > span,
.technician-access-denied > span {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  color: #4c6d7b;
  background: #edf4f7;
  border-radius: 12px;
}

.technician-access-denied {
  max-width: 680px;
  margin: 40px auto;
  flex-direction: column;
}

/* Beheer en afdruk van het fysieke servicelabel. */
.machine-service-qr-modal {
  width: min(920px, calc(100vw - 28px));
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
}

.machine-service-qr-layout {
  margin-top: 20px;
  display: grid;
  grid-template-columns: minmax(250px, 330px) 1fr;
  align-items: center;
  gap: clamp(24px, 5vw, 46px);
}

.machine-service-qr-preview {
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #1d333d;
  background: #fff;
  border: 2px solid #1d333d;
  border-radius: 14px;
}

.machine-service-qr-preview img {
  width: 100%;
  max-width: 290px;
  aspect-ratio: 1;
}

.machine-service-qr-preview strong {
  margin-top: 8px;
  font-family: "Glacial Indifference", sans-serif;
  font-size: 22px;
  letter-spacing: .08em;
}

.machine-service-qr-preview span {
  margin-top: 5px;
  font-weight: 800;
}

.machine-service-qr-preview small {
  color: #718087;
}

.machine-service-qr-copy {
  min-width: 0;
  display: grid;
  gap: 16px;
}

.machine-service-qr-security {
  padding: 14px;
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  color: #25654e;
  background: #edf8f3;
  border: 1px solid #cce9dd;
  border-radius: 11px;
}

.machine-service-qr-security > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: #d9f0e6;
  border-radius: 9px;
}

.machine-service-qr-security p {
  margin: 0;
  line-height: 1.5;
}

.machine-service-qr-security strong {
  display: block;
}

.machine-service-qr-copy textarea {
  resize: none;
  font-size: 12px;
}

.machine-service-qr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.machine-service-qr-rotate {
  justify-self: start;
  color: #a34828;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.machine-service-qr-copy > small {
  margin-top: -10px;
  color: #7c888d;
}

.machine-service-qr-empty,
.machine-service-qr-state {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
}

.machine-service-qr-empty > span {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  color: #df6c24;
  background: #fff1e7;
  border-radius: 18px;
}

.machine-service-qr-empty > span .portal-icon {
  width: 30px;
  height: 30px;
}

.machine-service-qr-empty h3,
.machine-service-qr-empty p {
  margin: 0;
}

.machine-service-qr-empty p {
  max-width: 540px;
  color: #748087;
  line-height: 1.55;
}

.machine-service-qr-footer {
  margin-top: 22px;
}

@media (max-width: 1080px) {
  .technician-machine-image {
    width: 220px;
    height: 235px;
    flex-basis: 220px;
  }

  .technician-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .technician-service-grid {
    grid-template-columns: 1fr;
  }

  .technician-history-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 22px;
  }

  .technician-history-columns > section + section {
    margin-top: 0;
    padding-top: 0;
    padding-left: 22px;
    border-top: 0;
    border-left: 1px solid #e8ecee;
  }
}

@media (max-width: 720px) {
  .technician-access-header {
    min-height: 72px;
    padding: 14px 18px;
  }

  .technician-access-header .secure-label {
    font-size: 0;
  }

  .technician-access-header .secure-label__dot {
    margin: 0;
  }

  .technician-access-card {
    border-radius: 18px;
  }

  .technician-service-page {
    padding-inline: 12px;
  }

  .technician-standalone-main {
    padding: 12px 0 22px;
  }

  .technician-pin-form input {
    height: 62px;
  }

  .technician-service-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .technician-service-toolbar :is(button, .back-button) {
    width: 100%;
    justify-content: center;
  }

  .technician-machine-hero {
    padding: 20px;
    align-items: stretch;
    flex-direction: column;
  }

  .technician-machine-identity {
    align-items: flex-start;
  }

  .technician-machine-image {
    width: 145px;
    height: 170px;
    flex-basis: 145px;
  }

  .technician-machine-identity h1 {
    font-size: 31px;
  }

  .technician-location {
    margin-top: 13px;
  }

  .technician-machine-live {
    min-width: 0;
  }

  .technician-quick-actions,
  .technician-history-columns,
  .technician-start-form,
  .technician-data-columns {
    grid-template-columns: 1fr;
  }

  .technician-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .technician-data-columns > section + section {
    padding-top: 18px;
    padding-left: 0;
    border-top: 1px solid #e4e9eb;
    border-left: 0;
  }

  .technician-data-list {
    grid-template-columns: 1fr;
  }

  .technician-data-section > summary {
    grid-template-columns: 40px minmax(0, 1fr) 18px;
    padding-inline: 13px;
  }

  .technician-data-section > summary > b {
    display: none;
  }

  .technician-data-section__icon {
    width: 40px;
    height: 40px;
  }

  .technician-log-list > section,
  .technician-log-list--messages > section {
    grid-template-columns: 12px minmax(0, 1fr);
  }

  .technician-log-list--messages > section {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .technician-log-list time {
    max-width: none;
    grid-column: 2;
    text-align: left;
  }

  .technician-history-columns > section + section {
    margin-top: 12px;
    padding-top: 20px;
    padding-left: 0;
    border-top: 1px solid #e8ecee;
    border-left: 0;
  }

  .technician-panel {
    padding: 18px;
  }

  .technician-panel-heading {
    gap: 10px;
  }

  .technician-checklist-item {
    align-items: start;
  }

  .technician-photo-section,
  .technician-visit-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .technician-photo-button,
  .technician-visit-actions button {
    width: 100%;
    justify-content: center;
  }

  .technician-photo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .technician-incident-list > section > div {
    grid-template-columns: auto 1fr;
  }

  .technician-incident-list > section > div small {
    grid-column: 2;
  }

  .technician-component-list summary {
    grid-template-columns: 10px 1fr;
  }

  .technician-component-list summary small {
    grid-column: 2;
  }

  .machine-service-qr-layout {
    grid-template-columns: 1fr;
  }

  .machine-service-qr-preview {
    width: min(100%, 330px);
    margin: 0 auto;
  }

  .machine-service-qr-actions > * {
    width: 100%;
    justify-content: center;
  }
}

/* Persoonlijke voorraadalerts voor tijdige bevoorrading */
.consumption-alerts-page {
  display: grid;
  gap: 18px;
}

.consumption-alerts-heading {
  align-items: center;
  margin-bottom: 0;
}

.consumption-alert-summary {
  display: grid;
  grid-template-columns: minmax(190px, .65fr) minmax(280px, 1.35fr) minmax(190px, .65fr);
  gap: 13px;
}

.consumption-alert-summary article {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 13px;
  box-shadow: 0 4px 12px #303e4306;
}

.consumption-alert-summary__icon {
  width: 40px;
  height: 40px;
  flex: none;
  display: grid;
  place-items: center;
  color: var(--orange);
  background: #fff0f0;
  border-radius: 11px;
}

.consumption-alert-summary__icon--mail {
  color: var(--blue);
  background: var(--blue-soft);
}

.consumption-alert-summary__icon--reached {
  color: var(--green);
  background: var(--green-soft);
}

.consumption-alert-summary__icon .portal-icon {
  width: 20px;
  height: 20px;
}

.consumption-alert-summary article div {
  min-width: 0;
}

.consumption-alert-summary small {
  display: block;
  margin-bottom: 5px;
  color: #7f8b90;
  font-size: 11px;
  font-weight: 700;
}

.consumption-alert-summary strong {
  display: block;
  overflow: hidden;
  font-size: 18px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.consumption-alert-explainer {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 15px 17px;
  color: #276d50;
  background: #f1fbf6;
  border: 1px solid #d8f0e3;
  border-radius: 13px;
}

.consumption-alert-explainer > .portal-icon {
  width: 22px;
  height: 22px;
  flex: none;
  margin-top: 1px;
}

.consumption-alert-explainer strong {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
}

.consumption-alert-explainer p {
  margin: 0;
  color: #557168;
  font-size: 11px;
  line-height: 1.55;
}

.consumption-alert-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.consumption-alert-card {
  min-width: 0;
  padding: 20px;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 15px;
  box-shadow: 0 8px 24px #303e4309;
}

.consumption-alert-card--paused {
  background: #fafbfb;
}

.consumption-alert-card__heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.consumption-alert-card__icon {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  color: #8c5c37;
  background: #f7eee7;
  border-radius: 12px;
}

.consumption-alert-card__icon--powder {
  color: #a06620;
  background: #fff5e5;
}

.consumption-alert-card__icon--milk {
  color: var(--blue);
  background: var(--blue-soft);
}

.consumption-alert-card__icon .portal-icon {
  width: 22px;
  height: 22px;
}

.consumption-alert-card__heading > div {
  min-width: 0;
}

.consumption-alert-card__heading > div > span {
  display: block;
  overflow: hidden;
  color: #7b878c;
  font-size: 10px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.consumption-alert-card__heading h2 {
  margin: 3px 0 0;
  font-size: 17px;
}

.consumption-alert-state {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
  color: #277653;
  background: var(--green-soft);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.consumption-alert-state i {
  width: 6px;
  height: 6px;
  background: var(--green);
  border-radius: 50%;
}

.consumption-alert-state--reached,
.consumption-alert-state--warning {
  color: var(--orange-dark);
  background: #fff0f0;
}

.consumption-alert-state--reached i,
.consumption-alert-state--warning i {
  background: var(--orange);
}

.consumption-alert-state--pending {
  color: #8a5a18;
  background: #fff5df;
}

.consumption-alert-state--pending i {
  background: #cf861e;
}

.consumption-alert-state--paused {
  color: #68747a;
  background: #edf0f1;
}

.consumption-alert-state--paused i {
  background: #9ba5aa;
}

.consumption-alert-usage {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 22px 0 12px;
}

.consumption-alert-usage span {
  display: block;
  margin-bottom: 5px;
  color: #7f8b90;
  font-size: 10px;
}

.consumption-alert-usage strong {
  font-size: 20px;
}

.consumption-alert-usage__limit {
  flex: none;
  text-align: right;
}

.consumption-alert-card > progress {
  appearance: none;
  width: 100%;
  height: 8px;
  overflow: hidden;
  background: #edf0f1;
  border: 0;
  border-radius: 999px;
}

.consumption-alert-card > progress::-webkit-progress-bar {
  background: #edf0f1;
  border-radius: 999px;
}

.consumption-alert-card > progress::-webkit-progress-value {
  background: linear-gradient(90deg, #28a368, #65bd89);
  border-radius: 999px;
}

.consumption-alert-card > progress::-moz-progress-bar {
  background: linear-gradient(90deg, #28a368, #65bd89);
  border-radius: 999px;
}

.consumption-alert-card--reached > progress::-webkit-progress-value,
.consumption-alert-card--warning > progress::-webkit-progress-value {
  background: linear-gradient(90deg, var(--orange-dark), var(--orange));
}

.consumption-alert-card--reached > progress::-moz-progress-bar,
.consumption-alert-card--warning > progress::-moz-progress-bar {
  background: linear-gradient(90deg, var(--orange-dark), var(--orange));
}

.consumption-alert-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 14px;
}

.consumption-alert-card__meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: #6f7b80;
  font-size: 10px;
}

.consumption-alert-card__meta .portal-icon {
  width: 14px;
  height: 14px;
  flex: none;
}

.consumption-alert-card__status {
  min-height: 17px;
  margin: 11px 0 0;
  color: #899499;
  font-size: 10px;
}

.consumption-alert-card__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 17px;
  padding-top: 15px;
  border-top: 1px solid #edf0f1;
}

.consumption-alert-replenish,
.consumption-alert-toggle,
.consumption-alert-delete {
  min-height: 36px;
  padding: 0 10px;
  cursor: pointer;
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 750;
}

.consumption-alert-replenish {
  color: #fff;
  background: var(--green);
}

.consumption-alert-replenish:hover {
  background: #21885a;
}

.consumption-alert-toggle:hover {
  background: #f1f4f4;
}

.consumption-alert-delete {
  margin-left: auto;
  color: var(--orange-dark);
}

.consumption-alert-delete:hover {
  background: #fff0f0;
}

.consumption-alert-empty,
.consumption-alert-loading {
  min-height: 310px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 36px;
  text-align: center;
  background: #fff;
  border: 1px solid #e2e7e8;
  border-radius: 15px;
}

.consumption-alert-empty > .portal-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 15px;
  color: var(--orange);
}

.consumption-alert-empty h2 {
  margin: 0 0 8px;
  font-size: 18px;
}

.consumption-alert-empty p,
.consumption-alert-loading p {
  max-width: 470px;
  margin: 0 0 18px;
  color: #7b878c;
  font-size: 12px;
  line-height: 1.6;
}

.consumption-alert-loading {
  gap: 13px;
}

.consumption-alert-modal {
  width: min(760px, calc(100vw - 32px));
  max-height: min(820px, calc(100vh - 32px));
  overflow: auto;
}

.consumption-alert-modal__heading {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 22px;
  padding-right: 35px;
}

.consumption-alert-modal__heading > span {
  width: 43px;
  height: 43px;
  flex: none;
  display: grid;
  place-items: center;
  color: var(--orange);
  background: #fff0f0;
  border-radius: 12px;
}

.consumption-alert-modal__heading .portal-icon {
  width: 22px;
  height: 22px;
}

.consumption-alert-modal__heading small {
  color: var(--orange);
  letter-spacing: .11em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 850;
}

.consumption-alert-modal__heading h2 {
  margin: 4px 0 6px;
  font-size: 23px;
}

.consumption-alert-modal__heading p {
  margin: 0;
  color: #738086;
  font-size: 11px;
  line-height: 1.55;
}

.consumption-alert-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.consumption-alert-form > label,
.consumption-alert-stock label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #435057;
  font-size: 11px;
  font-weight: 750;
}

.consumption-alert-form :is(input[type="number"], select) {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  outline: none;
  color: var(--ink);
  background: #fbfcfc;
  border: 1px solid #dbe1e3;
  border-radius: 9px;
  font-size: 12px;
}

.consumption-alert-form :is(input[type="number"], select):focus {
  background: #fff;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px #ee000014;
}

.consumption-alert-form label small {
  color: #8b969b;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.45;
}

.consumption-alert-form__wide {
  grid-column: 1 / -1;
}

.consumption-alert-stock {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(120px, .55fr);
  gap: 10px;
}

.consumption-alert-calculation {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px 13px;
  color: #5c6b71;
  background: #f4f8fa;
  border: 1px solid #e2e9ec;
  border-radius: 10px;
}

.consumption-alert-calculation .portal-icon {
  width: 17px;
  height: 17px;
  flex: none;
  margin-top: 1px;
  color: var(--blue);
}

.consumption-alert-calculation p {
  margin: 0;
  font-size: 10px;
  line-height: 1.55;
}

.consumption-alert-active {
  flex-direction: row !important;
  align-items: flex-start;
  gap: 11px !important;
  padding: 13px 14px;
  cursor: pointer;
  background: #f7f9f9;
  border: 1px solid #e4e9ea;
  border-radius: 10px;
}

.consumption-alert-active input {
  width: 17px;
  height: 17px;
  margin-top: 1px;
  accent-color: var(--orange);
}

.consumption-alert-active span {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.consumption-alert-form__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 4px;
}

@media (max-width: 950px) {
  .consumption-alert-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .consumption-alert-summary article:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .consumption-alert-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .consumption-alerts-heading {
    align-items: stretch;
  }

  .consumption-alerts-heading .primary-action {
    width: 100%;
    justify-content: center;
  }

  .consumption-alert-summary {
    grid-template-columns: 1fr;
  }

  .consumption-alert-summary article:nth-child(2) {
    grid-column: auto;
    grid-row: auto;
  }

  .consumption-alert-card {
    padding: 17px;
  }

  .consumption-alert-card__heading {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .consumption-alert-state {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .consumption-alert-usage strong {
    font-size: 17px;
  }

  .consumption-alert-card__meta {
    flex-direction: column;
  }

  .consumption-alert-card__actions {
    flex-wrap: wrap;
  }

  .consumption-alert-delete {
    margin-left: 0;
  }

  .consumption-alert-form {
    grid-template-columns: 1fr;
  }

  .consumption-alert-form__wide {
    grid-column: auto;
  }

  .consumption-alert-stock {
    grid-template-columns: 1fr;
  }

  .consumption-alert-form__actions {
    flex-direction: column-reverse;
  }

  .consumption-alert-form__actions button {
    width: 100%;
    justify-content: center;
  }
}

@media print {
  body.printing-machine-service-qr * {
    visibility: hidden !important;
  }

  body.printing-machine-service-qr .machine-service-qr-preview,
  body.printing-machine-service-qr .machine-service-qr-preview * {
    visibility: visible !important;
  }

  body.printing-machine-service-qr .machine-service-qr-preview {
    position: fixed;
    inset: 12mm auto auto 12mm;
    width: 80mm;
    box-shadow: none;
  }
}
