.auth-page{min-height:100vh;display:grid;place-items:center;padding:30px 18px;background:radial-gradient(ellipse at top left,#dce9cf 0,transparent 55%),#f3f6ef}.auth-card{background:#fff;border:1px solid #e3e9dd;border-radius:18px;padding:40px;width:100%;max-width:480px;box-shadow:0 16px 60px #234e3f0b}.auth-card .brand{padding:0;margin-bottom:38px}.auth-kicker{font-size:11px;letter-spacing:1.8px;color:#849770;margin-bottom:12px}.auth-card h1{font-size:27px}.auth-card .subtitle{line-height:1.7}.auth-form{display:flex;flex-direction:column;gap:18px;margin-top:28px}.auth-form .btn{padding:14px}.auth-info{font-size:13px;line-height:1.7;margin:24px 0;color:#77856d;padding:15px;background:#f6f8f2;border-radius:8px}.auth-card>small{font-size:12px}.florist-shell{min-height:100vh}.florist-header{display:flex;align-items:center;justify-content:space-between;gap:18px;background:white;border-bottom:1px solid var(--line);padding:24px 40px}.florist-identity{display:flex;align-items:center;gap:16px;font-size:14px}.florist-identity small{display:block;margin-top:4px}.florist-content{max-width:1400px;padding:32px 40px;margin:auto}.florist-tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);margin-bottom:26px}.florist-tabs button{padding:14px 20px;color:#798974;border-bottom:3px solid transparent;font-size:15px}.florist-tabs button.selected{border-color:#486d3b;color:#234e3f;font-weight:600}.florist-tabs span{background:#e3ecd7;border-radius:4px;padding:2px 5px}.florist-order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.florist-order-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.recipe-price{font-size:24px;margin:20px 0}.auth-profile-name{min-width:0;overflow-wrap:anywhere}.auth-top-actions{display:flex;gap:8px}.auth-role{color:#668345;font-size:12px}.auth-profile{align-items:flex-start}.auth-profile .btn{margin-top:8px}.auth-refresh{font-size:12px}@media(max-width:950px){.florist-order-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.florist-header{padding:20px}.florist-content{padding:25px 20px}}@media(max-width:650px){.auth-card{padding:28px 24px}.florist-header{align-items:flex-start;flex-direction:column}.florist-identity{width:100%;justify-content:space-between;gap:8px}.florist-order-grid{grid-template-columns:1fr}.florist-tabs{gap:0;overflow:auto}.florist-tabs button{padding:12px 15px}.auth-role{display:none}.auth-top-actions .btn{padding:6px}.florist-content{padding:23px 16px}}

/* Mobile layout and touch targets */
html{min-width:320px;scrollbar-gutter:stable}
body{overflow-x:hidden}
dialog{max-height:calc(100dvh - 24px);overflow:hidden}
dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 24px)}
.dialog-head,.dialog-actions{flex:0 0 auto}
.dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
@media(max-width:650px){
  .content{min-width:0;padding:20px 14px calc(24px + env(safe-area-inset-bottom))}
  .topbar{position:sticky;top:0;z-index:15;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .branch-picker{min-width:0;flex:1}
  .branch-picker select{min-width:0;max-width:calc(100vw - 150px);overflow:hidden;text-overflow:ellipsis}
  .topright{flex:0 0 auto}
  .heading{align-items:stretch;flex-direction:column}
  .heading>.actions{width:100%;flex-wrap:wrap}
  .heading>.actions .btn{flex:1 1 auto}
  .toolbar{align-items:stretch}
  .toolbar>.field,.toolbar>.search{flex:1 1 100%;min-width:0}
  .toolbar>.actions{width:100%}
  .toolbar>.actions .btn{flex:1 1 auto}
  .panel-head{align-items:flex-start;flex-wrap:wrap}
  .panel-head>.settings-actions{width:100%;margin-top:0}
  .settings-actions .btn{flex:1 1 auto}
  .customer{padding:18px}
  .customer-stats{gap:14px;flex-wrap:wrap}
  .customer-stats>div{min-width:calc(50% - 8px)}
  .note,code{overflow-wrap:anywhere}
  .dialog-head{padding:16px 18px}
  .dialog-head h2{font-size:18px;padding-right:8px}
  .dialog-body{padding:16px 18px}
  .dialog-actions{position:sticky;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff}
  .dialog-actions .btn{min-height:44px;flex:1 1 auto}
  .field input,.field select,.field textarea,.toolbar select,.toolbar input[type=date]{min-height:44px;font-size:16px}
  .search input{min-height:44px;font-size:16px}
  .btn{min-height:44px}
  .btn.small{min-height:40px}
  .nav button{min-height:44px}
  .calendar-order-actions{width:100%}
  .calendar-order-actions .btn{flex:1 1 auto}
  .sale-payment-options{gap:8px}
  .sale-payment-options label{min-height:48px}
  .florist-shell{min-height:100dvh}
  .florist-header{position:sticky;top:0;z-index:15;flex-wrap:wrap;gap:10px;padding:10px 14px;background:#fff}
  .florist-identity{min-width:0;max-width:100%;overflow-wrap:anywhere}
  .florist-header .settings-actions{width:100%;margin-top:0}
  .florist-content{padding:16px 14px calc(24px + env(safe-area-inset-bottom))}
  .florist-tabs{display:flex;gap:6px;overflow-x:auto;white-space:nowrap;margin:0 -14px 16px;padding:0 14px 8px;-webkit-overflow-scrolling:touch}
  .florist-tabs button{flex:0 0 auto;min-height:44px}
}
@media(max-width:420px){
  .topbar{height:60px}
  .branch-picker select{max-width:calc(100vw - 125px);font-size:12px}
  .topright{font-size:12px}
  .content{padding-left:12px;padding-right:12px}
  .heading h1{font-size:22px}
  .metric{padding:13px}
  .metric strong{font-size:21px;overflow-wrap:anywhere}
  .panel-head{padding-left:14px;padding-right:14px}
  .chart{padding-left:12px;padding-right:12px}
  .dialog-actions{flex-direction:column-reverse}
  .dialog-actions .btn{width:100%}
  .florist-content{padding-left:12px;padding-right:12px}
}
.florist-cash-day .customer-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:16px;padding:18px 24px;border-top:1px solid var(--line)}
.florist-cash-day .customer-stats>div{min-width:0;overflow-wrap:anywhere}
.florist-cash-day .customer-stats b{display:block;margin-top:8px;font-size:20px;line-height:1.25}
.florist-history-layout{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(360px,1fr);gap:20px;align-items:start}
.florist-calendar-panel .panel-head{padding:18px 20px 14px}
.florist-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:0 16px 18px}
.florist-calendar-weekdays{padding-bottom:7px;color:var(--muted);font-size:12px;text-align:center}
.florist-calendar-day{min-width:0;min-height:70px;padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.florist-calendar-day.outside{opacity:.4}
.florist-calendar-day:disabled{cursor:default;background:#fafbf9}
.florist-calendar-day.has-shifts{background:#edf4e3;border-color:#d4e2c6;color:#234e3f}
.florist-calendar-day.selected{outline:2px solid #537b4a;outline-offset:1px;font-weight:700}
.florist-calendar-day small{font-size:10px;white-space:nowrap}
.florist-history-detail>.panel-head{padding-bottom:16px}
.florist-history-shift-picker,.florist-history-summary,.florist-history-orders,.florist-history-payments,.florist-history-empty{margin:0 20px 16px}
.florist-history-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;background:#f4f7ef;border-radius:8px}
.florist-history-summary>div{min-width:0;overflow-wrap:anywhere}
.florist-history-summary b{display:block;margin-top:5px;font-size:14px}
.florist-history-payments{font-size:13px;line-height:1.8;color:var(--muted)}
.florist-history-orders{max-height:460px;overflow:auto}
.florist-history-order{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.florist-history-order:last-child{border-bottom:0}
.florist-history-order>div{min-width:0}
.florist-history-order small{display:block;margin-top:4px;overflow-wrap:anywhere}
.florist-history-order strong{white-space:nowrap}
.florist-history-empty{padding:18px 0 24px}
@media(max-width:1000px){.florist-cash-day .customer-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.florist-history-layout{grid-template-columns:1fr}}
@media(max-width:650px){.florist-cash-day .panel-head{align-items:stretch}.florist-cash-day .panel-head .btn{width:100%}.florist-cash-day .customer-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px}.florist-cash-day .customer-stats b{font-size:17px}.florist-calendar-grid{gap:4px;padding-left:10px;padding-right:10px}.florist-calendar-day{min-height:54px;padding:5px 2px}.florist-calendar-day small{font-size:9px}.florist-history-summary{grid-template-columns:1fr 1fr}}
