:root{--navy:#071f3b;--navy2:#0d3157;--teal:#00ae9b;--green:#18b45b;--blue:#1877d2;--bg:#f4f7f9;--surface:#fff;--text:#10283e;--muted:#6d7c89;--line:#dfe7ec;--danger:#c83c48;--shadow:0 12px 34px rgba(7,31,59,.09);--radius:18px;--accent:var(--teal);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.muted{color:var(--muted)}.error{color:var(--danger)}.eyebrow{text-transform:uppercase;font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--accent)}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);background:linear-gradient(135deg,#effcf8 0,#f8fbfd 55%,#edf4ff 100%)}.login-brand{display:flex;flex-direction:column;justify-content:center;padding:8vw}.login-brand img{width:min(620px,80%);mix-blend-mode:multiply}.login-brand>p{font-size:1.35rem;max-width:560px}.login-points{display:flex;gap:12px;flex-wrap:wrap;color:var(--navy);font-weight:650}.login-card{align-self:center;margin:40px 8vw 40px 0;background:rgba(255,255,255,.94);padding:38px;border-radius:28px;box-shadow:0 35px 90px rgba(7,31,59,.13);display:grid;gap:20px}.login-card h1{font-size:2.2rem;margin:.25rem 0}.login-card p{color:var(--muted)}label{display:grid;gap:8px;font-size:.86rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:12px 14px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{height:100vh;position:sticky;top:0;background:var(--navy);color:#dfeaf4;padding:20px 14px;display:flex;flex-direction:column}.brand-mini{display:flex;align-items:center;gap:11px;padding:4px 10px 20px}.brand-mini img{width:42px;height:42px;border-radius:12px}.brand-mini strong{display:block;color:#fff;font-size:1.12rem}.brand-mini small{opacity:.72}.sidebar nav{display:grid;gap:5px;overflow:auto}.nav-btn{border:0;background:transparent;color:inherit;padding:11px 12px;border-radius:11px;display:flex;align-items:center;gap:10px;text-align:left}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.1);color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:10px}.main{min-width:0}.topbar{padding:26px 32px 12px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar h1{margin:.22rem 0 0;font-size:1.8rem}.top-actions{display:flex;align-items:center;gap:10px}.avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--navy),var(--accent));color:#fff;display:grid;place-items:center;font-weight:800}.content{padding:14px 32px 42px}.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:750}.btn.primary{background:var(--navy);color:#fff}.btn.secondary{background:var(--accent);color:#052338}.btn.ghost{background:var(--surface);border:1px solid var(--line);color:var(--text)}.icon-btn{border:0;background:transparent;font-size:1.2rem;color:inherit;padding:8px}.status-pill,.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:750;background:#e9f7f3;color:#126b55}.pill.warn{background:#fff4dc;color:#8f6014}.pill.danger{background:#ffebed;color:#a62934}
.hero{background:linear-gradient(125deg,var(--navy) 0,var(--navy2) 55%,#0a766e 145%);color:#fff;border-radius:24px;padding:28px;display:flex;justify-content:space-between;gap:20px;align-items:end;box-shadow:var(--shadow)}.hero h2{font-size:1.65rem;margin:.2rem 0 .5rem}.hero p{margin:0;color:#c9d7e2}.hero .quick-actions{display:flex;gap:8px;flex-wrap:wrap}.hero .btn{background:#fff;color:var(--navy)}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 5px 18px rgba(7,31,59,.035)}.metric strong{font-size:2rem;display:block}.metric small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.widget{min-height:180px}.widget[draggable=true]{cursor:grab}.widget.dragging{opacity:.5}.widget h3{margin:.2rem 0 1rem}.widget-head{display:flex;justify-content:space-between;gap:10px}.big-number{font-size:2.4rem;font-weight:850}.mini-list{display:grid;gap:8px}.mini-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.mini-row:last-child{border-bottom:0}
.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar .search{max-width:360px}.table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f9fbfc}tr:last-child td{border-bottom:0}.empty{padding:38px;text-align:center;color:var(--muted)}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{display:flex;flex-direction:column;gap:12px}.module-icon{width:46px;height:46px;border-radius:14px;background:#ebf8f5;display:grid;place-items:center;font-size:1.25rem}.module-card h3{margin:0}.module-card p{margin:0;color:var(--muted);min-height:40px}.switch{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.switch input{width:auto}
.compliance-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.compliance-score{display:grid;place-items:center;text-align:center}.score-ring{width:125px;height:125px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) 0 72%,#e8eef1 72%);position:relative}.score-ring:after{content:"";position:absolute;inset:12px;background:var(--surface);border-radius:50%}.score-ring strong{position:relative;z-index:1;font-size:2rem}.tabs{display:flex;gap:5px;margin:20px 0 12px;overflow:auto}.tab{border:0;background:transparent;padding:10px 13px;border-radius:10px;font-weight:750;color:var(--muted)}.tab.active{background:var(--surface);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.04)}
.dropzone{border:2px dashed #b8cbd4;border-radius:20px;padding:36px;text-align:center;background:color-mix(in srgb,var(--surface) 90%,var(--accent) 10%);transition:.2s}.dropzone.dragover{border-color:var(--accent);transform:scale(1.005)}.mapping-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:10px;align-items:center;margin:8px 0}.transform-list{display:flex;gap:5px;flex-wrap:wrap}.transform-chip{background:#edf3f6;border-radius:8px;padding:5px 8px;font-size:.75rem}.import-preview{margin-top:16px}.stepper{display:flex;gap:8px;margin-bottom:16px}.step{flex:1;padding:10px;border-radius:10px;background:#e9eef1;color:var(--muted);font-weight:750;font-size:.8rem}.step.active{background:var(--navy);color:#fff}
.drawer{margin:0 0 0 auto;height:100vh;width:min(520px,95vw);max-height:none;border:0;padding:0;background:var(--surface);color:var(--text);box-shadow:-20px 0 60px rgba(7,31,59,.18)}.drawer::backdrop{background:rgba(4,22,40,.35)}.drawer-head{display:flex;justify-content:space-between;padding:25px;border-bottom:1px solid var(--line)}.drawer-head h2{margin:.25rem 0}.drawer-body{padding:24px;overflow:auto;max-height:calc(100vh - 180px)}.drawer-actions{position:absolute;bottom:0;left:0;right:0;padding:16px 24px;background:var(--surface);border-top:1px solid var(--line);display:flex;gap:8px}.setting-row{display:grid;grid-template-columns:120px 1fr;align-items:center;margin:12px 0}.choice-list{display:grid;gap:8px}.choice{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px}.choice input{width:auto}.hint{font-size:.8rem;color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;z-index:999;background:var(--navy);color:#fff;padding:13px 16px;border-radius:12px;box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .full{grid-column:1/-1}.modal-card{max-width:700px;border:0;border-radius:20px;padding:0;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.modal-card::backdrop{background:rgba(4,22,40,.4)}.modal-body{padding:24px}.modal-actions{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}
.mobile-only{display:none}
body[data-density="compact"] .card{padding:14px}body[data-density="compact"] th,body[data-density="compact"] td{padding:9px 12px}
body[data-accent="green"]{--accent:var(--green)}body[data-accent="blue"]{--accent:var(--blue)}
@media(prefers-color-scheme:dark){body[data-theme="system"]{--bg:#09141f;--surface:#102231;--text:#e8f0f5;--muted:#9db0bf;--line:#233b4d;color-scheme:dark}.login-shell{background:#081522}.login-card{background:#102231}.login-brand img{mix-blend-mode:screen;filter:brightness(1.3)}th{background:#0e1f2c}}
body[data-theme="dark"]{--bg:#09141f;--surface:#102231;--text:#e8f0f5;--muted:#9db0bf;--line:#233b4d;color-scheme:dark}.login-shell{background:#081522}body[data-theme="dark"] .login-card{background:#102231}body[data-theme="dark"] .login-brand img{mix-blend-mode:screen;filter:brightness(1.3)}body[data-theme="dark"] th{background:#0e1f2c}
@media(max-width:1050px){.grid.cards{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}.compliance-hero{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-card{margin:8vh auto;width:min(460px,90vw)}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;z-index:50;width:248px;transition:.2s}.sidebar.open{left:0}.mobile-only{display:inline-block}.topbar{padding:18px 18px 10px}.content{padding:10px 18px 30px}.top-actions .status-pill,.top-actions .btn{display:none}.grid.cards,.dashboard-grid,.module-grid{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}.form-grid,.mapping-grid{grid-template-columns:1fr}}

/* V0.9 workspaces: deliberately sparse and original, not competitor clones. */
.planning-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:12px}.planning-column{background:var(--surface-2,#f4f7fa);border:1px solid var(--border,#dfe6ec);border-radius:18px;min-height:420px}.planning-col-head{display:flex;justify-content:space-between;align-items:center;padding:14px;border-bottom:1px solid var(--border,#dfe6ec)}.planning-drop{padding:10px;min-height:360px}.job-card{padding:12px;margin:0 0 10px;border:1px solid var(--border,#dfe6ec);border-radius:14px;background:var(--surface,#fff);box-shadow:0 3px 12px #00152a0d;cursor:grab}.job-card small,.job-card strong{display:block}.job-time{font-size:12px;color:var(--muted,#6b7b8c);margin-bottom:5px}.status-dot{display:inline-block;font-size:11px;margin-top:8px;padding:3px 7px;border-radius:999px;background:#e7f7f1}.split-workspace{display:grid;grid-template-columns:minmax(300px,38%) 1fr;gap:16px}.map-card{min-height:600px}.private-map{height:560px;position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(135deg,#f8fbfc,#edf5f5)}.map-grid{position:absolute;inset:0;background-image:linear-gradient(#0b2d4f0a 1px,transparent 1px),linear-gradient(90deg,#0b2d4f0a 1px,transparent 1px);background-size:42px 42px}.private-map svg{position:absolute;inset:0;width:100%;height:100%}.route-line{fill:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:.7}.route-line.r0{stroke:#0b7}.route-line.r1{stroke:#1769aa}.route-line.r2{stroke:#ee7b30}.route-line.r3{stroke:#8c4bc1}.route-line.r4{stroke:#d44862}.route-line.r5{stroke:#52616b}.map-pin{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;border:3px solid white;background:#0b2748;color:white;font-weight:800;box-shadow:0 4px 12px #00152a30}.map-note{position:absolute;left:12px;bottom:12px;background:#fff;padding:8px 10px;border-radius:12px;font-size:11px;box-shadow:0 3px 12px #00152a18}.route-list{display:grid;gap:8px}.route-plan-btn{border:1px solid var(--border,#dfe6ec);border-radius:13px;background:transparent;text-align:left;padding:11px}.route-plan-btn strong,.route-plan-btn small{display:block}.territory-swatch{width:28px;height:6px;border-radius:99px;display:block;margin-bottom:12px}.record-grid,.form-catalog,.timeline{display:grid;gap:12px}.record-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.record-data{font-size:11px;white-space:pre-wrap;background:var(--surface-2,#f5f7f9);padding:10px;border-radius:10px;max-height:220px;overflow:auto}.form-field-list{display:grid;gap:8px}.form-builder-field{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border,#dfe6ec);border-radius:12px;cursor:grab}.form-builder-field small{color:var(--muted,#6b7b8c)}
@media(max-width:900px){.split-workspace{grid-template-columns:1fr}.map-card{min-height:430px}.private-map{height:390px}.planning-board{grid-auto-columns:minmax(220px,82vw)}}
.link-btn{border:0;background:transparent;color:var(--accent,#008f73);padding:6px 0;text-align:left;cursor:pointer;font:inherit}

/* ========================================================================== 
   OCCPRO AUTH 0.9.2 — lisible, responsive et accessible
   Cette zone reste volontairement en palette claire, indépendamment du thème
   système, afin d'éviter les problèmes de contraste observés en production.
   ========================================================================== */
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.skip-link{position:fixed;z-index:10000;left:16px;top:-80px;background:#fff;color:#071f3b;border:2px solid #071f3b;border-radius:10px;padding:10px 14px;font-weight:800;box-shadow:0 8px 28px rgba(7,31,59,.18)}
.skip-link:focus{top:16px}
.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(440px,1.05fr) minmax(460px,.95fr);background:#fff;color:#10283e;color-scheme:light}
.auth-brand-panel{position:relative;display:flex;align-items:center;min-width:0;padding:clamp(34px,5vw,80px);background:linear-gradient(145deg,#eefbf7 0%,#f5fbff 54%,#eef5ff 100%);overflow:hidden;border-right:1px solid #dce8ed}
.auth-brand-panel:before,.auth-brand-panel:after{content:"";position:absolute;border-radius:999px;pointer-events:none;filter:blur(.2px)}
.auth-brand-panel:before{width:460px;height:460px;left:-230px;bottom:-240px;background:rgba(0,174,155,.075)}
.auth-brand-panel:after{width:340px;height:340px;right:-160px;top:-150px;background:rgba(24,119,210,.055)}
.auth-brand-content{position:relative;z-index:1;width:min(700px,100%);margin-inline:auto;display:grid;gap:clamp(30px,4vw,52px)}
.auth-logo-frame{display:flex;align-items:center;justify-content:flex-start;width:min(610px,100%);min-height:128px;background:#fff;border:1px solid #e2ebef;border-radius:24px;padding:8px 10px;box-shadow:0 18px 50px rgba(7,31,59,.07);overflow:visible}
.auth-logo{display:block;width:100%;height:auto;max-height:190px;object-fit:contain;object-position:left center;padding:12px 16px;mix-blend-mode:normal!important;filter:none!important;transform:none!important}
.auth-overline{display:inline-flex;align-items:center;gap:8px;color:#087d70;font-weight:850;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.auth-brand-copy h1{margin:10px 0 14px;max-width:700px;font-size:clamp(2.25rem,4.3vw,4.8rem);line-height:.98;letter-spacing:-.045em;color:#071f3b}
.auth-brand-copy p{max-width:660px;margin:0;color:#496276;font-size:clamp(1.03rem,1.4vw,1.25rem);line-height:1.65}
.auth-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.auth-benefit{min-width:0;display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start;padding:16px;background:rgba(255,255,255,.78);border:1px solid #dce9ec;border-radius:16px}
.auth-benefit>svg{width:32px;height:32px;padding:6px;border-radius:10px;background:#e5f8f3;color:#087d70}
.auth-benefit strong,.auth-benefit small{display:block}.auth-benefit strong{font-size:.9rem;color:#10283e}.auth-benefit small{margin-top:4px;color:#607586;font-size:.76rem;line-height:1.45}
.auth-main{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:clamp(28px,5vw,74px);background:#fff}
.auth-toolbar{position:absolute;right:clamp(18px,3vw,42px);top:clamp(18px,3vw,34px)}
.a11y-btn{min-height:44px;display:inline-flex;align-items:center;gap:8px;border:1px solid #dce5ea;border-radius:999px;background:#fff;color:#304c61;padding:8px 12px;font-weight:750}
.a11y-btn svg{width:20px;height:20px}.a11y-btn:hover{background:#f5f8fa}
.auth-card{width:min(500px,100%);display:grid;gap:22px;margin:44px 0 20px;padding:clamp(28px,3.4vw,44px);background:#fff;border:1px solid #dae5ea;border-radius:26px;box-shadow:0 28px 80px rgba(7,31,59,.10)}
.auth-card-head h2{margin:6px 0 8px;font-size:clamp(1.75rem,2.5vw,2.35rem);line-height:1.08;letter-spacing:-.025em;color:#10283e}.auth-card-head p{margin:0;color:#667b8b;line-height:1.55}
.auth-step{display:grid;gap:12px}.auth-step[hidden]{display:none!important}.auth-step h3{margin:4px 0 2px;font-size:1.45rem;line-height:1.2}.auth-step p{margin:0 0 8px;line-height:1.55}
.field-label{display:flex;align-items:baseline;gap:6px;margin-top:4px;color:#18334a;font-size:.88rem;font-weight:800}
.field-control{position:relative}.field-control input{min-height:50px;padding-left:44px;padding-right:46px;background:#fff;border:1px solid #cfdce3;border-radius:13px;color:#10283e}.field-icon{position:absolute;left:14px;top:50%;translate:0 -50%;width:20px;height:20px;color:#5d7486;pointer-events:none}.field-action{position:absolute;right:5px;top:50%;translate:0 -50%;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:#496276}.field-action:hover{background:#eef4f6}.field-action svg{width:20px;height:20px}
.field-hint{display:block;color:#6b7e8c;font-size:.76rem;line-height:1.45;margin-top:-5px}.google-hint{text-align:center;margin-top:8px}
.auth-card input,.auth-card select,.auth-dialog input,.auth-dialog select{min-height:48px;background:#fff;color:#10283e;border:1px solid #cfdce3;border-radius:12px;padding:11px 13px}
.auth-card input:focus,.auth-card select:focus,.auth-dialog input:focus,.auth-dialog select:focus{border-color:#087d70;box-shadow:0 0 0 4px rgba(0,174,155,.16);outline:2px solid transparent}
.auth-primary{min-height:50px;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:4px;background:#071f3b!important;color:#fff!important;border:2px solid #071f3b!important;border-radius:12px!important}.auth-primary:hover{background:#0d3157!important}.auth-primary svg{width:18px;height:18px}
.organization-details{border:1px solid #dde7ec;border-radius:13px;background:#f9fbfc;overflow:hidden}.organization-details summary{min-height:52px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;list-style:none;color:#304c61}.organization-details summary::-webkit-details-marker{display:none}.organization-details summary>span:first-child{display:flex;align-items:center;gap:9px}.organization-details summary svg{width:20px;height:20px;color:#5d7486}.organization-details[open] summary{border-bottom:1px solid #e1e9ed}.summary-note{font-size:.73rem;color:#738795;font-weight:700}.organization-help{padding:14px;display:grid;gap:10px}.organization-help p{margin:0;color:#667b8b;font-size:.82rem;line-height:1.5}
.auth-separator{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:16px 0;color:#7a8c98;font-size:.78rem}.auth-separator:before,.auth-separator:after{content:"";height:1px;background:#e0e8ec}
.google-btn{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;gap:11px;background:#fff!important;color:#21384b!important;border:1px solid #cfdce3!important;border-radius:12px!important}.google-btn:hover{background:#f8fafb!important}.google-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font:900 16px/1 Arial,sans-serif;color:#4285f4;border:1px solid #e1e7eb;background:#fff}
.link-btn,.back-link,.footer-link{appearance:none;border:0;background:transparent;color:#087d70;font:inherit;font-weight:750;padding:5px 0;text-decoration:none}.link-btn:hover,.back-link:hover,.footer-link:hover{text-decoration:underline}.forgot-link{justify-self:start}.back-link{justify-self:start;margin-bottom:3px}
.organization-choices{display:grid;gap:9px;margin:6px 0}.organization-choice{position:relative;display:grid;grid-template-columns:24px 1fr 18px;gap:10px;align-items:center;min-height:60px;padding:11px 13px;border:1px solid #d7e2e7;border-radius:13px;background:#fff;cursor:pointer}.organization-choice:hover{background:#f7fafb}.organization-choice:has(input:checked){border-color:#087d70;box-shadow:0 0 0 3px rgba(0,174,155,.12)}.organization-choice input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#087d70}.organization-choice strong,.organization-choice small{display:block}.organization-choice small{margin-top:2px;color:#6d7f8c}.organization-choice svg{width:18px;height:18px;color:#087d70}
.otp-input{text-align:center;font-size:1.55rem!important;font-weight:800!important;letter-spacing:.24em;font-variant-numeric:tabular-nums}
.auth-status,.auth-error{min-height:0;border-radius:10px;font-size:.86rem;line-height:1.45}.auth-status:not(:empty){padding:10px 12px;background:#e9f7f3;color:#126b55}.auth-error:not(:empty){padding:10px 12px;background:#fff0f1;color:#9f2732;border:1px solid #ffd8dc}
.auth-footer{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:min(500px,100%);color:#728591;font-size:.76rem;text-align:center}
.auth-dialog{width:min(560px,calc(100vw - 28px));max-height:min(84vh,760px);padding:0;border:0;border-radius:22px;background:#fff;color:#10283e;box-shadow:0 28px 90px rgba(7,31,59,.24);color-scheme:light}.auth-dialog::backdrop{background:rgba(7,31,59,.46);backdrop-filter:blur(2px)}.auth-dialog form{margin:0}.dialog-head{display:flex;justify-content:space-between;gap:20px;padding:23px 24px 18px;border-bottom:1px solid #e2e9ed}.dialog-head h2{margin:5px 0 0;font-size:1.45rem}.dialog-close{flex:0 0 44px;width:44px;height:44px;border:0;border-radius:12px;background:#f1f5f7;color:#304c61;font-size:1.5rem}.dialog-body{display:grid;gap:13px;padding:22px 24px;overflow:auto}.dialog-body p{line-height:1.6;margin:.2rem 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 22px;border-top:1px solid #e2e9ed}.dialog-actions .auth-primary{width:auto;min-width:190px}
.accessibility-options>label:first-child{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:18px}.toggle-row{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:20px!important;padding:13px 0;border-bottom:1px solid #e8eef1}.toggle-row input{width:22px!important;height:22px!important;min-height:22px!important;accent-color:#087d70}.toggle-row strong,.toggle-row small{display:block}.toggle-row small{font-weight:500;color:#6e818f;line-height:1.45;margin-top:3px}.a11y-note{padding:12px 14px;background:#f5f8fa;border-radius:12px;color:#536c7d;font-size:.82rem}
body[data-a11y-contrast="high"]{--line:#8396a3}.auth-page[data-a11y-contrast="high"],body[data-a11y-contrast="high"] .auth-page{color:#06182a}.auth-page[data-a11y-contrast="high"] .auth-card,body[data-a11y-contrast="high"] .auth-card{border:2px solid #17384f;box-shadow:none}.auth-page[data-a11y-contrast="high"] input,body[data-a11y-contrast="high"] .auth-page input{border:2px solid #536c7d}.auth-page[data-a11y-contrast="high"] .field-hint,body[data-a11y-contrast="high"] .auth-page .field-hint{color:#344f63}
body[data-a11y-motion="reduce"] *,body[data-a11y-motion="reduce"] *:before,body[data-a11y-motion="reduce"] *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #ffb000!important;outline-offset:3px!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(prefers-contrast:more){.auth-card{border:2px solid #17384f;box-shadow:none}.auth-card input,.auth-dialog input{border:2px solid #536c7d}.field-hint{color:#344f63}}
@media(max-width:1180px){.auth-page{grid-template-columns:minmax(360px,.85fr) minmax(440px,1.15fr)}.auth-brand-panel{padding:44px}.auth-benefits{grid-template-columns:1fr}.auth-benefit small{font-size:.8rem}.auth-logo-frame{min-height:104px}}
@media(max-width:880px){.auth-page{display:flex;flex-direction:column;min-height:100dvh}.auth-brand-panel{flex:0 0 auto;padding:20px 22px;border-right:0;border-bottom:1px solid #dce8ed}.auth-brand-content{display:flex;align-items:center;gap:20px}.auth-logo-frame{flex:0 0 min(280px,42vw);min-height:0;border-radius:16px;padding:2px 4px;box-shadow:none}.auth-logo{padding:6px 8px}.auth-brand-copy{min-width:0}.auth-brand-copy h1{font-size:clamp(1.45rem,4vw,2.1rem);margin:5px 0 0}.auth-brand-copy p,.auth-overline,.auth-benefits{display:none}.auth-main{flex:1;padding:72px 24px 28px;justify-content:flex-start}.auth-toolbar{top:15px;right:18px}.auth-card{margin:0;width:min(560px,100%)}.auth-footer{margin-top:18px}}
@media(max-width:560px){.auth-brand-panel{padding:14px 16px}.auth-brand-content{gap:12px}.auth-logo-frame{flex-basis:190px;border-radius:12px}.auth-brand-copy h1{font-size:1.15rem;line-height:1.1}.auth-main{padding:66px 14px 22px}.auth-card{padding:24px 18px;border-radius:20px;box-shadow:0 14px 40px rgba(7,31,59,.08)}.auth-toolbar{right:12px;top:12px}.a11y-btn span{display:none}.a11y-btn{width:44px;height:44px;justify-content:center;padding:0}.auth-card-head h2{font-size:1.75rem}.organization-details summary{align-items:flex-start}.summary-note{display:none}.dialog-body,.dialog-head{padding-left:18px;padding-right:18px}.dialog-actions{padding-left:18px;padding-right:18px;flex-direction:column-reverse}.dialog-actions .btn,.dialog-actions .auth-primary{width:100%}.accessibility-options>label:first-child{grid-template-columns:1fr}.auth-benefits{display:none}}
@media(max-width:390px){.auth-brand-copy{display:none}.auth-logo-frame{flex-basis:220px;margin-inline:auto}.auth-brand-content{justify-content:center}.auth-card{padding:22px 16px}.field-control input{padding-left:42px}.auth-footer{font-size:.72rem}}
.auth-logo-frame{gap:18px}.auth-logo-mark{flex:0 0 auto;width:96px;height:96px;object-fit:contain;border-radius:22px}.auth-wordmark{min-width:0;display:grid;gap:6px}.auth-wordmark strong{font-size:clamp(2.1rem,4.2vw,4rem);line-height:.9;letter-spacing:-.055em;color:#071f3b}.auth-wordmark small{font-size:clamp(.82rem,1.2vw,1.02rem);font-weight:750;color:#496276;white-space:nowrap}
@media(max-width:880px){.auth-logo-mark{width:64px;height:64px;border-radius:15px}.auth-wordmark strong{font-size:2rem}.auth-wordmark small{font-size:.72rem}.auth-logo-frame{gap:12px}}
@media(max-width:560px){.auth-logo-mark{width:54px;height:54px;border-radius:13px}.auth-wordmark strong{font-size:1.65rem}.auth-wordmark small{font-size:.65rem}}


/* OccPro 0.9.2p2 — identité d'abord, organisation ensuite */
.flow-card{align-self:center}.organization-switcher{min-height:42px;max-width:230px;display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-weight:750}.organization-switcher[hidden]{display:none}.organization-switcher #organizationSwitcherName{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-switch-icon{font-size:1rem}.org-switch-dialog{width:min(560px,calc(100vw - 28px))}.organization-switch-option{width:100%;text-align:left;color:inherit}.organization-switch-option[aria-current="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--surface) 90%,var(--accent) 10%)}.org-radio{font-size:1rem;color:var(--accent)}
@media(max-width:760px){.organization-switcher{max-width:52px;width:52px;justify-content:center}.organization-switcher #organizationSwitcherName,.organization-switcher>span:last-child{display:none}.org-switch-dialog{width:calc(100vw - 24px)}}


/* OccPro 0.9.2p4 — accès compte / e-mail / accessibilité */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;background:#f2f6f8;border:1px solid #e0e8ec;border-radius:14px}
.auth-tab{min-height:42px;border:0;border-radius:10px;background:transparent;color:#506879;font-weight:800;cursor:pointer}
.auth-tab.is-active{background:#fff;color:#071f3b;box-shadow:0 3px 12px rgba(7,31,59,.08)}
.auth-tab:focus-visible{outline:3px solid rgba(0,174,155,.35);outline-offset:2px}
.auth-tab[hidden]{display:none!important}
.signup-intro{display:grid;gap:4px;padding:12px 14px;background:#eef9f6;border:1px solid #d6eee7;border-radius:12px}
.signup-intro strong{color:#0a5f56}.signup-intro small{color:#567483;line-height:1.45}
.no-leading-icon input{padding-left:13px!important;padding-right:48px}
.consent-row{display:grid!important;grid-template-columns:22px 1fr!important;gap:10px!important;align-items:start!important;margin-top:4px;color:#506879;font-size:.82rem;line-height:1.5;font-weight:500!important}
.consent-row input{width:20px!important;height:20px!important;min-height:20px!important;margin-top:1px;accent-color:#087d70}
.inline-link{display:inline;padding:0;border:0;background:none;color:#087d70;text-decoration:underline;font:inherit;cursor:pointer}
.signup-mail-notice{padding:10px 12px;border:1px solid #f1d7a3;background:#fff8e8;border-radius:10px;color:#74520b;font-size:.82rem;line-height:1.45}

/* Shared accessibility settings are also applied inside the authenticated app. */
body[data-a11y-contrast="high"] .app-shell{--line:#748a9a}
body[data-a11y-contrast="high"] .card,
body[data-a11y-contrast="high"] .topbar,
body[data-a11y-contrast="high"] .sidebar{border-color:#456074!important}
body[data-a11y-motion="reduce"] *,body[data-a11y-motion="reduce"] *::before,body[data-a11y-motion="reduce"] *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}

.app-a11y-dialog .dialog-body{display:grid;gap:14px}
.app-a11y-dialog label:first-child{display:grid;grid-template-columns:1fr 150px;gap:18px;align-items:center}
@media(max-width:560px){.app-a11y-dialog label:first-child{grid-template-columns:1fr}.auth-tabs{gap:4px}.auth-tab{font-size:.86rem}}


/* OccPro 0.9.2p5 — création avec Google */
.google-signup-completion[hidden],
#emailSignupFields[hidden],
#signupGoogleBlock[hidden] { display:none !important; }

.google-signup-completion {
  display:grid;
  gap:.72rem;
}

.signup-intro.compact {
  margin-bottom:.15rem;
}

#googleSignupEmail[readonly] {
  opacity:.88;
  cursor:default;
}

#googleSignupSubmit {
  margin-top:.2rem;
}


/* OccPro 0.9.2p6 — rythme du formulaire d'inscription */
#signupStep {
  gap: 18px;
}

.signup-form {
  display: grid;
  gap: 18px;
}

.signup-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.signup-field .field-label {
  margin: 0;
  line-height: 1.25;
}

.signup-field .field-hint {
  margin: 0;
  padding-top: 1px;
}

.signup-form .consent-row {
  margin: 2px 0 0;
}

.signup-form .auth-primary {
  margin-top: 2px;
}

.signup-google-bottom {
  display: grid;
  gap: 0;
  margin-top: 2px;
}

.signup-google-bottom[hidden] {
  display: none !important;
}

.signup-google-bottom .auth-separator {
  margin: 2px 0 16px;
}

.google-signup-completion {
  gap: 18px;
}

.google-signup-completion .signup-intro {
  margin-bottom: 0;
}

.google-signup-completion .consent-row {
  margin-top: 0;
}

@media (max-width: 560px) {
  #signupStep {
    gap: 16px;
  }

  .signup-form,
  .google-signup-completion {
    gap: 16px;
  }

  .signup-field {
    gap: 6px;
  }

  .signup-intro {
    padding: 13px 14px;
  }

  .signup-google-bottom .auth-separator {
    margin: 0 0 14px;
  }
}


/* OccPro 0.9.2p7 — alignement vertical desktop */
@media (min-width: 981px) {
  .auth-page,
  .auth-layout,
  .auth-shell,
  .login-layout {
    align-items: flex-start;
  }

  .brand-panel,
  .auth-brand,
  .login-brand,
  .auth-left {
    justify-content: flex-start;
  }

  /* Le contenu visuel de gauche remonte au même niveau que la carte de droite. */
  .brand-panel-inner,
  .brand-content,
  .auth-brand-inner,
  .auth-left-inner {
    margin-top: 78px !important;
    padding-top: 0 !important;
  }
}

/* Sur tablette/mobile, on garde l'empilement actuel. */
@media (max-width: 980px) {
  .brand-panel-inner,
  .brand-content,
  .auth-brand-inner,
  .auth-left-inner {
    margin-top: 0 !important;
  }
}


/* ==========================================================================
   OccPro 0.9.2p8 — colonnes de même hauteur + accessibilité flottante
   ========================================================================== */

/* Desktop : les deux colonnes reprennent exactement la même hauteur. */
@media (min-width: 881px) {
  .auth-page {
    align-items: stretch !important;
  }

  .auth-brand-panel {
    align-self: stretch;
    align-items: flex-start;
    min-height: 100%;
  }

  /*
   * La carte de droite possède une marge haute de 44px dans .auth-card.
   * On reproduit ce décalage dans la colonne gauche afin que le logo
   * démarre visuellement sur la même ligne que la carte.
   */
  .auth-brand-content {
    margin-top: 44px;
  }
}

/*
 * Le bouton Accessibilité reste au centre droit de la fenêtre et suit
 * naturellement le défilement, sans modifier la hauteur de la page.
 */
.auth-toolbar {
  position: fixed !important;
  z-index: 9500;
  top: 50% !important;
  right: clamp(10px, 1.6vw, 24px) !important;
  left: auto !important;
  bottom: auto !important;
  transform: translateY(-50%);
}

.a11y-btn {
  box-shadow: 0 10px 30px rgba(7,31,59,.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Évite que le bouton flottant masque la carte sur les écrans intermédiaires. */
@media (min-width: 881px) and (max-width: 1180px) {
  .auth-main {
    padding-right: clamp(78px, 8vw, 96px);
  }

  .auth-brand-content {
    /* Le panneau gauche passe à 44px de padding sous 1180px. */
    margin-top: clamp(44px, 4.7vw, 56px);
  }
}

/* Tablette/mobile : bouton compact, toujours fixé au milieu à droite. */
@media (max-width: 880px) {
  .auth-toolbar {
    top: 50% !important;
    right: 10px !important;
    transform: translateY(-50%);
  }

  .auth-brand-content {
    margin-top: 0 !important;
  }
}

@media (max-width: 560px) {
  .auth-toolbar {
    right: 8px !important;
  }

  .a11y-btn {
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(7,31,59,.16);
  }

  .a11y-btn span {
    display: none;
  }
}


/* ==========================================================================
   OccPro 0.9.2p9 — bouton Accessibilité icon-only
   ========================================================================== */

.a11y-btn {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  min-height: 50px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: #071f3b !important;
  color: #f4fffd !important;
  border: 1px solid rgba(255,255,255,.16) !important;

  box-shadow:
    0 12px 30px rgba(7,31,59,.24),
    0 2px 8px rgba(7,31,59,.14) !important;

  transition:
    transform .16s ease,
    background-color .16s ease,
    box-shadow .16s ease !important;
}

.a11y-btn span {
  display: none !important;
}

.a11y-btn svg {
  width: 25px !important;
  height: 25px !important;
  flex: 0 0 25px;
  color: #eafffa !important;
  stroke: currentColor;
}

.a11y-btn:hover {
  background: #0b3158 !important;
  transform: translateY(-1px);
  box-shadow:
    0 15px 34px rgba(7,31,59,.28),
    0 3px 10px rgba(7,31,59,.16) !important;
}

.a11y-btn:active {
  transform: translateY(0) scale(.97);
}

.a11y-btn:focus-visible {
  outline: 3px solid #37e0c1 !important;
  outline-offset: 4px !important;
}

@media (max-width: 560px) {
  .a11y-btn {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
  }

  .a11y-btn svg {
    width: 23px !important;
    height: 23px !important;
  }
}

/* OccPro 0.10.0a1 */


/* ==========================================================================
   OccPro 0.10.0a3 — auth compact + footer légal
   ========================================================================== */
.auth-status:empty,
.auth-error:empty {
  display: none !important;
}

#credentialsStep .forgot-link {
  margin-top: -4px;
  margin-bottom: 0;
}

#credentialsStep #googleBlock {
  margin-top: 2px;
}

#credentialsStep .google-hint {
  margin-bottom: 0;
}

.auth-card {
  gap: 18px;
}

.auth-legal-footer {
  max-width: 760px;
  width: min(760px, 100%);
  line-height: 1.55;
  margin-top: 4px;
}

.auth-legal-footer a {
  white-space: nowrap;
}

@media (max-width: 560px) {
  .auth-legal-footer {
    gap: 5px 7px;
    padding-inline: 4px;
  }
}


/* ==========================================================================
   OccPro 0.10.0a5 — créneaux de tournée / préparation / verrouillage
   ========================================================================== */
.route-wave-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
  gap:14px;
}
.route-wave-card{
  display:grid;
  gap:14px;
}
.route-wave-card.hard-locked{
  border-color:#e5c8ce;
}
.wave-prep-progress{
  display:grid;
  gap:7px;
}
.wave-prep-progress>div{
  display:flex;
  justify-content:space-between;
  gap:12px;
}
.wave-prep-progress progress{
  width:100%;
  height:9px;
  accent-color:#0c9f88;
}
.wave-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:2px;
}
.wave-lock-note{
  padding:12px 14px;
  border:1px solid #e8c6ce;
  border-radius:12px;
  background:#fff4f6;
  color:#7f2434;
  line-height:1.45;
}
.route-wave-modal{
  width:min(880px,calc(100vw - 24px));
}
.wave-assign-columns{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:18px;
}
.wave-choice-list,
.wave-checklist{
  display:grid;
  gap:7px;
  max-height:420px;
  overflow:auto;
  padding-right:4px;
}
.wave-choice,
.wave-check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 11px;
  border:1px solid var(--line,#dce7ec);
  border-radius:11px;
  background:var(--surface,#fff);
}
.wave-choice input,
.wave-check input{
  margin-top:3px;
}
.wave-choice span,
.wave-check span{
  display:grid;
  gap:2px;
}
.wave-choice small,
.wave-check small{
  color:var(--muted,#60758a);
}
@media(max-width:760px){
  .route-wave-grid{grid-template-columns:1fr}
  .wave-assign-columns{grid-template-columns:1fr}
}


/* ========================================================================== 
   OccPro 0.10.0a7 — dashboard compact, image brand, saved drag/drop layout
   ========================================================================== */
.app-shell{grid-template-columns:218px 1fr}
.sidebar{padding:12px 10px}
.brand-mini{display:grid;grid-template-columns:1fr;padding:4px 8px 14px;gap:3px}
.brand-mini .brand-wordmark{width:150px;height:auto;border-radius:0;object-fit:contain;object-position:left center}
.brand-tenant{padding-left:50px;margin-top:-8px;color:#9eb4c5;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar nav{gap:2px}.nav-btn{padding:9px 10px;border-radius:9px;font-size:.88rem;min-height:38px}.sidebar-bottom{padding-top:7px}.sidebar-bottom .nav-btn{padding-block:8px}
.topbar{padding:16px 22px 7px;min-height:70px}.topbar h1{font-size:1.48rem;margin:.12rem 0 0}.top-actions{gap:7px}.avatar{width:36px;height:36px;border-radius:11px;font-size:.82rem}.status-pill,.pill{padding:5px 8px;font-size:.72rem}.btn{border-radius:9px;padding:8px 12px;font-size:.84rem}.organization-switcher{min-height:36px;padding:6px 9px;border-radius:9px}
.content{padding:8px 22px 30px}.hero{border-radius:16px;padding:17px 19px;box-shadow:0 5px 20px rgba(7,31,59,.06)}.hero-compact{min-height:92px;align-items:center}.hero h2{font-size:1.27rem;margin:.15rem 0 .25rem}.hero p{font-size:.84rem}.hero .btn{padding:7px 11px}.card{border-radius:13px;padding:13px;box-shadow:0 2px 8px rgba(7,31,59,.025)}
.dashboard-canvas{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:11px;margin-top:11px;align-items:stretch}
.dashboard-item{position:relative;min-width:0;min-height:112px;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.dashboard-item[data-size="s"]{grid-column:span 3}.dashboard-item[data-size="m"]{grid-column:span 4}.dashboard-item[data-size="l"]{grid-column:span 6}.dashboard-item[data-size="wide"]{grid-column:1/-1}
.dashboard-metric{min-height:92px;display:flex;flex-direction:column;justify-content:center}.dashboard-metric small{color:var(--muted);font-size:.78rem}.dashboard-metric strong{font-size:1.65rem;line-height:1.1;margin-top:4px}.dashboard-item.widget{min-height:138px}.dashboard-item.widget h3{font-size:1rem;margin:0 0 9px}.dashboard-item.widget p{font-size:.84rem;margin:0;line-height:1.5}
.dashboard-canvas.is-editing .dashboard-item{cursor:grab;border-style:dashed;border-color:color-mix(in srgb,var(--accent) 55%,var(--line));padding-top:34px}.dashboard-canvas.is-editing .dashboard-item:hover{box-shadow:0 8px 22px rgba(7,31,59,.08)}.dashboard-item.dragging{opacity:.45;transform:scale(.985)}
.dashboard-item-tools{position:absolute;top:7px;right:7px;left:9px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.drag-handle{font-weight:900;letter-spacing:-2px;color:var(--muted);font-size:1.05rem}.dash-size-btn{pointer-events:auto;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:7px;font-size:.65rem;font-weight:850;min-width:28px;height:24px;padding:0 5px}
.dashboard-editbar{position:sticky;top:8px;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;margin-bottom:10px;background:color-mix(in srgb,var(--surface) 94%,var(--accent) 6%);border:1px solid color-mix(in srgb,var(--line) 70%,var(--accent) 30%);border-radius:12px;box-shadow:0 8px 22px rgba(7,31,59,.07);backdrop-filter:blur(10px)}.dashboard-editbar>div:first-child{display:grid;gap:1px}.dashboard-editbar strong{font-size:.82rem}.dashboard-editbar span{font-size:.74rem;color:var(--muted)}.dashboard-edit-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dashboard-edit-actions .btn{white-space:nowrap}
.dashboard-choice{display:grid;grid-template-columns:1fr 128px;gap:8px;align-items:center}.dashboard-choice .choice{margin:0}.dashboard-choice select{padding:8px 9px;border-radius:9px;font-size:.8rem}
body[data-density="compact"] .dashboard-item{min-height:100px}body[data-density="compact"] .dashboard-item.widget{min-height:124px}
@media(max-width:1250px){.app-shell{grid-template-columns:205px 1fr}.dashboard-item[data-size="s"]{grid-column:span 6}.dashboard-item[data-size="m"]{grid-column:span 6}.dashboard-item[data-size="l"]{grid-column:span 6}}
@media(max-width:900px){.dashboard-item[data-size="s"],.dashboard-item[data-size="m"],.dashboard-item[data-size="l"]{grid-column:span 6}.dashboard-editbar{position:static;align-items:flex-start;flex-direction:column}.dashboard-edit-actions{width:100%}}
@media(max-width:760px){.content{padding:8px 12px 24px}.topbar{padding:12px}.hero-compact{min-height:auto}.dashboard-item[data-size="s"],.dashboard-item[data-size="m"],.dashboard-item[data-size="l"],.dashboard-item[data-size="wide"]{grid-column:1/-1}.dashboard-choice{grid-template-columns:1fr}.brand-mini .brand-wordmark{width:145px}.brand-tenant{padding-left:48px}}


/* ==========================================================================
   OccPro 0.10.0a8 — OPTION 1 / LIGHT / COMPACT / EXACT USER LOGO
   ========================================================================== */
:root{
  --navy:#071f3b;
  --navy2:#0d3157;
  --teal:#00a98f;
  --green:#1aa96f;
  --blue:#2f80ed;
  --bg:#f7f9fb;
  --surface:#ffffff;
  --text:#10243a;
  --muted:#687c90;
  --line:#e0e7ed;
  --shadow:0 7px 24px rgba(7,31,59,.055);
  --radius:12px;
}
body{background:var(--bg)}
.app-shell{grid-template-columns:224px minmax(0,1fr)}
.sidebar{
  background:#fff!important;
  color:#183047!important;
  border-right:1px solid #e3e9ee;
  padding:12px 10px!important;
  box-shadow:none;
}
.brand-mini{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:3px!important;
  min-height:68px;
  padding:5px 8px 12px!important;
  border-bottom:1px solid #edf1f4;
  margin-bottom:8px;
}
.brand-mini .brand-wordmark{
  width:174px!important;
  height:43px!important;
  object-fit:contain!important;
  object-position:left center!important;
  border-radius:0!important;
}
.brand-tenant{
  padding:0 0 0 7px!important;
  margin:0!important;
  font-size:.68rem!important;
  color:#7a8da0!important;
  max-width:180px;
}
.sidebar nav{gap:2px!important;padding:2px 0}
.nav-btn{
  min-height:38px!important;
  padding:8px 10px!important;
  color:#264057!important;
  border-radius:9px!important;
  font-size:.86rem!important;
  font-weight:650;
}
.nav-btn .nav-icon,.nav-btn>span:first-child{width:20px;text-align:center;color:#5d7286}
.nav-btn:hover{background:#f1f6f6!important;color:#0d2c3e!important}
.nav-btn.active{
  background:#e8f8f4!important;
  color:#087664!important;
  font-weight:800;
}
.nav-btn.active .nav-icon,.nav-btn.active>span:first-child{color:#00a98f}
.sidebar-bottom{
  border-top:1px solid #e5ebef!important;
  padding-top:8px!important;
}
.platform-admin-entry{color:#071f3b!important}
.main{background:var(--bg)}
.topbar{
  position:sticky;
  top:0;
  z-index:50;
  min-height:72px!important;
  padding:14px 20px 10px!important;
  background:rgba(247,249,251,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid #edf1f4;
}
.topbar h1{font-size:1.45rem!important;letter-spacing:-.025em;margin:.1rem 0 0!important}
.topbar .eyebrow{font-size:.66rem}
.top-actions{gap:7px!important}
.status-pill{background:#eaf8f4!important;color:#087664!important}
.avatar{width:34px!important;height:34px!important;border-radius:50%!important;background:linear-gradient(135deg,#0c4a63,#00a98f)!important}
.btn{
  min-height:35px;
  padding:7px 11px!important;
  border-radius:8px!important;
  font-size:.8rem!important;
}
.btn.primary{background:#078c79!important;color:#fff!important}
.btn.primary:hover{background:#067665!important}
.btn.ghost{background:#fff!important;border:1px solid #ccd8e1!important}
.btn.secondary{background:#e8f8f4!important;color:#087664!important}
.organization-switcher{min-height:35px!important;border-radius:8px!important}
.content{padding:14px 20px 34px!important}
.card{
  border:1px solid #dce5eb!important;
  border-radius:12px!important;
  padding:14px!important;
  box-shadow:0 2px 7px rgba(7,31,59,.025)!important;
}
.toolbar{margin-bottom:12px!important}
.table-wrap{border-radius:11px!important;box-shadow:none!important}
th,td{padding:10px 12px!important;font-size:.82rem!important}
th{font-size:.7rem!important;background:#f8fafb!important}
.search{min-height:36px!important;padding:8px 10px!important}
.form-grid{gap:10px!important}
input,select,textarea{border-radius:9px!important;padding:9px 11px!important}
.modal-card{border-radius:14px!important}
.modal-body{padding:20px!important}
.modal-actions{padding:12px 20px!important}

/* Dashboard */
.option1-dashboard.dashboard-canvas{
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:0!important;
}
.dashboard-item[data-size="s"]{grid-column:span 3}
.dashboard-item[data-size="m"]{grid-column:span 4}
.dashboard-item[data-size="l"]{grid-column:span 6}
.dashboard-item[data-size="wide"]{grid-column:1/-1}
.option1-metric{
  min-height:96px!important;
  justify-content:space-between!important;
}
.metric-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.metric-top small{font-size:.76rem!important}
.metric-icon{
  width:29px;height:29px;border-radius:8px;background:#eff7f6;color:#078c79;
  display:grid;place-items:center;font-weight:900
}
.option1-metric strong{font-size:1.65rem!important}
.option1-widget{min-height:214px!important}
.option1-widget .widget-head{align-items:flex-start;margin-bottom:10px}
.option1-widget .widget-head h3{font-size:.94rem!important;margin:0!important}
.option1-widget .widget-head small{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}
.widget-empty{padding:18px 4px;color:var(--muted);font-size:.8rem}
.widget-link{
  border:0;background:transparent;color:#126cda;font-size:.74rem;font-weight:750;
  padding:8px 0 0;cursor:pointer
}
.widget-link.inline{padding:4px 0 0;text-align:left}
.activity-list{display:grid}
.activity-row{
  min-height:38px;display:grid;grid-template-columns:42px 10px 1fr;gap:8px;align-items:center;
  border-bottom:1px solid #edf1f4
}
.activity-row:last-child{border-bottom:0}
.activity-time{font-size:.7rem;color:#52687c}
.activity-dot{width:7px;height:7px;border-radius:50%;background:#15b8aa}
.activity-row strong{display:block;font-size:.77rem}
.activity-row small{display:block;font-size:.66rem;color:var(--muted)}
.status-widget{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:center}
.donut{width:120px;height:120px;border-radius:50%;display:grid;place-items:center}
.donut>div{width:72px;height:72px;background:#fff;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center}
body[data-theme="dark"] .donut>div{background:var(--surface)}
.donut strong{font-size:1.35rem}.donut small{font-size:.64rem;color:var(--muted)}
.status-legend{display:grid;gap:8px}
.status-legend span{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:7px;font-size:.72rem}
.status-legend i{width:8px;height:8px;border-radius:3px}.status-legend b{font-size:.72rem}
.compact-list{display:grid}
.compact-list>div{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #edf1f4}
.compact-list>div:last-child{border-bottom:0}
.compact-list strong{display:block;font-size:.76rem}.compact-list small{display:block;color:var(--muted);font-size:.66rem}
.round-mini{width:26px;height:26px;border-radius:50%;background:#f0f5f8;display:grid;place-items:center;color:#0c4a63}
.bar-chart{height:145px;display:flex;align-items:end;justify-content:space-around;gap:8px;padding-top:8px}
.bar-col{height:100%;min-width:22px;display:grid;grid-template-rows:18px 1fr 20px;justify-items:center;align-items:end;gap:2px}
.bar-value{font-size:.62rem;color:var(--muted)}
.bar-track{height:100%;width:18px;background:#f0f4f6;border-radius:5px;display:flex;align-items:end;overflow:hidden}
.bar-track span{display:block;width:100%;background:linear-gradient(180deg,#1bbcae,#078c79);border-radius:5px 5px 0 0}
.bar-col small{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.6rem}
.alert-list{display:grid}
.alert-row{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid #edf1f4}
.alert-row:last-child{border-bottom:0}
.alert-icon{width:24px;height:24px;border-radius:7px;background:#fff4dc;color:#a26a00;display:grid;place-items:center;font-weight:900;font-size:.7rem}
.alert-row strong{display:block;font-size:.74rem}.alert-row small{display:block;color:var(--muted);font-size:.65rem;line-height:1.4}
.compliance-compact{display:grid;grid-template-columns:118px 1fr;gap:16px;align-items:center;min-height:145px}
.mini-ring{
  --score:100;width:106px;height:106px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(#29ad63 calc(var(--score)*1%),#e6ecef 0);position:relative
}
.mini-ring:after{content:"";position:absolute;inset:11px;background:#fff;border-radius:50%}
body[data-theme="dark"] .mini-ring:after{background:var(--surface)}
.mini-ring strong{position:relative;z-index:1;font-size:1.1rem}
.compliance-compact>div:last-child{display:grid;gap:4px}.compliance-compact>div:last-child>strong{font-size:.82rem}.compliance-compact small{font-size:.68rem;color:var(--muted)}
.week-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #e2e8ed;border-radius:9px;overflow:hidden}
.week-day{min-height:104px;padding:9px;border-right:1px solid #e2e8ed;display:flex;flex-direction:column;gap:6px}
.week-day:last-child{border-right:0}.week-day>strong{font-size:.68rem;text-align:center;color:#365066}
.week-day>span{font-size:.65rem;background:#ecf3ff;color:#185fbf;padding:5px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-day>small{text-align:center;color:#9aabb8}

/* Personalization drawer, option 1 */
.option1-drawer{width:min(390px,96vw)!important}
.option1-drawer .drawer-head{padding:18px!important}
.option1-drawer .drawer-body{padding:16px 18px 90px!important;max-height:calc(100vh - 70px)!important}
.option1-drawer .drawer-actions{padding:12px 18px!important;display:grid!important;grid-template-columns:1fr 1fr!important}
.option1-drawer .drawer-actions .btn.primary{grid-column:1/-1}
.setting-row{grid-template-columns:95px 1fr!important;margin:9px 0!important}
.choice-list{gap:6px!important}
.dashboard-choice{grid-template-columns:1fr 104px!important}
.dashboard-choice .choice{padding:8px!important}
.dashboard-choice select{padding:7px 8px!important}
.nav-order-list{display:grid;gap:6px}
.nav-order-item{
  display:grid;grid-template-columns:26px 1fr;align-items:center;gap:7px;
  border:1px solid #dfe6eb;border-radius:9px;background:#fff;padding:9px;cursor:grab;font-size:.78rem
}
.nav-order-item.dragging{opacity:.45}.nav-order-handle{color:#7a8da0;font-size:1rem}
.dashboard-editbar{
  top:74px!important;background:rgba(255,255,255,.97)!important;
  border-radius:10px!important;padding:8px 10px!important;margin-bottom:10px!important
}

/* Exact logo on login + Superadmin */
.exact-occpro-logo{display:block!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.auth-logo-exact{display:block;width:min(380px,88%);height:auto;object-fit:contain;object-position:left center}
.exact-platform-brand{display:grid!important;gap:4px!important}
.exact-platform-brand img{width:185px!important;height:48px!important;object-fit:contain!important;object-position:left center!important;border-radius:0!important}
.exact-platform-brand small{padding-left:8px!important}

/* Make all operational pages feel like the same compact option-1 product. */
.dashboard-grid,.module-grid{gap:10px!important;margin-top:10px!important}
.module-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important}
.module-card{gap:8px!important}
.module-icon{width:36px!important;height:36px!important;border-radius:10px!important}
.job-card,.timeline .card{padding:12px!important}
.dropzone{padding:28px!important;border-radius:12px!important}
.stepper{gap:6px!important}.step{padding:8px!important;border-radius:8px!important;font-size:.72rem!important}
.tabs{margin:14px 0 10px!important}.tab{padding:8px 10px!important;font-size:.78rem!important}
.compliance-hero{gap:10px!important}.score-ring{width:108px!important;height:108px!important}

@media(max-width:1250px){
  .app-shell{grid-template-columns:205px minmax(0,1fr)!important}
  .brand-mini .brand-wordmark{width:160px!important}
  .dashboard-item[data-size="s"]{grid-column:span 6!important}
  .dashboard-item[data-size="m"]{grid-column:span 6!important}
}
@media(max-width:900px){
  .status-widget{grid-template-columns:108px 1fr}.donut{width:100px;height:100px}.donut>div{width:60px;height:60px}
  .week-grid{grid-template-columns:1fr}.week-day{min-height:auto;border-right:0;border-bottom:1px solid #e2e8ed}.week-day:last-child{border-bottom:0}
}
@media(max-width:760px){
  .app-shell{display:block!important}
  .sidebar{position:fixed!important;left:-230px;width:220px!important;z-index:100;height:100vh!important;transition:left .18s ease}
  .sidebar.open{left:0}
  .content{padding:12px!important}
  .topbar{padding:10px 12px!important}
  .dashboard-item[data-size="s"],.dashboard-item[data-size="m"],.dashboard-item[data-size="l"],.dashboard-item[data-size="wide"]{grid-column:1/-1!important}
  .option1-widget{min-height:180px!important}
}
.btn.danger{background:#b42318!important;color:#fff!important;border:1px solid #b42318!important}.btn.danger:disabled{opacity:.45;cursor:not-allowed}.account-danger-zone h3{margin:.35rem 0}.account-danger-zone p{max-width:900px}
