/* Bonvilo operator workspace: existing CI, one spacing and control system. */
:root{--dark:#123f2d;--green:#194c37;--olive:#637c43;--sage:#dce4cf;--cream:#f5f1e8;--white:#fffdf8;--text:#17221d;--muted:#536158;--border:#dce0d6}
html{scrollbar-color:#aab8a1 var(--cream)}::selection{background:var(--sage);color:var(--dark)}
body{line-height:1.5}button,input,textarea,select{font-size:15px}input,textarea{caret-color:var(--dark)}
h1{font-size:clamp(28px,3vw,36px);line-height:1.16;letter-spacing:-.03em}h2{font-size:22px;line-height:1.3;letter-spacing:-.02em}h3{font-size:17px;line-height:1.4;color:var(--dark)}
main{max-width:1540px;padding:32px clamp(24px,3.5vw,56px) 48px}.app{grid-template-columns:264px minmax(0,1fr)}
.sidebar{width:264px;position:sticky;top:0;height:100dvh;min-height:0;overflow-y:auto;padding:28px 18px 20px;gap:18px;background:var(--dark)}
.sidebar .logo{font-size:27px;letter-spacing:-.7px;padding:0 10px}.sidebar>small{padding:0 10px;letter-spacing:.03em;font-size:11px}
.sidebar nav{gap:3px}.nav-group{font-size:11px;font-weight:600;letter-spacing:.03em;color:#c2d0b8;padding:19px 12px 7px;margin:0}.nav-group:first-child{padding-top:6px}
.sidebar nav button{min-height:45px;padding:11px 12px;gap:11px;border-radius:9px;line-height:1.35;font-size:14px;position:relative}
.sidebar nav button.active{background:var(--sage);color:var(--dark);font-weight:650}.nav-icon{width:21px;height:21px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.nav-icon svg{width:21px;height:21px;stroke-width:1.65}
.sidebar-foot{padding:20px 12px 0;border-top:1px solid #ffffff25;margin-top:24px;font-size:11px;color:#c2d0b8}
main>header{margin-bottom:26px;padding-bottom:24px;border-bottom:1px solid #c8d1bf;align-items:center}main>header .eyebrow,.panel .eyebrow{display:none}.selector{gap:10px}.selector label{font-size:12px;color:var(--muted);font-weight:500}.selector select{min-width:190px;max-width:300px;background:var(--white)}
.panel>.lead{font-size:16px;max-width:72ch;margin-bottom:24px}.card,.metrics article{border-radius:14px;box-shadow:none;border:1px solid var(--border);background:var(--white)}.card{padding:26px;margin-bottom:24px}.card p{max-width:75ch}.card .card{border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;padding:24px 0 0;margin-top:28px!important}
.card>h2:not(:first-child),.card>h3:not(:first-child){margin-top:30px;padding-top:24px;border-top:1px solid var(--border)}
.two-cols,.scan-layout,.setup-grid{gap:24px;align-items:start}.two-cols>*{min-width:0}.metrics{gap:0;border:1px solid var(--border);border-radius:14px;background:var(--white);overflow:hidden;margin-bottom:26px}.metrics article{border:0;border-radius:0;border-right:1px solid var(--border);padding:22px 24px;gap:8px;background:transparent}.metrics article:last-child{border-right:0}.metrics strong{font-size:34px;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.metrics article span{font-size:13px;font-weight:600;color:var(--dark)}.metrics small{font-size:12px;line-height:1.45}
button{border-radius:9px;min-height:46px;padding:11px 16px;line-height:1.4;transition:background-color 120ms,color 120ms}.primary{background:var(--dark);color:var(--white)}button:active:not(:disabled){filter:brightness(.93)}button:disabled{opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--olive);outline-offset:3px}
input,select,textarea{border-radius:9px;border:1px solid #bbc5b5;padding:12px 13px;min-height:46px;background:var(--white);font-size:16px}input::placeholder,textarea::placeholder{color:#65705f}input:read-only{background:#edf1e7}input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:var(--dark)}input[type=color]{height:48px;max-width:120px;padding:5px}input[type=file]{padding:9px;font-size:14px}input::file-selector-button{border:0;border-radius:5px;padding:7px 10px;background:var(--sage);color:var(--dark);margin-right:12px}
label{margin:20px 0 7px;font-weight:600;font-size:13px}.actions{gap:10px;align-items:center;margin-top:18px}.actions button{flex:0 1 auto}.card>button.primary{margin-top:18px}.note,.helper{line-height:1.65!important}.notice{padding:16px 18px;border-radius:9px;background:var(--pale)}.message{border:1px solid var(--olive);border-radius:9px}.message.error{border-color:var(--danger)}
.test-app{border:1px solid #c9d4be;background:var(--pale);padding:16px 20px;margin-bottom:24px;border-radius:10px}.featured{background:#edf1e7}.card-icon{background:transparent;padding:0;width:32px;height:32px;margin-bottom:16px}.card-icon svg{width:30px;height:30px}
.activity,.customer,.branch-item{padding-block:18px}.activity small,.customer small{line-height:1.6}.customer>div>button{margin-top:8px}.activity:last-child{padding-bottom:0}.activity p{margin-block:6px}.customer strong{font-size:16px}summary{min-height:46px;padding-block:12px;cursor:pointer;font-weight:600}details{border-top:1px solid var(--border);margin-top:18px}.setup-tabs,.wizard-tabs{gap:6px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:24px}.setup-tabs button,.wizard-tabs button{font-size:14px;min-height:46px;border-radius:8px}.setup-progress{gap:10px;margin:24px 0}.setup-progress button{max-width:200px}
.more-grid{gap:12px}.more-grid button{min-height:58px;display:flex;align-items:center;gap:12px;font-size:15px;text-align:left}.more-group{grid-column:1/-1;margin:22px 0 0;font-size:15px;padding-bottom:10px;border-bottom:1px solid var(--border)}.more-group:first-child{margin-top:0}
.notification-preview{border-radius:12px;padding:22px}.dialog-close{border-radius:8px}dialog:not(#experience-preview){border-radius:16px;padding:26px;line-height:1.5}dialog h2{padding-right:20px}.auth-shell .auth-card{max-width:480px}.auth-shell .eyebrow{color:var(--dark)}
@media(hover:hover) and (pointer:fine){.sidebar nav button:not(.active):hover{background:#ffffff12;filter:none}button:not(:disabled):hover{filter:brightness(.97)}}
@media(max-width:1100px){.metrics article{padding:19px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics article:nth-child(2n){border-right:0}.metrics article:nth-child(n+3){border-top:1px solid var(--border)}}
@media(max-width:800px){.app{display:block}.sidebar{position:static;height:auto;width:100%;padding:16px 20px;border-bottom:1px solid #ffffff20;overflow:visible}.sidebar .logo{padding:0;font-size:23px}.sidebar nav{display:none}main{padding:24px 17px calc(104px + env(safe-area-inset-bottom));max-width:700px}main>header{gap:18px;margin-bottom:24px;padding-bottom:22px;align-items:stretch}.selector{justify-content:space-between}.selector select{max-width:75%;min-width:0}.card{padding:20px;margin-bottom:20px}.two-cols,.scan-layout,.setup-grid{grid-template-columns:minmax(0,1fr);gap:0}.metrics article{padding:18px 15px}.metrics strong{font-size:30px}.metrics article:last-child{grid-column:auto}.metrics article span{font-size:12px}.metrics small{font-size:11px}.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 8px calc(7px + env(safe-area-inset-bottom));box-shadow:none;gap:3px}.bottom-nav button{min-height:58px;font-size:10px;font-weight:500;padding:7px 2px;gap:5px}.bottom-nav .nav-icon{width:22px;height:22px}.bottom-nav button.active{background:var(--sage);font-weight:650}.more-grid{grid-template-columns:1fr 1fr;gap:10px}.more-grid button{font-size:13px;padding:12px}.more-group{font-size:14px}.actions button{flex:1 1 140px}.setup-tabs{display:flex;flex-wrap:wrap}.setup-tabs button{flex:1 1 90px;font-size:12px}.preview-rail{position:static}.section-heading{flex-wrap:wrap;gap:12px}.test-app{font-size:14px}.customer{grid-template-columns:minmax(0,1fr) 84px;gap:12px}.customer img{width:84px;height:84px}dialog:not(#experience-preview){padding:20px;max-width:calc(100vw - 24px)}footer{padding-bottom:12px}}
@media(max-width:360px){.more-grid{grid-template-columns:1fr}.metrics article{padding:15px 12px}.bottom-nav button{font-size:9px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

.card>.card-icon+h2{border-top:0;padding-top:0;margin-top:0}

/* Penpot 21.10.2026: 390px canvas = 20 + 350 + 20. Four persistent destinations. */
.operator-shell{--border:rgb(99 124 67 / 22%)}
.operator-shell .operator-identity{display:flex;flex-direction:column;min-width:0;gap:2px}
.operator-identity>strong{font-size:23px;line-height:1.25;overflow-wrap:anywhere;color:var(--dark)}
.operator-identity>small{font-size:12px;color:var(--muted)}
.operator-account{position:relative;flex-shrink:0;margin-left:auto}
.operator-avatar{height:46px;width:46px;min-height:46px;padding:0;border-radius:50%;background:var(--sage);border-color:transparent;font-size:15px;letter-spacing:.02em}
.operator-account-menu{position:absolute;right:0;top:calc(100% + 10px);width:min(290px,calc(100vw - 40px));padding:8px;background:var(--white);border:1px solid var(--border);border-radius:12px;z-index:70;color:var(--dark)}
.operator-account-menu[hidden],.operator-account-menu [hidden]{display:none!important}
.operator-account-menu>button{display:block;width:100%;border:0;background:transparent;text-align:left;font-size:14px;border-radius:6px}
.operator-account-menu .selector{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:10px 8px;border-top:1px solid var(--border)}
.operator-account-menu .selector select{width:100%;max-width:100%;min-width:0}
.operator-shell main>header{gap:24px}
.operator-shell main>header>div:not(.operator-identity):not(.operator-account){order:2;margin-left:auto}
.operator-shell main>header .operator-account{order:3;margin-left:0}
.operator-shell main>header h1{font-size:22px}
.operator-shortcut{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:24px;border:1px solid var(--border);border-radius:12px;min-height:96px;margin:0 0 22px;background:var(--white)}
.operator-shortcut>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:5px}
.operator-shortcut strong{font-size:19px;line-height:1.3;font-weight:650}
.operator-shortcut small{font-size:13px;line-height:1.4;font-weight:400}
.operator-shortcut .shortcut-icon{display:flex;flex-shrink:0;width:26px;height:26px}
.shortcut-icon svg{width:100%;height:100%;stroke-width:1.7}
.shortcut-arrow{font-size:30px;font-weight:400;line-height:1}
.operator-scan{background:var(--dark);color:var(--white);border-color:var(--dark)}
.operator-scan small{color:var(--sage)}
.operator-create{background:var(--sage)}
.operator-overview-title{font-size:18px;text-align:center;margin:30px 0 18px}
.operator-shell .operator-daily-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:0;border-radius:0;background:transparent;overflow:visible;margin-bottom:30px}
.operator-daily-metrics>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;padding:16px 5px;min-height:102px;font-size:12px;border:1px solid var(--border);border-radius:10px;font-weight:500}
.operator-daily-metrics strong{font-size:30px;line-height:1.15;font-weight:650;font-variant-numeric:tabular-nums}
.operator-daily-metrics small{font-size:10px;color:var(--muted);font-weight:400;line-height:1.35}
.operator-start-details{margin-top:28px;padding-top:4px}
.operator-start-details>summary{display:flex;align-items:center;justify-content:space-between;list-style:none}
.operator-start-details>summary::-webkit-details-marker{display:none}
.operator-start-details>summary::after{content:'+';font-size:22px;font-weight:400}
.operator-start-details[open]>summary::after{content:'−'}
.operator-extra-metrics{margin-top:20px}
.operator-shell .bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(min-width:801px){.operator-shell #dashboard{max-width:1040px}.operator-shell .operator-shortcut{max-width:100%}.operator-shell .operator-scan{min-height:104px}.operator-shell .operator-daily-metrics{margin-bottom:28px}.operator-shell .operator-daily-metrics>button{min-height:110px}}
@media(max-width:800px){
 .operator-shell .sidebar{display:none}
 .operator-shell main{padding:0 20px calc(110px + env(safe-area-inset-bottom));max-width:none}
 .operator-shell main>header{margin:0 -20px 28px;padding:22px 20px 18px;background:var(--dark);color:var(--white);border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:12px}
 .operator-shell .operator-identity>strong{color:var(--white);font-size:24px}
 .operator-shell .operator-identity>small{color:var(--sage);font-size:11px}
 .operator-shell main>header .operator-account{grid-column:2;grid-row:1;align-self:center}
 .operator-shell main>header>div:not(.operator-identity):not(.operator-account){grid-column:1/-1;margin:0;order:2}
 .operator-shell main>header h1{font-size:20px;color:var(--white);padding-top:10px;border-top:1px solid rgb(220 228 207 / 22%)}
 .operator-shell[data-operator-panel=dashboard] main>header>div:not(.operator-identity):not(.operator-account),.operator-shell #dashboard>.lead{display:none}
 .operator-shell .operator-shortcut{padding:22px 18px;margin-bottom:22px;gap:14px;min-height:94px}
 .operator-shell .operator-scan{min-height:104px;margin-top:0}
 .operator-shell .operator-shortcut strong{font-size:18px}
 .operator-shell .operator-shortcut small{font-size:12px}
 .operator-shell .operator-overview-title{margin:26px 0 18px}
 .operator-shell .operator-daily-metrics{gap:10px;margin-bottom:30px}
 .operator-shell .operator-daily-metrics>button{padding:14px 3px;min-height:96px;font-size:11px}
 .operator-shell .operator-daily-metrics strong{font-size:29px}
 .operator-shell .bottom-nav{display:grid;position:fixed;inset:auto 0 0;z-index:60;width:100%;border-top:1px solid var(--border);background:var(--white);padding:7px 10px calc(7px + env(safe-area-inset-bottom));gap:0}
 .operator-shell .bottom-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:56px;border:0;border-radius:0;background:transparent;font-size:11px;color:var(--muted);gap:5px;padding:7px 3px}
 .operator-shell .bottom-nav button.active{color:var(--dark);background:transparent;font-weight:700}
 .operator-shell .bottom-nav .nav-icon svg{width:23px;height:23px;stroke-width:1.8}
 .operator-shell .bottom-nav button.active .nav-icon svg{stroke-width:2.4}
 .operator-shell .performance-heading{flex-direction:column;align-items:stretch}
 .operator-shell .operator-extra-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .operator-shell #dashboard>.notice{margin-top:24px;font-size:12px}
}
@media(max-width:359px){.operator-shell main{padding-inline:14px}.operator-shell main>header{margin-inline:-14px;padding-inline:14px}.operator-shell .operator-daily-metrics{gap:6px}.operator-shell .operator-daily-metrics>button{font-size:10px}.operator-shell .operator-daily-metrics small{font-size:9px}}

/* Offer location: one main address flow; optional GPS and coordinates behind disclosures. */
.campaign-location-editor{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}
.campaign-location-editor>h3{margin:0 0 16px;font-size:18px}
.campaign-location-editor>label{margin-top:16px}
.campaign-location-editor>button{margin-top:12px}
.campaign-location-editor>select+label{margin-top:20px}
.campaign-location-editor .location-option{margin-top:12px;border-top:1px solid var(--border);padding-top:2px}
.campaign-location-editor .location-option>summary{font-size:14px;font-weight:600;min-height:48px}
.campaign-location-editor .location-option>button{margin:4px 0 12px}
.campaign-location-editor .location-option .note{font-size:12px;margin:8px 0 12px}
#campaign-gps-status:empty,#campaign-address-results:empty,#campaign-address-suggestion:empty{display:none}
#campaign-gps-status,#campaign-address-results,#campaign-address-suggestion{font-size:14px;line-height:1.5;margin:12px 0}
#campaign-address-results>button{width:100%;text-align:left;margin:6px 0}
#campaign-location-editor .two-cols{margin-bottom:14px}
.campaign-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:max-content}
.campaign-row-actions .campaign-trash{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;margin-left:8px;color:var(--danger);border-color:rgb(184 58 50 / 25%)}
.campaign-trash svg{width:21px;height:21px;pointer-events:none}
#campaign-delete-dialog{max-width:480px;width:calc(100vw - 32px)}
#campaign-delete-name{font-weight:650;overflow-wrap:anywhere}
#campaign-delete-error:empty{display:none}
#campaign-delete-error{color:var(--danger);font-size:14px}
.campaign-delete-confirm{color:var(--white);background:var(--danger);border-color:var(--danger)}
/* Rescue legacy styles hid the former KPI row; explicitly show the new three-field overview. */
.operator-shell #dashboard>.operator-daily-metrics{display:grid}
