:root{
  --blue:#00558b;
  --blue2:#0072b8;
  --blueSoft:#e6f4ff;
  --line:#d9e4ee;
  --text:#172033;
  --muted:#68758a;
  --bg:#eef5fb;
  --danger:#b42318;
  --ok:#0f7a35;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}
a{text-decoration:none}
button,input{font:inherit}
.portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.portal-logo{width:230px;max-height:46px;object-fit:contain}
.portal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.admin-form-grid .wide{grid-column:1/-1}
.order-extra-actions{margin:-8px 0 14px;padding:0 12px 12px;border-bottom:1px solid #e5edf5}
.shipping-section-title{margin:22px 0 12px;font-size:13px;letter-spacing:0;color:#172033}
.shipping-recommendations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:14px 0 24px}
.shipping-recommendation{display:grid;grid-template-columns:1fr;gap:12px;align-items:start;border:1px solid #b7d8ee;border-radius:10px;padding:16px;background:#f8fbff}
.shipping-recommendation.active{border-color:#00558b;background:#e6f4ff}
.shipping-recommendation b,.shipping-recommendation small{display:block}
.shipping-recommendation b{line-height:1.35;margin:2px 0 8px}
.shipping-recommendation small{color:#667085;margin-top:8px;line-height:1.45}
.shipping-recommendation strong,.shipping-option strong{white-space:nowrap;color:#00558b}
.shipping-recommendation strong{display:block;margin-top:2px;font-size:20px;line-height:1.25}
.shipping-recommendation .btn{justify-self:start}
.shipping-badges{margin-bottom:10px}
.shipping-badges span{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#172033;color:#fff;font-size:11px;font-weight:900}
.shipping-options{display:grid;gap:10px;margin-top:12px}
.shipping-option{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid #d7e3ef;border-radius:10px;padding:12px;background:#fff}
.shipping-option.active{border-color:#00558b;background:#e6f4ff}
.shipping-option span,.shipping-option small{display:block;color:#667085;margin-top:5px;line-height:1.38}
.shipping-option b{line-height:1.35}
.badge-ok,.badge-warn{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900}
.badge-ok{background:#dcfce7;color:#166534}
.badge-warn{background:#fff7ed;color:#9a3412}
.inline-admin-form{display:grid;gap:6px}
.inline-admin-form label{display:flex;align-items:center;gap:6px;margin:0;text-transform:none}
.inline-admin-form input[type="checkbox"]{width:auto}
.code-box{background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;white-space:pre-wrap;overflow:auto}
.role-pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:8px 11px;color:var(--blue);font-weight:900;background:#f8fbff}
.btn{border:1px solid transparent;border-radius:8px;padding:9px 12px;font-weight:900;text-transform:uppercase;font-size:11px;line-height:1.1;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:inherit;cursor:pointer}
.btn-blue{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-dark{background:#111827;color:#fff}
.btn-soft{background:#f8fbff;border-color:#cfe0ef;color:var(--blue)}
.btn-danger{background:#fff5f5;border-color:#fecaca;color:var(--danger)}
.portal-shell{width:min(1180px,calc(100vw - 24px));margin:16px auto 42px}
.portal-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 22px rgba(15,23,42,.06);padding:16px}
.portal-card + .portal-card{margin-top:14px}
.auth-card{max-width:500px;margin:auto}
.portal-card label{display:grid;gap:5px;margin:10px 0;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}
.portal-card input,.portal-card select{width:100%;border:1px solid #cfe0ef;border-radius:8px;padding:10px;background:#fff;color:var(--text);font:inherit;text-transform:none}
.form-actions{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:14px}
h1,h2,h3,h4{color:var(--blue);line-height:1.12}
h1{font-size:24px;margin:0 0 8px}
h2{font-size:18px;margin:0 0 12px}
h3{font-size:15px;margin:0 0 8px}
h4{font-size:13px;margin:0 0 6px}
.muted{color:var(--muted);font-size:13px;line-height:1.45}
.notice{border-radius:10px;padding:10px 12px;margin:8px 0;font-size:13px;line-height:1.45}
.notice.ok{background:#eefbf3;border:1px solid #bde8cb;color:var(--ok)}
.notice.warn{background:#fffbeb;border:1px solid #fde68a;color:#854d0e}
.notice.error{background:#fff1f2;border:1px solid #fecdd3;color:var(--danger)}
.dash-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.metric{border:1px solid var(--line);border-radius:10px;background:#f8fbff;padding:12px}
.metric b{display:block;color:var(--blue);font-size:20px}
.metric span{font-size:11px;color:var(--muted);font-weight:900;text-transform:uppercase}
.metric-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.metric-actions .btn{font-size:10px;padding:7px 9px}
.location-metric.ok{border-color:#bde8cb;background:#eefbf3}
.location-metric.warn{border-color:#fde68a;background:#fffbeb}
.location-status-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.location-status-card strong{color:var(--blue);font-size:12px}
.location-status-card span{font-weight:900}
.location-status-card.ok{background:#eefbf3;border-color:#bde8cb;color:var(--ok)}
.location-status-card.warn{background:#fffbeb;border-color:#fde68a;color:#854d0e}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}
th{font-size:11px;text-transform:uppercase;color:var(--blue);background:#f8fbff}
.table-wrap{overflow:auto}
.admin-user-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end}
.admin-user-form label{margin:0}
.admin-row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.inline-reset-form{display:flex;gap:6px;align-items:center}
.inline-reset-form input{width:190px;padding:8px;font-size:12px}
.cart-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.cart-patient{border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:12px;overflow:hidden}
.cart-patient-head{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f8fbff;border-bottom:1px solid var(--line);padding:12px}
.cart-patient-head b{color:var(--blue)}
.cart-items{padding:10px 12px}
.cart-item{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(220px,2fr) 110px;gap:10px;border-bottom:1px dashed #d7e2ec;padding:10px 0;font-size:13px}
.cart-item:last-child{border-bottom:0}
.cart-item strong{color:var(--blue)}
.cart-piece-list{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}
.cart-piece-list span{border:1px solid #d7e2ec;border-radius:999px;background:#f8fbff;color:#0f2544;font-size:11px;font-weight:800;padding:3px 7px}
.order-piece-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.order-piece-summary section{border:1px solid #e3edf5;border-radius:10px;background:#fbfdff;padding:10px}
.order-piece-summary h5{margin:0 0 8px;color:var(--blue);font-size:12px;text-transform:uppercase}
.order-piece-summary ul{margin:0;padding-left:18px;display:grid;gap:4px}
.order-piece-summary li{font-size:12px;line-height:1.35}
.cart-item-value{text-align:right;font-weight:900;color:var(--blue)}
.cart-patient-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 12px 12px}
.cart-patient-list{display:grid;gap:10px}
.compact-cart-patient .cart-patient-head{align-items:center}
.cart-patient-total{display:grid;gap:4px;justify-items:end;text-align:right;color:#344156;font-size:13px;font-weight:800}
.cart-patient-total strong{color:var(--blue);font-size:19px}
.cart-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.cart-summary .metric:last-child{background:var(--blue);color:#fff}
.cart-summary .metric:last-child b,.cart-summary .metric:last-child span{color:#fff}
.cart-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.confirm-box{margin-top:14px;border:1px solid #fde68a;background:#fffbeb;border-radius:12px;padding:12px}
.confirm-box form{margin-top:10px}
.order-summary-list{display:grid;gap:10px}
.order-summary-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.order-summary-card h3{margin:0 0 8px;color:var(--blue);font-size:17px}
.order-summary-card p{margin:4px 0;font-size:13px;color:#344156}
.order-summary-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}
.order-summary-meta p{border:1px solid #e3edf5;border-radius:9px;background:#fbfdff;padding:8px;margin:0}
.order-summary-meta span{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;margin-bottom:3px}
.order-summary-meta b{color:#172033}
.order-summary-side{display:grid;gap:10px;justify-items:end;text-align:right}
.order-summary-side>strong{color:var(--blue);font-size:22px}
.order-summary-actions{justify-content:flex-end}
.status-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfe0ef;border-radius:999px;background:#f8fbff;color:var(--blue);padding:5px 8px;font-weight:900;line-height:1}
.status-badge b{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--blue);color:#fff;font-size:10px}
.status-badge span{font-size:11px;color:var(--blue);text-transform:uppercase}
.status-badge.warn{border-color:#fde68a;background:#fffbeb;color:#854d0e}
.status-badge.warn b{background:#f5b400;color:#172033}
.status-badge.warn span{color:#854d0e}
.order-progress-wrapper{clear:both;margin:10px 0 26px}
.status-panel .order-progress-wrapper{margin-bottom:28px}
.status-progress{display:grid;grid-template-columns:repeat(9,minmax(18px,1fr));gap:4px;list-style:none;padding:0;margin:10px 0}
.status-progress li{height:8px;border-radius:999px;background:#dbe7f2;position:relative}
.status-progress li span{position:absolute;left:50%;top:12px;transform:translateX(-50%);font-size:9px;color:var(--muted);font-weight:900}
.status-progress li.done,.status-progress li.active{background:var(--blue)}
.status-progress li.active{box-shadow:0 0 0 3px rgba(0,85,139,.14)}
.tracking-mini{margin-top:8px;color:var(--muted);font-size:12px;font-weight:800}
.order-shipping-summary{clear:both;margin-top:18px}
.order-progress-wrapper + .order-shipping-summary{margin-top:22px}
.tracking-mini a{color:var(--blue);font-weight:900}
.status-panel{border:1px solid #e3edf5;border-radius:12px;background:#fbfdff;padding:12px;margin:12px 0}
.status-panel h4{margin:12px 0 8px}
.status-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tracking-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tracking-box p{border:1px solid #e3edf5;border-radius:9px;background:#fff;padding:9px;margin:0}
.tracking-box span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;margin-bottom:4px}
.tracking-box b{white-space:pre-wrap;color:#172033}
.tracking-box a{color:var(--blue);font-weight:900}
.admin-order-controls{border:1px solid #d8e5ef;border-radius:12px;background:#fff;padding:12px;margin:12px 0;display:grid;gap:10px}
.admin-control-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:end;border-top:1px dashed #d7e2ec;padding-top:10px}
.admin-control-form:first-of-type{border-top:0;padding-top:0}
.admin-control-form label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.admin-control-form input,.admin-control-form select,.admin-control-form textarea,.pending-response-form textarea{width:100%;border:1px solid #cfe0ef;border-radius:8px;padding:9px;background:#fff;color:var(--text);font:inherit;text-transform:none}
.admin-control-form textarea{resize:vertical}
.admin-control-form .wide{grid-column:1/-2}
.tracking-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.tracking-form .wide,.tracking-form button{grid-column:1/-1}
.pending-response-form{border:1px solid #d8e5ef;border-radius:12px;background:#fff;padding:12px;margin:12px 0;display:grid;gap:8px}
.pending-response-form label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.dashboard-filter{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.dashboard-filter label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.dashboard-filter input,.dashboard-filter select{border:1px solid #cfe0ef;border-radius:8px;padding:9px;background:#fff;color:var(--text);font:inherit;min-width:160px}
.dashboard-filter select{min-width:220px}
.status-history{border:1px solid #e3edf5;border-radius:12px;background:#fbfdff;padding:12px;margin:12px 0;display:grid;gap:8px}
.status-history article{border:1px solid #e3edf5;border-radius:9px;background:#fff;padding:9px;display:grid;gap:4px}
.status-history article>b{color:var(--blue)}
.status-history article>span{color:var(--muted);font-size:12px;font-weight:800}
.status-history p{margin:0;color:#344156;font-size:13px}
.order-financial-summary{margin:12px 0}
.detail-actions{padding:10px 12px 0}
.order-detail-block{padding-top:10px}
.order-patient-detail{border:1px solid #d7e2ec;border-radius:12px;margin:12px 0;padding:12px;background:#fff}
.order-patient-detail h3{margin:0 0 10px;color:var(--blue)}
.order-patient-detail h4{margin:14px 0 8px;color:#0f2544;font-size:13px;text-transform:uppercase}
.order-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.order-info-grid p{border:1px solid #e3edf5;border-radius:9px;background:#fbfdff;padding:9px;margin:0}
.order-info-grid span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;margin-bottom:4px}
.order-info-grid b{white-space:pre-wrap;color:#172033}
.order-item-detail{border:1px solid #edf3f8;border-radius:10px;background:#fbfdff;margin:8px 0;padding:10px;font-size:13px}
.order-item-detail strong{color:var(--blue)}
.order-item-detail p{margin:5px 0}
.order-item-value{text-align:right;color:var(--blue)}
.order-file-list{display:grid;gap:7px}
.order-file-item{border:1px solid #e3edf5;border-radius:9px;background:#fbfdff;padding:9px;display:grid;gap:3px}
.order-file-item a{color:var(--blue);font-weight:900}
.order-file-item span,.order-file-item small{color:var(--muted);font-size:12px}
.navicular-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.navicular-view section{border:1px solid #e3edf5;border-radius:10px;background:#fbfdff;padding:10px}
.navicular-view h4{margin-top:0}
.navicular-view p{display:flex;justify-content:space-between;gap:12px;margin:6px 0}
.navicular-view span{color:var(--muted);font-weight:800}
.navicular-view b{color:#172033}
.btn-icon-action .btn-svg{width:16px;height:16px;flex:0 0 16px}
.order-display-gallery{margin:14px 0;border:1px solid #e3edf5;border-radius:12px;background:#fbfdff;padding:10px}
.order-display-gallery>h4{margin:0 0 8px;color:var(--blue);text-transform:uppercase}
.order-display-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.order-display-thumb{appearance:none;border:1px solid #cfe0ef;border-radius:10px;background:#fff;padding:8px;display:grid;gap:6px;text-align:center;color:var(--text);cursor:pointer}
.order-display-thumb:hover,.order-display-thumb:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,85,139,.12);outline:0}
.order-display-title{font-size:11px;font-weight:900;color:var(--blue);text-transform:uppercase}
.order-display-open{font-size:10px;font-weight:900;color:var(--muted);text-transform:uppercase}
.dashboard-display-stage{position:relative;width:min(210px,100%);aspect-ratio:1/1;background:#fff;overflow:hidden;margin:0 auto;border-radius:8px}
.dashboard-display-stage.large{width:min(76vmin,660px)}
.dashboard-display-stage.outline-only.has-medial-expander{background:#fff}
.dashboard-display-stage .base-img,.dashboard-display-stage .poron-outline,.dashboard-display-stage .format-overlay,.dashboard-display-stage .stage-piece{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center center;user-select:none;pointer-events:none}
.dashboard-display-stage .base-img{z-index:1}
.dashboard-display-stage .format-layer,.dashboard-display-stage .poron-format-layer{position:absolute;inset:0;pointer-events:none}
.dashboard-display-stage .format-layer{z-index:2}
.dashboard-display-stage .poron-outline{z-index:3;display:block}
.dashboard-display-stage .poron-format-layer{z-index:4}
.dashboard-display-stage .piece-layer{position:absolute;inset:0;z-index:5;pointer-events:none}
.dashboard-display-stage .stage-piece{z-index:6;opacity:.84}
.dashboard-display-stage .format-overlay.side-L{clip-path:inset(0 50% 0 0)}
.dashboard-display-stage .format-overlay.side-R{clip-path:inset(0 0 0 50%)}
.dashboard-display-stage .stage-piece[data-piece="p29"]{z-index:7}
.dashboard-display-stage .stage-piece.bic-piece.side-R{transform:translateX(-1.8%)}
.dashboard-display-stage .stage-piece.cutout{filter:brightness(0) invert(1) drop-shadow(0 0 1px rgba(0,0,0,.35));opacity:.95}
.dashboard-display-stage .stage-piece.poron{filter:brightness(0) saturate(100%) invert(74%) sepia(96%) saturate(862%) hue-rotate(359deg) brightness(103%) contrast(104%)}
.dashboard-display-stage .stage-piece.psshock{filter:brightness(0) saturate(100%) invert(54%) sepia(3%) saturate(364%) hue-rotate(169deg) brightness(92%) contrast(88%)}
.dashboard-display-stage .piece-label{position:absolute;z-index:8;transform:translate(-50%,-50%);border-radius:999px;padding:2px 6px;font-size:9px;font-weight:950;line-height:1;color:#111;background:#fff4a8;border:1px solid rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2);white-space:nowrap}
.dashboard-display-stage .piece-label.psshock{background:#666;color:#fff}
.portal-display-modal{position:fixed;inset:0;background:rgba(8,23,38,.62);z-index:900;display:none;align-items:center;justify-content:center;padding:16px}
.portal-display-modal.open{display:flex}
.portal-display-modal-card{width:min(920px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.32);padding:14px}
.portal-display-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.portal-display-modal-head h3{margin:0;color:var(--blue)}
.btn.disabled,.btn[aria-busy="true"]{opacity:.62;pointer-events:none}
.analytics-shell .portal-card{overflow:hidden}
.analytics-filter{align-items:end}
.analytics-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.analytics-nav a{border:1px solid #cfe0ef;border-radius:9px;background:#f8fbff;color:var(--blue);font-size:12px;font-weight:950;text-transform:uppercase;padding:10px 13px}
.analytics-nav a.active{background:var(--blue);border-color:var(--blue);color:#fff}
.analytics-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.analytics-panel{border:1px solid #e3edf5;border-radius:12px;background:#fbfdff;padding:12px;min-width:0}
.analytics-panel h3{margin:0 0 10px}
.analytics-bars{display:grid;gap:8px}
.bar-row{display:grid;grid-template-columns:minmax(96px,1.2fr) minmax(90px,2fr) 42px;gap:8px;align-items:center;font-size:12px}
.bar-row span{font-weight:800;color:#344156;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-row b{text-align:right;color:var(--blue)}
.bar-track{height:10px;border-radius:999px;background:#dbe7f2;overflow:hidden}
.bar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--blue2))}
.analytics-table th,.analytics-table td{white-space:nowrap}
.map-placeholder{min-height:220px;border:1px dashed #9ec4e4;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#eaf6ff);display:grid;place-items:center;text-align:center;margin:12px 0;color:var(--blue);font-weight:900;padding:20px}
.map-placeholder span{display:block;color:var(--muted);font-size:13px;font-weight:800;margin-top:6px}
.leaflet-map{min-height:430px;border:1px solid #9ec4e4;border-radius:14px;overflow:hidden;background:#eef5fb;margin:12px 0;z-index:1}
.leaflet-map .leaflet-popup-content{font:13px/1.35 Arial,Helvetica,sans-serif;color:#172033}
.analytics-selector-card,.analytics-period{display:flex;align-items:end;gap:8px;flex-wrap:wrap;border:1px solid #e3edf5;border-radius:12px;background:#fbfdff;padding:12px;margin:10px 0}
.analytics-selector-card label,.analytics-period label{display:grid;gap:5px;margin:0;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.analytics-selector-card input,.analytics-selector-card select,.analytics-period input,.analytics-period select{border:1px solid #cfe0ef;border-radius:8px;padding:9px;background:#fff;color:var(--text);font:inherit;min-width:190px}
.analytics-selector-card select{min-width:320px}
.period-buttons{display:flex;gap:6px;flex-wrap:wrap}
.period-buttons a,.chart-toggles button{border:1px solid #cfe0ef;border-radius:9px;background:#f8fbff;color:var(--blue);font-size:11px;font-weight:950;text-transform:uppercase;padding:9px 11px;cursor:pointer}
.period-buttons a.active,.chart-toggles button.active{background:var(--blue);border-color:var(--blue);color:#fff}
.chart-toggles{display:flex;gap:6px;flex-wrap:wrap}
.analytics-panel p{font-size:13px;color:#344156;margin:7px 0}
.analytics-panel small,.metric small{display:block;margin-top:6px;color:var(--muted);font-size:11px;font-weight:800}
.analytics-alerts{display:grid;gap:6px}
.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.profile-form h2{margin-top:18px}
.geo-inline-form{display:grid;grid-template-columns:110px 110px minmax(180px,1fr) auto;gap:6px;align-items:center}
.geo-inline-form input{border:1px solid #cfe0ef;border-radius:8px;padding:8px;background:#fff;color:var(--text);font-size:12px}
.catalog-shell .portal-card{overflow:hidden}
.catalog-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.catalog-nav a{border:1px solid #cfe0ef;border-radius:9px;background:#f8fbff;color:var(--blue);font-size:12px;font-weight:950;text-transform:uppercase;padding:10px 13px}
.catalog-nav a.active{background:var(--blue);border-color:var(--blue);color:#fff}
.catalog-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.catalog-action-grid{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.catalog-filter select{min-width:170px}
.catalog-table strong{display:block;color:var(--blue)}
.catalog-table small{display:block;color:var(--muted);font-size:11px;font-weight:800;margin-top:3px}
.catalog-thumb{width:56px;height:56px;border:1px solid #d7e2ec;border-radius:8px;object-fit:contain;background:#fff}
.catalog-thumb.empty{display:inline-grid;place-items:center;color:var(--muted);font-size:10px;text-transform:uppercase}
.repeat-patient-link{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:4px 8px;border:1px solid #b8d6ef;border-radius:999px;color:var(--blue);background:#f4f9ff;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
.repeat-patient-link:hover{background:#e8f3ff}
.stock-status{display:inline-flex;align-items:center;border:1px solid #cfe0ef;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:950;text-transform:uppercase;background:#f8fbff;color:var(--blue);margin:2px}
.stock-status.ok{background:#eefbf3;border-color:#bde8cb;color:var(--ok)}
.stock-status.warn{background:#fffbeb;border-color:#fde68a;color:#854d0e}
.stock-status.danger{background:#fff1f2;border-color:#fecdd3;color:var(--danger)}
.stock-status.off{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}
.catalog-edit-form,.stock-movement-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.catalog-edit-form label,.stock-movement-form label,.catalog-settings-form label{margin:0}
.catalog-edit-form textarea,.stock-movement-form textarea{width:100%;border:1px solid #cfe0ef;border-radius:8px;padding:10px;background:#fff;color:var(--text);font:inherit;text-transform:none;resize:vertical}
.catalog-edit-form .wide,.stock-movement-form .wide{grid-column:1/-1}
.catalog-checks{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;border:1px solid #e3edf5;border-radius:10px;background:#fbfdff;padding:10px}
.catalog-checks label,.catalog-settings-form label{display:flex;align-items:center;gap:8px;color:#344156;font-size:12px;font-weight:900;text-transform:none}
.catalog-checks input,.catalog-settings-form input[type=checkbox]{width:auto}
.catalog-settings-form{display:grid;gap:10px}
.catalog-settings-form>label:not(:has(input[type=checkbox])){display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}
.catalog-alert-list{display:grid;gap:8px}
.stock-alert{border:1px solid #d7e2ec;border-radius:12px;background:#fbfdff;padding:12px;display:grid;gap:5px}
.stock-alert strong{color:var(--blue)}
.stock-alert span{font-weight:900;color:#172033}
.stock-alert small{color:var(--muted);font-size:12px}
.stock-alert.warn{border-color:#fde68a;background:#fffbeb}
.stock-alert.critical{border-color:#fecdd3;background:#fff1f2}
.stock-alert.info{border-color:#cfe0ef;background:#f8fbff}
.cover-option.disabled{opacity:.48;filter:grayscale(1);cursor:not-allowed}
.cover-option.disabled .pair-repeat-btn,.cover-option.disabled .thickness-picks button{display:none}
@media(max-width:760px){
  .portal-header{display:grid;justify-items:center;text-align:center}
  .portal-logo{width:210px}
  .portal-actions{justify-content:center}
  .portal-shell{width:calc(100vw - 14px);margin-top:8px}
  .dash-cards,.cart-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cart-item{grid-template-columns:1fr}
  .cart-item-value{text-align:left}
  .order-summary-card{grid-template-columns:1fr}
  .order-summary-meta{grid-template-columns:1fr}
  .order-summary-side{justify-items:start;text-align:left}
  .order-summary-actions{justify-content:flex-start}
  .order-progress-wrapper{margin:10px 0 30px}
  .order-progress-wrapper + .order-shipping-summary{margin-top:24px}
  .status-progress{grid-template-columns:repeat(9,minmax(16px,1fr));gap:3px}
  .status-progress li span{font-size:8px;top:13px}
  .tracking-mini.shipping-mini.order-shipping-summary{display:grid;gap:6px;line-height:1.35}
  .tracking-mini.shipping-mini.order-shipping-summary a{display:inline-block;margin-top:4px}
  .tracking-box,.admin-control-form,.tracking-form{grid-template-columns:1fr}
  .admin-form-grid,.shipping-option,.shipping-recommendations,.shipping-recommendation{grid-template-columns:1fr}
  .shipping-option .btn,.shipping-recommendation .btn{width:100%}
  .admin-form-grid .wide{grid-column:auto}
  .admin-user-form{grid-template-columns:1fr}
  .admin-row-actions,.inline-reset-form{display:grid;grid-template-columns:1fr}
  .inline-reset-form input{width:100%}
  .admin-control-form .wide{grid-column:auto}
  .compact-cart-patient .cart-patient-head{display:grid;gap:10px}
  .cart-patient-total{justify-items:start;text-align:left}
  .order-info-grid,.navicular-view,.order-piece-summary{grid-template-columns:1fr}
  .order-display-grid{grid-template-columns:1fr}
  .dashboard-display-stage{width:min(78vw,280px)}
  .dashboard-display-stage.large{width:min(92vw,560px)}
  .portal-display-modal{padding:8px}
  .portal-display-modal-card{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100vh - 16px)}
  .analytics-cards,.analytics-grid{grid-template-columns:1fr}
  .analytics-selector-card,.analytics-period{display:grid;grid-template-columns:1fr}
  .analytics-selector-card input,.analytics-selector-card select,.analytics-period input,.analytics-period select{min-width:0;width:100%}
  .period-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-grid{grid-template-columns:1fr}
  .geo-inline-form{grid-template-columns:1fr}
  .catalog-cards,.catalog-edit-form,.stock-movement-form{grid-template-columns:1fr}
  .catalog-checks{grid-template-columns:1fr}
  .catalog-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .bar-row{grid-template-columns:1fr 1fr 38px}
}
@media print{
  .portal-header,.portal-actions,.portal-display-modal,.status-panel,.admin-order-controls,.pending-response-form{display:none!important}
  body.printing-one *{visibility:hidden}
  body.printing-one .print-target,body.printing-one .print-target *{visibility:visible}
  body.printing-one .print-target{position:absolute;left:0;top:0;width:100%;border:0!important;box-shadow:none!important}
  body.printing-one .print-target .portal-actions{display:none!important}
  .order-display-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-display-stage{width:230px}
}



/* v40 — upload de imagens e exclusão segura do catálogo */
.catalog-image-upload {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 16px;
  align-items: start;
  padding: 14px;
  border: 1px solid #dfe6ef;
  border-radius: 12px;
  background: #f8fafc;
}
.catalog-image-upload input[type="file"] {
  display: block;
  width: 100%;
  margin-top: 8px;
}
.catalog-image-upload small {
  display: block;
  margin-top: 6px;
  color: #64748b;
}
.catalog-current-image {
  min-width: 120px;
  text-align: center;
}
.catalog-image-preview {
  display: block;
  width: 120px;
  height: 120px;
  object-fit: contain;
  margin: 0 auto 8px;
  padding: 6px;
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
}
.catalog-remove-image {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  font-size: 13px;
}
.catalog-delete-form {
  margin-top: 12px;
}
.btn-danger {
  background: #b42318;
  color: #fff;
  border: 1px solid #b42318;
}
.btn-danger:hover {
  background: #912018;
  border-color: #912018;
}
@media (max-width: 700px) {
  .catalog-image-upload {
    grid-template-columns: 1fr;
  }
  .catalog-current-image {
    text-align: left;
  }
  .catalog-image-preview {
    margin-left: 0;
  }
}


/* v41 — anexos no dashboard e arquivo de pedidos entregues */
.section-title-row {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.dashboard-attachments {
  margin: -4px 0 18px;
  padding: 12px;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  background: #f8fafc;
}
.dashboard-attachments-title {
  margin-bottom: 10px;
  font-weight: 700;
}
.dashboard-attachments-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
}
.dashboard-attachment {
  min-width: 0;
  padding: 8px;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  background: #fff;
}
.dashboard-attachment-preview,
.dashboard-attachment-video,
.dashboard-file-icon {
  display: flex;
  width: 100%;
  height: 110px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 8px;
  background: #eef2f7;
}
.dashboard-attachment-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.dashboard-attachment-video {
  object-fit: contain;
  background: #111827;
}
.dashboard-file-icon {
  font-size: 18px;
  font-weight: 800;
  color: #334155;
}
.dashboard-attachment-info {
  display: grid;
  gap: 7px;
  margin-top: 8px;
}
.dashboard-attachment-info > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.btn-small {
  min-height: 32px;
  padding: 6px 9px;
  font-size: 12px;
}
.shipping-quote-button {
  display: flex;
  justify-content: flex-start;
}
@media (max-width: 600px) {
  .dashboard-attachments-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* v42 — navegação profissional e filtros alfabéticos */
.professional-primary-nav {
  align-items: center;
}
.previous-orders-filter {
  margin: 18px 0;
}
.previous-orders-filter select,
.dashboard-filter select {
  min-width: 190px;
}
@media (max-width: 700px) {
  .professional-primary-nav {
    justify-content: flex-start;
  }
  .previous-orders-filter select,
  .dashboard-filter select {
    width: 100%;
    min-width: 0;
  }
}


/* v44 — anexos acessíveis nos dashboards ADM e Profissional */
.dashboard-attachments{
  clear:both;
}
.dashboard-attachment-preview,
.dashboard-attachment-video,
.dashboard-file-icon{
  cursor:pointer;
}
.dashboard-attachment-info .btn{
  width:100%;
  justify-content:center;
}
@media(max-width:600px){
  .dashboard-attachments-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-attachment-preview,
  .dashboard-attachment-video,
  .dashboard-file-icon{
    height:96px;
  }
}

/* v50.17 - precos e descontos administrativos */
.pricing-rules-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;
}
.pricing-rule-card{
  border:1px solid #d8e5f0;
  border-radius:10px;
  background:#fbfdff;
  padding:14px;
}
.pricing-rule-card h3{
  margin:0 0 10px;
  color:#00558b;
  font-size:15px;
}
.pricing-discount-form{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:12px;
  align-items:end;
}
.pricing-discount-form .wide,
.pricing-discount-form .form-actions{
  grid-column:1/-1;
}
.check-line{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:40px;
}
.check-line input{
  width:auto;
}
.pricing-filter{
  display:flex;
  align-items:center;
  gap:8px;
}
.pricing-filter select{
  min-width:240px;
}
.analytics-table td small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:12px;
}
@media(max-width:900px){
  .pricing-discount-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:600px){
  .pricing-discount-form,
  .pricing-filter{
    grid-template-columns:1fr;
    display:grid;
  }
  .pricing-filter select{
    min-width:0;
    width:100%;
  }
}


/* v45 — acesso explícito aos anexos */
.order-attachment-actions{
  margin:8px 0 12px;
}
.order-attachment-actions .btn{
  font-weight:700;
}


/* v46 — anexos persistidos x anexos pendentes */
.dashboard-attachments-empty{
  margin:10px 0;
  padding:12px;
  border:1px dashed #cbd5e1;
  border-radius:10px;
  color:#64748b;
  background:#f8fafc;
}
.dashboard-attachment.attachment-pending{
  border-color:#f1c27d;
  background:#fffaf2;
}
.attachment-not-stored{
  display:block;
  font-size:12px;
  line-height:1.35;
  color:#9a6700;
  font-weight:700;
}
.attachment-help{
  margin-top:10px;
}
