:root{color:#142033;font-synthesis:none;text-rendering:optimizelegibility;--blue:#0866d8;--blue-dark:#064ea7;--blue-soft:#e9f2ff;--aqua:#0ca9b8;--aqua-soft:#e7fbfd;--green:#198754;--green-soft:#e9f8f0;--orange:#c56a0a;--orange-soft:#fff4e8;--red:#c73b45;--red-soft:#fff0f1;--ink:#142033;--muted:#64748b;--line:#dce5ef;--surface:#fff;--surface-2:#f7fafd;--radius:18px;--safe-bottom:env(safe-area-inset-bottom,0px);background:#f3f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f3f7fb}body{background:radial-gradient(circle at 90% -10%,#dff6fb 0,#0000 32%),#f3f7fb;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.035em}h2{letter-spacing:-.025em}small{color:var(--muted)}code{background:#eef3f8;border-radius:6px;padding:.15rem .35rem}.muted{color:var(--muted)}.icon{flex:none;display:inline-block}.app-shell{min-height:100vh}.main-content{width:min(1180px,100%);padding:88px 20px calc(98px + var(--safe-bottom));margin:0 auto}.main-full{min-height:100vh}.page{flex-direction:column;gap:20px;display:flex}.screen-center{text-align:center;align-content:center;place-items:center;gap:16px;min-height:70vh;padding:24px;display:grid}.topbar{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7fafde6;border-bottom:1px solid #cfdceacc;justify-content:space-between;align-items:center;height:68px;padding:0 max(20px,50vw - 570px);display:flex;position:fixed;inset:0 0 auto}.brand{color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.brand-mark{color:#fff;letter-spacing:-.06em;background:linear-gradient(145deg,#0877ef,#0751b0);border-radius:13px;place-items:center;width:40px;height:40px;font-weight:850;display:grid}.brand b,.brand small{text-align:left;display:block}.brand b{font-size:15px}.brand small{letter-spacing:.12em;text-transform:uppercase;font-size:11px}.top-actions{align-items:center;gap:8px;display:flex}.connection{border-radius:999px;padding:6px 9px;font-size:12px;font-weight:750}.connection.online{color:var(--green);background:var(--green-soft)}.connection.offline{color:var(--orange);background:var(--orange-soft)}.sync-chip{color:var(--blue);background:#fff;border:1px solid #bad6f6;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.bottom-nav{z-index:35;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border:1px solid #d9e4ee;border-radius:23px;grid-template-columns:repeat(5,1fr);width:min(570px,100% - 24px);height:70px;padding:7px;display:grid;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 14px 35px #18375c24}.bottom-nav a{color:#77859a;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:700;display:flex}.bottom-nav a.active{background:var(--blue-soft);color:var(--blue)}.bottom-nav a .icon{width:20px;height:20px}.more-overlay{z-index:80;background:#0f1c2d5c;justify-content:center;align-items:flex-end;padding:20px;display:flex;position:fixed;inset:0}.more-sheet{width:min(520px,100%);padding:14px 18px calc(22px + var(--safe-bottom));background:#fff;border-radius:26px;flex-direction:column;gap:7px;display:flex}.sheet-handle{background:#d5dce5;border:0;border-radius:99px;width:54px;height:5px;margin:0 auto 5px}.more-sheet h2{margin:2px 4px 8px}.more-sheet>button:not(.sheet-handle){color:var(--ink);text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:13px;font-weight:700;display:flex}.more-sheet>button:hover{background:#f4f7fa}.more-sheet .danger-link{color:var(--red)!important}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.section-title{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.section-title h2{margin-bottom:4px;font-size:24px}.section-title p{color:var(--muted);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--blue);font-size:11px;font-weight:850}.btn{border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:780;transition:transform .12s,background .12s;display:inline-flex}.btn:active{transform:scale(.985)}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark)}.btn-secondary{color:var(--ink);background:#fff;border-color:#cddbe9}.btn-danger{background:var(--red);color:#fff}.btn-ghost{color:var(--blue);background:0 0}.btn-success{background:var(--green);color:#fff}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:5px 8px;font-size:11px;font-weight:800;display:inline-flex}.badge-neutral{color:#596779;background:#eef2f6}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-orange{background:var(--orange-soft);color:var(--orange)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-aqua{background:var(--aqua-soft);color:#087b86}.field{flex-direction:column;gap:7px;display:flex}.field-label{font-size:13px;font-weight:750}.field input,.field select,.field textarea,.date-control input,.search-box input{width:100%;color:var(--ink);background:#fff;border:1px solid #cfdce8;border-radius:12px;outline:none;padding:12px 13px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.date-control input:focus,.search-box input:focus{border-color:#69a8ef;box-shadow:0 0 0 3px #0866d81c}.field textarea{resize:vertical}.field small{line-height:1.35}.field-error,.form-error{color:var(--red)!important}.form-error{background:var(--red-soft);border:1px solid #f1bec3;border-radius:12px;padding:11px 13px;font-size:13px;line-height:1.45}.form-stack{flex-direction:column;gap:15px;display:flex}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.toggle-row{align-items:center;gap:10px;font-weight:650;display:flex}.toggle-row input{width:20px;height:20px}.toast{z-index:120;border-radius:13px;width:min(440px,100% - 32px);padding:13px 16px;font-weight:700;position:fixed;bottom:98px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #1420332e}.toast-info{color:#fff;background:#18354f}.toast-success{color:#fff;background:#146b46}.toast-error{color:#fff;background:#9f2530}.spinner-wrap{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:36px;display:flex}.spinner{border:3px solid #d6e1ec;border-top-color:var(--blue);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--muted);padding:48px 24px}.empty h3{color:var(--ink);margin:10px 0 6px}.empty p{margin-bottom:18px}.empty-icon{background:var(--blue-soft);width:54px;height:54px;color:var(--blue);border-radius:18px;place-items:center;margin:auto;font-size:28px;display:grid}.auth-page{background:#fff;grid-template-columns:minmax(300px,.9fr) minmax(390px,1.1fr);min-height:100vh;display:grid}.auth-visual{color:#fff;background:linear-gradient(145deg,#0756b5,#0877e9 62%,#0a9db1);flex-direction:column;justify-content:center;padding:72px clamp(32px,6vw,90px);display:flex;position:relative;overflow:hidden}.auth-logo{letter-spacing:-.08em;background:#ffffff21;border:1px solid #ffffff59;border-radius:24px;place-items:center;width:76px;height:76px;font-size:26px;font-weight:900;display:grid}.auth-visual h1{max-width:600px;margin:26px 0 16px;font-size:clamp(36px,5vw,64px);line-height:1}.auth-visual p{color:#ffffffd4;max-width:500px;font-size:18px;line-height:1.5}.wave-lines{height:38%;position:absolute;inset:auto -15% -12%;transform:rotate(-3deg)}.wave-lines i{border-top:2px solid #ffffff42;border-radius:50%;height:100%;position:absolute;inset:auto 0 0}.wave-lines i:nth-child(2){bottom:45px}.wave-lines i:nth-child(3){bottom:90px}.auth-card{place-self:center;width:min(480px,100% - 40px);padding:36px}.auth-heading h2{margin:6px 0 8px;font-size:31px}.auth-heading p{color:var(--muted);margin-bottom:28px}.hero-card{color:#fff;background:linear-gradient(130deg,#0757b7,#0877e8 68%,#0ba5b6);border-radius:25px;justify-content:space-between;align-items:center;min-height:190px;padding:30px;display:flex;position:relative;overflow:hidden}.hero-card:after{content:"";border:38px solid #ffffff12;border-radius:50%;width:250px;height:250px;position:absolute;top:-100px;right:-70px}.hero-card .eyebrow{color:#cbe6ff}.hero-card h1{margin:8px 0;font-size:34px}.hero-card p{color:#ffffffd1;margin:0}.progress-ring{--progress:0%;z-index:1;background:conic-gradient(#fff var(--progress),#ffffff2e 0);border-radius:50%;place-items:center;width:104px;height:104px;display:grid;position:relative}.progress-ring:after{content:"";background:#086bd6;border-radius:50%;position:absolute;inset:8px}.progress-ring strong{z-index:1;font-size:22px;position:relative}.metric-grid{grid-template-columns:repeat(4,1fr);gap:13px;display:grid}.metric-grid .card{justify-content:space-between;align-items:center;padding:17px;display:flex}.metric-grid span{color:var(--muted);font-size:12px;font-weight:700}.metric-grid strong{font-size:26px}.quick-grid{grid-template-columns:repeat(4,1fr);gap:13px;display:grid}.quick-grid button{border:1px solid var(--line);text-align:left;color:var(--ink);background:#fff;border-radius:18px;gap:5px;padding:18px;display:grid}.quick-grid button>span{background:var(--blue-soft);width:42px;height:42px;color:var(--blue);border-radius:13px;place-items:center;margin-bottom:8px;display:grid}.quick-grid b{font-size:15px}.quick-grid small{line-height:1.3}.stop-list,.compact-list{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.stop-row{color:var(--ink);text-align:left;background:#fff;border:0;border-bottom:1px solid #edf2f6;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:15px;display:grid}.stop-row:last-child{border-bottom:0}.stop-row:hover{background:#fafdff}.stop-row .sequence{background:var(--blue-soft);width:34px;height:34px;color:var(--blue);border-radius:11px;place-items:center;font-weight:850;display:grid}.stop-row b,.stop-row small{display:block}.stop-row small{margin-top:3px}.date-control{border:1px solid var(--line);background:#fff;border-radius:15px;align-self:flex-start;align-items:center;gap:10px;padding:9px 12px;display:flex}.date-control span{font-size:12px;font-weight:800}.date-control input{border:0;width:auto;padding:6px}.route-timeline{flex-direction:column;display:flex}.route-item{grid-template-columns:46px 1fr;display:grid}.route-line{justify-content:center;display:flex;position:relative}.route-line span{z-index:1;width:34px;height:34px;color:var(--blue);background:#fff;border:2px solid #bcd4ee;border-radius:11px;place-items:center;font-weight:850;display:grid}.route-line i{background:#cfdeeb;width:2px;position:absolute;top:34px;bottom:-18px}.route-item.completed .route-line span{background:var(--green);color:#fff;border-color:var(--green)}.route-item>button{border:1px solid var(--line);text-align:left;color:var(--ink);background:#fff;border-radius:18px;margin-bottom:14px;padding:17px}.route-head{justify-content:space-between;gap:12px;display:flex}.route-head h3{margin:4px 0 0}.route-item p,.route-item address{color:var(--muted);margin:6px 0 0;font-style:normal}.note-mini{background:var(--orange-soft);color:#86521c;border-radius:10px;gap:7px;margin-top:11px;padding:9px;font-size:12px;display:flex}.action-pair{gap:8px;display:flex}.search-box{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:9px;padding:4px 12px;display:flex}.search-box input{border:0;box-shadow:none!important}.client-grid,.user-grid,.product-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.client-card{padding:0}.client-card>div{padding:19px}.card-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-title-row h2,.card-title-row h3{margin:5px 0}.card-title-row p{color:var(--muted);margin:3px 0}.avatar{width:44px;height:44px;color:var(--blue);background:linear-gradient(145deg,#dbeaff,#e9fbfd);border-radius:14px;flex:none;place-items:center;font-weight:900;display:grid}.user-card-head{align-items:center;gap:12px;display:flex}.card-title-row>div:first-child:has(.avatar){align-items:center;gap:12px;display:flex}.status-dot{text-transform:capitalize;background:#eef2f5;border-radius:99px;padding:4px 8px;font-size:11px}.status-dot.active{color:var(--green);background:var(--green-soft)}.status-dot.paused{color:var(--orange);background:var(--orange-soft)}.client-note{background:var(--orange-soft);color:#7d521f;border-radius:10px;margin:14px 0;padding:10px}.pool-chips{flex-wrap:wrap;gap:7px;margin:14px 0;display:flex}.pool-chips span{background:var(--blue-soft);color:var(--blue);border-radius:99px;padding:6px 8px;font-size:11px;font-weight:750}.client-meta{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.client-meta b{color:var(--ink)}.modal-backdrop{z-index:100;background:#0d192a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.modal{background:#fff;border-radius:24px;width:min(520px,100%);max-height:calc(100vh - 40px);padding:26px;position:relative;overflow:auto}.modal.wide{width:min(700px,100%)}.modal-close{color:#526073;background:#edf2f6;border:0;border-radius:50%;width:34px;height:34px;font-size:23px;position:absolute;top:13px;right:15px}.planning-grid{grid-template-columns:minmax(320px,.85fr) minmax(360px,1.15fr);gap:16px;display:grid}.compact-list>div{border-bottom:1px solid #edf2f6;grid-template-columns:34px 1fr;gap:10px;padding:12px;display:grid}.compact-list>div>span{background:var(--blue-soft);width:30px;height:30px;color:var(--blue);border-radius:10px;place-items:center;font-weight:800;display:grid}.compact-list b,.compact-list small{display:block}.user-card-head{grid-template-columns:auto 1fr auto;display:grid}.user-card-head h3{margin:0 0 3px}.user-card-head p{color:var(--muted);margin:0;font-size:12px}.user-card-meta{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.user-card-meta span{background:#f0f4f8;border-radius:99px;padding:5px 8px;font-size:11px}.segmented{background:#e9eff5;border-radius:14px;align-self:flex-start;gap:5px;padding:4px;display:flex}.segmented button{color:#67758a;background:0 0;border:0;border-radius:10px;padding:9px 18px;font-weight:750}.segmented button.active{color:var(--blue);background:#fff}.product-grid .card p,.rule-list .card p{color:var(--muted)}.formula-box{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.formula-box span,.formula-box b{background:#f0f5f9;border-radius:8px;padding:6px 8px;font-size:11px}.rule-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.warning-text{background:var(--orange-soft);border-radius:10px;align-items:flex-start;gap:7px;font-size:12px;display:flex;color:#96530f!important;margin:12px 0 0!important;padding:9px!important}.report-list{flex-direction:column;gap:9px;display:flex}.report-list>button{border:1px solid var(--line);text-align:left;color:var(--ink);background:#fff;border-radius:17px;justify-content:space-between;gap:20px;padding:17px;display:flex}.report-list h3{margin:5px 0}.report-list p{color:var(--muted);margin:0}.report-side{flex-direction:column;justify-content:space-between;align-items:flex-end;display:flex}.back-link{color:var(--blue);background:0 0;border:0;align-self:flex-start;align-items:center;gap:5px;font-weight:750;display:flex}.report-actions{gap:10px;display:flex}.detail-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.detail-grid span,.detail-grid b{display:block}.detail-grid span{color:var(--muted);margin-bottom:5px;font-size:11px}.reading-summary{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:9px;display:grid}.reading-summary>div{background:#f3f7fb;border-radius:13px;padding:12px}.reading-summary span,.reading-summary strong,.reading-summary small{display:block}.reading-summary span{color:var(--muted);font-size:10px;font-weight:850}.reading-summary strong{margin:4px 0;font-size:24px}.dosage-line{border-bottom:1px solid #edf2f6;justify-content:space-between;gap:16px;padding:12px 0;display:flex}.dosage-line:last-child{border-bottom:0}.dosage-line small{display:block}.check-summary{gap:8px;display:grid}.check-summary>div{color:var(--muted);gap:8px;display:flex}.check-summary>div.done{color:var(--green)}.photo-grid{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.photo-grid figure{border:1px solid var(--line);background:#f2f5f8;border-radius:13px;margin:0;overflow:hidden}.photo-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.photo-grid figcaption{color:var(--muted);padding:8px;font-size:11px}.sync-hero{border-radius:20px;align-items:center;gap:15px;padding:22px;display:flex}.sync-hero.online{background:var(--green-soft);color:var(--green)}.sync-hero.offline{background:var(--orange-soft);color:var(--orange)}.sync-hero h2{margin:0 0 4px}.sync-hero p{margin:0}.queue-row{border-bottom:1px solid #edf2f6;justify-content:space-between;gap:14px;padding:11px 0;display:flex}.queue-row:last-child{border-bottom:0}.queue-row b,.queue-row small{display:block}.queue-row span{color:var(--muted);font-size:12px}.settings-grid .card h3{margin-bottom:8px}.settings-grid .card hr{border:0;border-top:1px solid var(--line);margin:20px 0}.backup-preview{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.backup-preview span,.backup-preview b{background:#f0f5f9;border-radius:8px;padding:7px;font-size:12px}.steps{padding-left:20px;line-height:1.8}.audit-table{flex-direction:column;gap:8px;display:flex}.audit-table article{border:1px solid var(--line);background:#fff;border-radius:15px;justify-content:space-between;gap:16px;padding:14px;display:flex}.audit-table h3{margin:8px 0 4px;font-size:14px}.audit-table p,.audit-table time,.audit-table small{color:var(--muted);text-align:right;margin:0;font-size:11px;display:block}.stop-page{background:#eef4f9;min-height:100vh}.stop-header{z-index:35;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff2;border-bottom:1px solid #d7e2ec;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:12px max(14px,50vw - 436px);display:grid;position:sticky;top:0}.stop-header>button{background:#edf3f8;border:0;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.stop-header h1{margin:2px 0;font-size:19px}.stop-header p,.stop-header small{color:var(--muted);margin:0}.stop-header-actions{align-items:center;gap:8px;display:flex}.skip-link{background:var(--red-soft);color:var(--red);border:0;border-radius:10px;padding:8px;font-weight:800}.stop-info h2{max-width:560px;margin:8px 0 0;font-size:17px}.round-action{background:var(--blue-soft);color:var(--blue);border:0;border-radius:15px;align-items:center;gap:7px;padding:10px 12px;font-weight:780;display:flex}.important-note{background:var(--orange-soft);color:#7a4b12;border:1px solid #f7d7aa;border-radius:13px;gap:10px;margin:15px 0;padding:12px;display:flex}.important-note p{margin:3px 0 0}.info-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.info-grid span,.info-grid b{display:block}.info-grid b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.stop-info details{margin-top:12px}.stop-info summary{color:var(--blue);font-weight:750}.stop-info details p{color:var(--muted);margin:8px 0 0}.arrival-actions{gap:8px;margin-top:16px;display:flex}.workflow-section{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden}.workflow-title{width:100%;color:var(--ink);text-align:left;background:#fff;border:0;justify-content:space-between;align-items:center;padding:16px;display:flex}.workflow-title>span{align-items:center;gap:12px;display:flex}.workflow-title i{background:var(--blue-soft);width:32px;height:32px;color:var(--blue);border-radius:11px;place-items:center;font-style:normal;font-weight:900;display:grid}.workflow-title h2{margin:0 0 3px;font-size:17px}.workflow-title p{color:var(--muted);margin:0;font-size:11px}.workflow-title>b{color:#7b899c;font-size:22px}.readings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.reading-card{background:#fff;border:1px solid #dce6ef;border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.reading-card.in-range{background:#fafffc;border-color:#9bd8b7}.reading-card.out-range{background:#fffafb;border-color:#efb3b8}.reading-card>div:first-child{justify-content:space-between;gap:8px;display:flex}.reading-card b{font-size:12px}.required{text-transform:uppercase;letter-spacing:.08em;color:var(--red);font-size:8px;font-weight:900}.reading-input{background:#f1f6fa;border-radius:10px;align-items:center;display:flex;overflow:hidden}.reading-input input{background:0 0;border:0;outline:none;width:100%;min-width:0;padding:9px 11px;font-size:23px;font-weight:850}.reading-meta{color:var(--muted);justify-content:space-between;gap:7px;font-size:9px;display:flex}.calculated-row{background:var(--aqua-soft);color:#08747d;border-radius:11px;justify-content:space-between;margin-top:10px;padding:10px;font-size:12px;display:flex}.empty-inline{color:var(--muted);text-align:center;padding:15px}.suggestion-list{flex-direction:column;gap:10px;display:flex}.suggestion-card{padding:14px}.suggestion-head{justify-content:space-between;gap:12px;display:flex}.suggestion-head h3{margin:3px 0}.suggestion-head p{color:var(--muted);margin:0;font-size:11px}.suggestion-head>strong{color:var(--blue);white-space:nowrap;font-size:20px}.dose-input{margin-top:12px}.unit-input{border:1px solid #cfdce8;border-radius:12px;align-items:center;display:flex;overflow:hidden}.unit-input input{border:0;font-size:18px;font-weight:800;box-shadow:none!important}.unit-input span{color:var(--muted);padding:0 13px}.legal-hint{color:var(--muted);margin:12px 0 0;font-size:10px;line-height:1.4}.checklist-list{flex-direction:column;gap:7px;display:flex}.checklist-list>label{border:1px solid #e0e8ef;border-radius:13px;grid-template-columns:24px 30px 1fr;align-items:center;gap:8px;padding:11px;display:grid}.checklist-list>label.checked{background:var(--green-soft);border-color:#a7dabb}.checklist-list input{opacity:0;pointer-events:none;position:absolute}.custom-check{color:#0000;border:2px solid #c5d2df;border-radius:8px;place-items:center;width:25px;height:25px;display:grid}.checked .custom-check{background:var(--green);border-color:var(--green);color:#fff}.checklist-list b,.checklist-list small{display:block}.checklist-list b{font-size:12px}.checklist-list small{margin-top:3px;font-size:9px}.photo-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}.photo-actions button{color:var(--blue);background:#f4f9ff;border:1px dashed #a9c5e3;border-radius:14px;flex-direction:column;align-items:center;gap:5px;padding:17px;display:flex}.photo-actions small{font-size:9px}.photo-grid.local{grid-template-columns:repeat(2,1fr);margin-top:10px}.photo-grid.local figcaption{justify-content:space-between;align-items:center;display:flex}.photo-grid.local figcaption button{background:var(--red-soft);color:var(--red);border:0;border-radius:8px;width:24px;height:24px}.phrase-chips{flex-wrap:wrap;gap:6px;display:flex}.phrase-chips button{color:var(--blue);background:#f4f9ff;border:1px solid #bad4ee;border-radius:99px;padding:7px 9px;font-size:10px}.completion-card{background:linear-gradient(135deg,#fff,#f2f8ff);flex-direction:column;gap:12px;display:flex}.completion-card h2{margin-bottom:5px}.completion-card p{color:var(--muted);margin:0}.complete-btn{min-height:54px;font-size:16px}@media (max-width:820px){.main-content{padding-left:14px;padding-right:14px}.metric-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}.client-grid,.user-grid,.product-grid,.settings-grid,.rule-list,.planning-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.auth-page{grid-template-columns:1fr}.auth-visual{min-height:260px;padding:36px 28px}.auth-visual h1{font-size:39px}.auth-visual p{font-size:15px}.auth-card{padding:28px 20px}.info-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){:root{--radius:16px}.main-content{padding-top:81px;padding-bottom:96px}.topbar{height:62px;padding:0 14px}.brand-mark{width:37px;height:37px}.hero-card{min-height:170px;padding:22px}.hero-card h1{font-size:28px}.progress-ring{width:84px;height:84px}.progress-ring:after{inset:7px}.metric-grid{gap:8px}.metric-grid .card{padding:13px;display:block}.metric-grid strong{margin-top:5px;display:block}.quick-grid{gap:8px}.quick-grid button{padding:14px}.section-title{align-items:flex-start}.section-title h2{font-size:21px}.section-title .btn{padding:9px 11px}.action-pair .btn{padding:10px;font-size:0}.action-pair .btn .icon{margin:0}.field-grid,.field-grid.three{grid-template-columns:1fr}.bottom-nav{border-radius:20px;width:calc(100% - 14px);height:66px;bottom:7px}.bottom-nav a{font-size:9px}.modal-backdrop{align-items:flex-end;padding:10px}.modal{border-radius:24px 24px 14px 14px;max-height:92vh;padding:22px 17px}.report-list>button{padding:14px}.report-list p{font-size:11px}.report-side small{font-size:9px}.photo-grid{grid-template-columns:repeat(2,1fr)}.stop-header{grid-template-columns:40px 1fr auto;padding:10px 11px}.stop-header h1{font-size:16px}.stop-header p{font-size:10px}.stop-header-actions{flex-direction:column;gap:3px}.stop-header-actions .connection{padding:4px 6px;font-size:9px}.skip-link{padding:5px 7px;font-size:10px}.stop-body{padding:11px 9px 90px}.stop-info{padding:15px}.round-action span{display:none}.readings-grid{grid-template-columns:1fr 1fr;gap:7px}.reading-card{padding:9px}.reading-card b{font-size:10px}.reading-meta{flex-direction:column;gap:2px}.suggestion-head>strong{font-size:17px}.workflow-content{padding:11px}.workflow-title{padding:13px}.workflow-title h2{font-size:15px}.workflow-title i{width:29px;height:29px}.auth-visual{min-height:220px}.auth-logo{border-radius:18px;width:58px;height:58px}.auth-visual h1{margin:18px 0 10px;font-size:34px}.auth-card{width:100%}.toast{bottom:83px}}.local-warning{background:var(--orange-soft);color:#70430c;border:1px solid #f2d2a4;border-radius:13px;flex-direction:column;gap:3px;padding:12px;display:flex}.local-warning b{font-size:12px}.local-warning span{font-size:11px;line-height:1.4}.feature-list{color:var(--muted);padding-left:20px;line-height:1.9}.photo-placeholder{aspect-ratio:4/3;color:var(--muted);background:#edf3f8;place-items:center;font-size:12px;display:grid}.storage-meter{background:#e6edf4;border-radius:99px;height:9px;overflow:hidden}.storage-meter>i{background:var(--blue);border-radius:99px;height:100%;display:block}.local-mode-pill{background:var(--green-soft);color:var(--green);border-radius:99px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}:root{--pss-blue:#3569ad;--pss-blue-2:#2d83c9;--pss-pale:#eaf5fa;--pss-cyan:#12c7c6;--pss-green:#86c928;--pss-orange:#ec9135;--pss-text:#334155;--pss-line:#d1d5db}html,body,#root{background:#fff;min-height:100%}body{color:var(--pss-text);background:#fff}.pss-shell{background:#fff;min-height:100vh}.pss-main{background:#fff;width:min(760px,100%);min-height:100vh;margin:0 auto;padding:76px 0 32px}.pss-topbar{z-index:60;height:76px;padding:max(env(safe-area-inset-top),8px) 18px 8px;background:linear-gradient(100deg,var(--pss-blue),var(--pss-blue-2));color:#fff;box-shadow:none;grid-template-columns:48px 1fr 48px;align-items:center;display:grid;position:fixed;inset:0 0 auto}.pss-menu-button,.pss-bell,.pss-title{color:#fff;background:0 0;border:0}.pss-menu-button,.pss-bell{place-items:center;width:44px;height:44px;padding:0;display:grid}.pss-title{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex}.pss-title span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:23px;font-weight:500;overflow:hidden}.pss-title small{color:#ffffffbf;display:none}.pss-bell{position:relative}.pss-bell b{color:#fff;background:#d72f35;border:2px solid #ffffffe6;border-radius:999px;place-items:center;min-width:28px;height:24px;padding:0 5px;font-size:12px;display:grid;position:absolute;top:0;right:-3px}.pss-drawer-layer{z-index:120;background:#0a203e52;position:fixed;inset:0}.pss-drawer{color:#fff;background:linear-gradient(155deg,#315e9f 0%,#2d80c6 78%,#3aa0e4 100%);flex-direction:column;width:min(310px,84vw);height:100%;animation:.16s ease-out drawerIn;display:flex;box-shadow:10px 0 30px #0f264633}@keyframes drawerIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.pss-drawer-head{min-height:105px;padding:env(safe-area-inset-top) 16px 12px;border-bottom:1px solid #ffffff8c;align-items:flex-end;gap:12px;display:flex}.pss-drawer-head button{color:#fff;background:0 0;border:0;place-items:center;width:38px;height:38px;display:grid}.pss-drawer-head div{flex-direction:column;padding-bottom:7px;display:flex}.pss-drawer-head b{font-size:18px}.pss-drawer-head small{color:#ffffffbf;font-size:12px}.pss-drawer nav{flex:1;overflow:auto}.pss-drawer nav button{color:#fff;text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffffa6;align-items:center;gap:15px;width:100%;min-height:72px;padding:0 17px;font-size:20px;font-weight:700;display:flex}.pss-drawer nav button.active,.pss-drawer nav button:active{background:#ffffff1f}.pss-drawer-foot{padding:14px 16px calc(16px + env(safe-area-inset-bottom));background:#12457e2e;flex-direction:column;gap:12px;display:flex}.pss-drawer-foot>button{color:#fff;background:0 0;border:1px solid #ffffff8c;border-radius:6px;align-items:center;gap:10px;padding:11px;font-weight:700;display:flex}.pss-local-status{color:#fff;font-size:11px}.pss-local-status:before{content:"";background:#8bcf2d;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.pss-local-status.offline:before{background:#ffb347}.pss-route-page{background:#fff;min-height:calc(100vh - 76px);padding:28px 0 40px}.pss-date-switcher{grid-template-columns:62px minmax(0,240px) 62px;justify-content:center;align-items:center;gap:10px;padding:0 18px;display:grid}.pss-date-switcher>button{width:62px;height:62px;color:var(--pss-blue);background:#f4f5f6;border:0;border-radius:50%;place-items:center;display:grid}.pss-date-switcher label{border:2px solid var(--pss-blue);color:#171717;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:11px;height:60px;padding:0 16px;display:flex;position:relative}.pss-date-switcher label span{text-transform:capitalize;white-space:nowrap;font-size:18px}.pss-date-switcher input{opacity:0;cursor:pointer;position:absolute;inset:0}.pss-view-tabs{grid-template-columns:1fr 1fr;gap:14px;width:min(365px,100% - 44px);margin:48px auto 28px;display:grid}.pss-view-tabs button{border:2px solid var(--pss-blue);height:52px;color:var(--pss-blue);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:20px;display:flex}.pss-view-tabs button.active{background:var(--pss-blue);color:#fff}.pss-loading{color:#888;justify-content:center;align-items:center;gap:17px;height:105px;font-size:18px;display:flex}.pss-loading i{border:5px solid #3e454d;border-color:#3e454d #3e454d #0000 #0000;border-radius:50%;width:36px;height:36px;animation:.75s linear infinite spin}.pss-paused-link{color:var(--pss-orange);background:0 0;border:0;align-items:center;gap:4px;margin:38px 34px 10px;padding:0;font-size:17px;font-weight:700;text-decoration:underline;display:flex}.pss-route-list{flex-direction:column;display:flex}.pss-route-row{text-align:left;width:100%;min-height:155px;color:var(--pss-text);background:#fff;border:0;border-bottom:1px solid #c6c9cc;grid-template-columns:72px 1fr auto;gap:14px;padding:26px 20px 24px 0;display:grid;position:relative}.pss-route-number{text-align:center;padding-top:2px;font-size:21px}.pss-route-row h2{margin:0 0 7px;font-size:24px;font-weight:500;line-height:1.22}.pss-route-row p{color:#222;margin:0 0 7px;font-size:17px}.pss-route-row address{color:#8b8b8b;font-size:16px;font-style:normal;line-height:1.35}.pss-route-row small{color:#d87e24;margin-top:8px;display:block}.pss-route-state{color:#667;background:#eef3f7;border-radius:999px;align-self:start;padding:5px 8px;font-size:10px;font-weight:800}.pss-route-state.completed{color:#23844d;background:#e7f6eb}.pss-route-state.skipped{color:#b73c3c;background:#fff0ef}.pss-route-state.arrived,.pss-route-state.in_progress{color:#07828b;background:#e9fafa}.pss-no-stops{text-align:center;color:#1f2937;padding:60px 20px}.pss-no-stops>div{justify-content:center;gap:18px;display:flex}.pss-no-stops p{font-size:18px}.pss-map-panel{padding:0 20px 30px}.pss-map-faux{background-color:#edf4ed;background-image:linear-gradient(35deg,#0000 48%,#dbe6ec 49% 51%,#0000 52%),linear-gradient(125deg,#0000 48%,#dbe6ec 49% 51%,#0000 52%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:90px 90px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #cbd5df;border-radius:4px;height:380px;position:relative;overflow:hidden}.pss-map-faux span{background:var(--pss-blue);color:#fff;border-radius:50% 50% 50% 0;place-items:center;width:34px;height:34px;font-weight:800;display:grid;position:absolute;transform:rotate(-45deg)}.pss-map-faux span:first-letter{transform:rotate(45deg)}.pss-map-panel>button{background:var(--pss-blue);color:#fff;border:0;border-radius:5px;justify-content:center;align-items:center;gap:10px;width:100%;height:50px;margin-top:15px;font-weight:700;display:flex}.pss-page{background:var(--pss-pale);min-height:calc(100vh - 76px);padding:28px 18px 60px}.pss-page-heading{text-align:center;margin-bottom:20px}.pss-page-heading h1{margin-bottom:5px;font-size:26px}.pss-page-heading p{color:#6b7280}.pss-flat-card{background:#fff;border:1px solid #d8dde1;border-radius:8px;box-shadow:0 2px 5px #21364d1f}.shopping-add{grid-template-columns:1fr 64px 52px;margin-bottom:18px;display:grid;overflow:hidden}.shopping-add input{border:0;border-right:1px solid #ddd;outline:none;min-width:0;height:54px;padding:0 13px}.shopping-add .qty-input{text-align:center}.shopping-add button{color:var(--pss-green);background:#fff;border:0;place-items:center;display:grid}.shopping-list header{border-bottom:1px solid #e5e7eb;padding:17px 18px}.shopping-list h2{margin:0;font-weight:500}.shopping-list article{border-bottom:1px solid #e5e7eb;grid-template-columns:34px 1fr 38px;align-items:center;gap:10px;padding:14px 16px;display:grid}.shopping-list article:last-child{border-bottom:0}.shopping-list article.done b{color:#8a8a8a;text-decoration:line-through}.shopping-list article b,.shopping-list article small{display:block}.shopping-list article small{margin-top:3px}.shopping-check{border:2px solid var(--pss-blue);color:#fff;background:#fff;border-radius:3px;place-items:center;width:27px;height:27px;display:grid}.shopping-list article.done .shopping-check{background:var(--pss-blue)}.shopping-delete{color:#d9334e;background:0 0;border:0}.pss-empty-shopping{text-align:center;color:#a7b4c7;padding:52px 20px}.pss-empty-shopping p{font-size:17px}.stop-page{background:var(--pss-pale);min-height:100vh;color:var(--pss-text)}.stop-header{z-index:70;height:76px;padding:max(env(safe-area-inset-top),7px) 18px 7px;background:linear-gradient(100deg,var(--pss-blue),var(--pss-blue-2));color:#fff;border:0;grid-template-columns:64px 1fr 76px;align-items:center;display:grid;position:sticky;top:0}.stop-header>button:first-child{color:#fff;background:0 0;border:0;border-radius:0;place-items:center;width:44px;height:44px;display:grid}.stop-header>div{text-align:center}.stop-header h1{margin:0;font-size:23px;font-weight:500}.skip-link{color:#fff;background:0 0;border:0;padding:9px 0;font-size:20px;font-weight:800}.stop-body{flex-direction:column;gap:20px;width:min(690px,100%);margin:0 auto;padding:26px 20px 80px;display:flex}.stop-body>.card,.workflow-section{background:#fff;border:1px solid #d9dde1;border-radius:8px;overflow:hidden;box-shadow:0 2px 5px #21364d21}.stop-info{padding:28px}.pss-stop-title h2{margin:10px 0 4px;font-size:25px;font-weight:500}.pss-stop-title p{margin:0 0 5px;font-size:18px}.pss-stop-title address{color:#7d7d7d;font-style:normal;line-height:1.35}.stop-info .badge{border-radius:3px}.info-grid{background:#f7f7f7;border-radius:5px;grid-template-columns:repeat(4,1fr);gap:0;margin:24px 0 28px;display:grid}.info-grid>div{background:0 0;border-radius:0;min-width:0;padding:13px 10px}.info-grid span{color:#222;margin-bottom:5px;font-size:11px}.info-grid b{color:#777;white-space:normal;font-size:12px}.pss-notes{background:#f7f7f7;border-radius:6px;margin-bottom:20px;padding:16px}.pss-notes>div{color:#111;justify-content:space-between;align-items:center;display:flex}.pss-notes b{font-size:18px;font-weight:500}.pss-notes p{color:#777;white-space:pre-wrap;margin:7px 0 0;font-size:16px;line-height:1.45}.pss-stop-actions{grid-template-columns:repeat(3,1fr);gap:6px;margin:22px 0;display:grid}.pss-stop-actions button{color:var(--pss-blue);background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;font-size:15px;display:flex;position:relative}.pss-stop-actions small{width:18px;height:18px;color:var(--pss-blue);border:1px solid var(--pss-blue);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;top:0;right:24%}.arrival-actions{justify-content:center;margin:18px 0 0}.arrival-actions .btn{min-width:260px;color:var(--pss-blue);border:2px solid var(--pss-blue);background:#fff;border-radius:6px;font-size:18px}.workflow-section{border-radius:8px}.workflow-title{background:#fff;border:0;padding:20px 26px}.workflow-title>span{gap:0}.workflow-title i{display:none}.workflow-title h2{margin:0;font-size:22px;font-weight:500}.workflow-title p{color:#7895aa;margin-top:4px;font-size:12px}.workflow-title>b{color:var(--pss-blue);font-weight:500}.workflow-content{border-top:0;padding:20px 27px 26px}.readings-grid{flex-direction:column;gap:0;display:flex}.reading-card{background:#fff;border:0;border-bottom:1px solid #d6d7d8;border-radius:0;grid-template-columns:minmax(0,1.2fr) minmax(130px,.7fr);gap:12px 18px;padding:17px 0;display:grid}.reading-card.in-range,.reading-card.out-range{background:#fff;border-color:#d6d7d8}.reading-card>div:first-child{align-items:flex-start}.reading-card b{font-size:16px;font-weight:500}.required{font-size:0}.required:after{content:"*";color:#d60018;font-size:22px}.reading-input{background:0 0;border:1px solid #aaa;border-radius:7px;grid-area:1/2/span 2;align-self:center;height:58px}.reading-input input{text-align:center;padding:7px;font-size:21px;font-weight:500}.reading-input span{color:#333;padding-right:8px;font-size:15px}.reading-meta{color:#0b8ab7;flex-direction:column;grid-column:1;gap:3px;font-size:12px;display:flex}.reading-meta span:last-child{color:#4a83a0}.calculated-row{background:#f5fbfd;border-radius:0;margin-top:10px}.suggestion-list{gap:0}.suggestion-card{box-shadow:none;border:0;border-bottom:1px solid #d6d7d8;border-radius:0;padding:17px 0}.suggestion-head h3{font-size:17px;font-weight:500}.suggestion-head>strong{color:#0d86b2;font-size:18px;font-weight:500}.suggestion-head p{font-size:12px}.unit-input{border-radius:6px;height:54px}.unit-input input{text-align:center}.legal-hint{color:#88959e}.checklist-list{gap:0}.checklist-list>label{border:0;border-radius:0;grid-template-columns:32px 1fr;padding:15px 4px;background:#fff!important}.checklist-list>label>div{grid-column:2}.custom-check{border:2px solid var(--pss-blue);border-radius:4px;width:29px;height:29px}.checked .custom-check{background:var(--pss-blue);border-color:var(--pss-blue)}.checklist-list b{font-size:17px;font-weight:500}.checklist-list small{color:#5d9fc1;margin-top:6px;font-size:12px}.photo-actions{gap:12px}.photo-actions button{border:2px solid var(--pss-blue);color:var(--pss-blue);background:#fff;border-radius:6px;padding:15px}.photo-grid.local{grid-template-columns:1fr;gap:26px}.photo-grid.local figure{background:#eef;border-radius:10px;position:relative;overflow:hidden}.photo-grid.local img{aspect-ratio:4/3;object-fit:cover;width:100%;max-height:none;display:block}.photo-grid.local figcaption{color:#fff;background:0 0;padding:0;position:absolute;bottom:12px;left:18px;right:14px}.photo-grid.local figcaption span{background:#007ea6d1;border-radius:999px;padding:7px 14px;font-weight:800}.photo-grid.local figcaption button{color:#fff;background:#dc3150;border-radius:50%;width:42px;height:42px;font-size:23px;position:absolute;bottom:calc(100% + 230px);right:0}.phrase-chips button{border-radius:5px}.completion-card{background:#fff}.completion-card .complete-btn{background:var(--pss-green);border-radius:6px}@media (max-width:560px){.pss-main{padding-top:76px}.pss-topbar{height:76px}.pss-title span{font-size:22px}.pss-date-switcher{grid-template-columns:56px minmax(0,235px) 56px;gap:8px}.pss-date-switcher>button{width:56px;height:56px}.pss-date-switcher label{height:58px}.pss-view-tabs{margin-top:46px}.pss-route-row{grid-template-columns:70px 1fr;min-height:145px;padding-right:13px}.pss-route-row h2{font-size:21px}.pss-route-row p{font-size:16px}.pss-route-row address{font-size:15px}.pss-route-state{display:none}.stop-header{grid-template-columns:52px 1fr 64px;height:76px;padding-left:14px;padding-right:14px}.stop-header h1{font-size:21px}.skip-link{font-size:19px}.stop-body{padding:20px 20px 70px}.stop-info{padding:20px}.info-grid{grid-template-columns:repeat(3,1fr)}.info-grid>div:nth-child(4){grid-column:1/-1}.pss-notes p{font-size:15px}.workflow-title{padding:18px 27px}.workflow-title h2{font-size:20px}.workflow-content{padding:16px 27px 23px}.reading-card{grid-template-columns:minmax(0,1fr) 120px}.reading-card b{font-size:15px}.reading-input{height:55px}.photo-grid.local figcaption button{bottom:calc(100% + 190px)}.shopping-add{grid-template-columns:1fr 54px 48px}}
.auth-role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.auth-role-card{text-align:left;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:18px;min-height:185px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;transition:border-color .15s,transform .15s,box-shadow .15s}.auth-role-card:hover{border-color:#8dbcf1;box-shadow:0 10px 28px #173a6420;transform:translateY(-2px)}.auth-role-card b{font-size:18px}.auth-role-card small{color:var(--muted);line-height:1.45}.auth-role-icon{width:52px;height:52px;border-radius:16px;place-items:center;display:grid}.auth-role-card.admin .auth-role-icon{color:var(--blue);background:var(--blue-soft)}.auth-role-card.technician .auth-role-icon{color:#087b86;background:var(--aqua-soft)}.auth-back{justify-content:flex-start;margin:0 0 8px;padding-left:0}.tech-invite-box{background:var(--aqua-soft);border:1px solid #b9e8ed;border-radius:16px;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:16px;display:flex}.tech-invite-box p{color:#37636a;margin:5px 0 0;font-size:13px;line-height:1.45}.tech-file-button{white-space:nowrap}.form-success{color:var(--green);background:var(--green-soft);border:1px solid #bde5ce;border-radius:12px;margin-bottom:14px;padding:11px 13px;font-size:13px;font-weight:700}.user-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.user-actions .btn{padding-left:10px;padding-right:10px;font-size:12px}.assignment-box{background:var(--surface-2);border:1px solid var(--line);border-radius:15px;padding:15px}.assignment-box>p{color:var(--muted);margin:5px 0 12px;font-size:12px;line-height:1.4}.assignment-list{border:1px solid var(--line);border-radius:14px;max-height:300px;overflow:auto}.assignment-list label{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px;display:flex}.assignment-list label:last-child{border-bottom:0}.assignment-list input{width:20px;height:20px;flex:none}.assignment-list span,.assignment-list b,.assignment-list small{display:block}.assignment-list small{margin-top:3px}.assignment-list label:has(input:checked){background:var(--blue-soft)}
@media (max-width:820px){.auth-role-grid{grid-template-columns:1fr}.auth-role-card{min-height:0}.tech-invite-box{align-items:stretch;flex-direction:column}.tech-file-button{width:100%}.user-actions{grid-template-columns:1fr}}

/* BR Pools 2.5.0 — route, compensi, impianti, dosaggi e GPS */
.products-mode-shell{display:flex;flex-direction:column;gap:14px}.products-mode-toggle{width:min(1180px,100%);margin:0 auto;background:#eef5fd;border:1px solid #c9def5;border-radius:14px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.products-mode-toggle span{color:#315370;font-size:13px;font-weight:800}.products-mode-toggle button{color:var(--blue);background:#fff;border:1px solid #b9d2ee;border-radius:10px;padding:8px 11px;font-size:12px;font-weight:800}.dose-explainer{background:linear-gradient(135deg,#eef7ff,#eefcfa);border:1px solid #c8e2f3;border-radius:16px;padding:16px 18px}.dose-explainer b{display:block;margin-bottom:5px}.dose-explainer p{color:#4d6579;margin:0;line-height:1.45}.simple-product-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;display:grid}.simple-product-card{display:flex;flex-direction:column;gap:12px}.simple-product-card h3{margin:3px 0 0}.label-dose-line{color:#064f9f;background:#eef6ff;border:1px solid #c8def7;border-radius:12px;padding:13px 14px;font-weight:800;line-height:1.4}.simple-dose-modal{max-height:min(88vh,850px);overflow:auto}.label-dose-builder{grid-template-columns:1fr .8fr 1fr;gap:12px;display:grid}.dose-preview{background:#eaf8f1;border:1px solid #bee4cf;border-radius:13px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.dose-preview span{color:#547064;font-size:12px;font-weight:700}.dose-preview b{color:#116c47}.simple-advanced-details{border:1px solid var(--line);border-radius:12px;padding:11px 13px}.simple-advanced-details summary{color:#39556f;cursor:pointer;font-size:13px;font-weight:800}.simple-advanced-details[open] summary{margin-bottom:13px}.arrival-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}.arrival-actions>.btn{align-self:center}.gps-proof{background:#edf9f2;border:1px solid #b8e2ca;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.gps-proof div,.gps-report-row div{display:flex;flex-direction:column;gap:3px;min-width:0}.gps-proof b,.gps-report-row b{color:#126d49}.gps-proof span,.gps-report-row span{font-size:13px}.gps-proof small,.gps-report-row small{overflow-wrap:anywhere;line-height:1.4}.gps-proof a,.gps-report-row a{color:var(--blue);white-space:nowrap;border:1px solid #bad3ef;border-radius:9px;padding:8px 10px;font-size:12px;font-weight:800}.gps-consent-note{text-align:center;line-height:1.35}.gps-report-card{display:flex;flex-direction:column;gap:12px}.gps-report-row{background:#f4faf7;border:1px solid #d2eadc;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px}.completion-card .complete-btn:disabled{opacity:.72}.completion-card p{line-height:1.45}
@media(max-width:680px){.products-mode-toggle{align-items:stretch;flex-direction:column}.products-mode-toggle button{width:100%}.label-dose-builder{grid-template-columns:1fr}.gps-proof,.gps-report-row{align-items:stretch;flex-direction:column}.gps-proof a,.gps-report-row a{text-align:center}.simple-dose-modal{max-height:92vh}.simple-product-grid{grid-template-columns:1fr}}


/* BR Pools 2.5.0 — smart real-time chemical dosing */
.inline-dose-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.inline-dose-smart {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 14px;
  padding: 11px 12px;
  border: 1px solid rgba(8, 102, 216, 0.22);
  border-radius: 13px;
  background: linear-gradient(135deg, rgba(8, 102, 216, 0.08), rgba(35, 181, 128, 0.08));
}
.inline-dose-smart span {
  display: block;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
  color: #0866d8;
}
.inline-dose-smart small {
  display: block;
  margin-top: 2px;
  color: var(--muted, #64748b);
}
.inline-dose-smart strong {
  font-size: 1.15rem;
  white-space: nowrap;
  color: #073b74;
}
.inline-dose-smart p {
  grid-column: 1 / -1;
  margin: 0;
  font-size: .78rem;
  color: #8a4b08;
}
.pool-assignment-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid rgba(15, 23, 42, .09);
}
.pool-assignment-summary > div {
  min-width: 0;
}
.pool-assignment-summary span,
.pool-assignment-summary b {
  display: block;
}
.pool-assignment-summary span {
  font-size: .76rem;
  color: var(--muted, #64748b);
}
.pool-assignment-summary b {
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pool-product-list {
  display: grid;
  gap: 9px;
  max-height: min(52vh, 520px);
  overflow: auto;
  margin: 18px 0;
  padding-right: 3px;
}
.pool-product-choice {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px;
  border: 1px solid rgba(15, 23, 42, .11);
  border-radius: 13px;
  background: #fff;
  cursor: pointer;
}
.pool-product-choice:has(input:checked) {
  border-color: rgba(8, 102, 216, .5);
  background: rgba(8, 102, 216, .055);
}
.pool-product-choice input {
  width: 20px;
  height: 20px;
  accent-color: #0866d8;
}
.pool-product-choice b,
.pool-product-choice span {
  display: block;
}
.pool-product-choice span {
  margin-top: 2px;
  font-size: .82rem;
  color: var(--muted, #64748b);
}
.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}
@media (max-width: 620px) {
  .pool-assignment-summary {
    align-items: stretch;
    flex-direction: column;
  }
  .pool-assignment-summary button {
    width: 100%;
  }
  .inline-dose-smart strong {
    font-size: 1.05rem;
  }
}
/* BR Pools v2.5.0 — route ricorrenti, compensi, schede impianto */
.required-star{color:#d92d20;font-weight:900}.required-readings-note{margin:10px 2px 0;color:#667085;font-size:.82rem}.last-reading-button{border:0;background:transparent;padding:0;color:#0866d8;font:inherit;font-size:.8rem;cursor:pointer;text-align:right}.last-reading-button b{font-weight:800}.last-reading-button:active{transform:scale(.98)}
.inline-dose-use{grid-column:1/-1;border:1px solid #9fc5ff;background:#eef6ff;color:#075dbf;border-radius:9px;padding:8px 10px;font-weight:800;cursor:pointer}.inline-dose-use:hover{background:#e1efff}
.recurrence-note{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:12px 13px;font-size:.88rem;line-height:1.35}.recurrence-note.weekly{background:#eef6ff;color:#074f9f;border:1px solid #c7ddff}.recurrence-note.once{background:#f7f7f8;color:#475467;border:1px solid #e4e7ec}.route-admin-list>div{grid-template-columns:34px 1fr auto}.route-pay-line{color:#0866d8!important;font-weight:700}.recurring-route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.recurring-route-card{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.recurring-route-card h3{margin:4px 0 5px}.recurring-route-card p{margin:0 0 8px;color:#667085}.recurring-route-card strong{font-size:1.05rem}.danger-link{border:0;background:transparent;color:#b42318;font-weight:800;cursor:pointer;padding:6px}.success-text{color:#067647;font-weight:700}
.payroll-filter-grid{grid-template-columns:1.4fr 1fr 1fr}.payroll-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 22px}.payroll-totals .card{display:flex;flex-direction:column;gap:5px}.payroll-totals span{color:#667085}.payroll-totals strong{font-size:1.65rem}.payroll-totals small{color:#667085}.payroll-totals .amount-due{border-color:#f4b4ac;background:#fff8f6}.payroll-totals .amount-due strong{color:#b42318}.payroll-totals .amount-clear{border-color:#a9dfbf;background:#f4fff8}.payroll-totals .amount-clear strong{color:#067647}.payroll-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:18px;align-items:start}.payroll-layout aside{display:grid;gap:14px;position:sticky;top:90px}.payroll-interventions{display:grid;gap:10px}.payroll-intervention-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,1.15fr);gap:16px;padding:15px;border:1px solid #e4e7ec;border-radius:14px;background:#fff}.payroll-intervention-main h3{margin:4px 0}.payroll-intervention-main p{margin:0 0 6px;color:#667085}.text-link{padding:0;border:0;background:transparent;color:#0866d8;font-weight:800;cursor:pointer}.payroll-edit{display:grid;grid-template-columns:130px minmax(150px,1fr) auto;gap:9px;align-items:end}.payroll-edit label{display:grid;gap:5px}.payroll-edit label>span{font-size:.76rem;color:#667085;font-weight:700}.payroll-edit input{width:100%}.payroll-edit>button{min-height:43px;border:0;border-radius:10px;background:#0866d8;color:#fff;padding:0 14px;font-weight:800}.payment-history{display:grid;gap:10px}.payment-history>div{padding:10px 0;border-bottom:1px solid #eaecf0}.payment-history>div:last-child{border-bottom:0}.payment-history small{display:block;color:#667085;margin-top:2px}.payment-history p{margin:5px 0 0;color:#475467;font-size:.88rem}
.equipment-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.equipment-admin-card{display:grid;gap:13px}.equipment-admin-card h3{margin:4px 0}.equipment-admin-card p{margin:0;color:#667085}.equipment-preview{display:grid;gap:5px;padding:11px;border-radius:10px;background:#f8fafc}.equipment-preview span{font-size:.86rem;color:#475467}.equipment-edit-modal{max-width:760px}.equipment-view-modal{max-width:620px}.equipment-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.equipment-detail-grid>div{padding:11px;border:1px solid #e4e7ec;border-radius:10px}.equipment-detail-grid span{display:block;color:#667085;font-size:.76rem;margin-bottom:3px}.equipment-notes{padding:13px;background:#f8fafc;border-radius:10px}.equipment-notes p{white-space:pre-wrap;margin:7px 0 0}.pool-chips button{border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:6px 10px;cursor:pointer}
@media(max-width:900px){.payroll-layout{grid-template-columns:1fr}.payroll-layout aside{position:static}.payroll-intervention-row{grid-template-columns:1fr}.payroll-filter-grid,.payroll-totals{grid-template-columns:1fr}.payroll-edit{grid-template-columns:1fr 1fr}.payroll-edit>button{grid-column:1/-1}.equipment-detail-grid{grid-template-columns:1fr}}
@media(max-width:560px){.recurring-route-card{flex-direction:column}.payroll-edit{grid-template-columns:1fr}.payroll-totals strong{font-size:1.45rem}.last-reading-button{text-align:left}}
.property-coordinates{display:grid;gap:9px;padding:12px;border:1px solid #dce6f2;border-radius:12px;background:#f8fbff}.coordinate-capture-button{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #9fc5ff;background:#eef6ff;color:#075dbf;border-radius:10px;padding:10px 12px;font-weight:800;cursor:pointer}.internal-report-note{border-color:#f1c27d;background:#fffaf1}.internal-report-note h3{color:#7a4b00}
.property-coordinates{display:grid;gap:9px;padding:12px;border:1px solid #dce6f2;border-radius:12px;background:#f8fbff}.coordinate-capture-button{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #9fc5ff;background:#eef6ff;color:#075dbf;border-radius:10px;padding:10px 12px;font-weight:800;cursor:pointer}.internal-report-note{border-color:#f1c27d;background:#fffaf1}.internal-report-note h3{color:#7a4b00}

/* BR Pools v2.6.0 — redditività e backup JSON WhatsApp */
.client-price-summary{display:flex;justify-content:space-between;align-items:center;margin:10px 0;padding:9px 11px;border-radius:10px;background:#eef6ff;color:#075dbf}.client-price-summary span{font-size:.8rem}.financial-planning-grid{grid-template-columns:1fr 1fr}.profit-settings-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:16px;margin-bottom:16px;align-items:start}.client-rate-list{display:grid;gap:8px;max-height:360px;overflow:auto}.client-rate-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:9px;align-items:center;padding:10px;border:1px solid #e4e7ec;border-radius:11px}.client-rate-row small{display:block;color:#667085;margin-top:2px}.client-rate-row button{min-height:40px;border:0;border-radius:9px;background:#0866d8;color:#fff;padding:0 12px;font-weight:800}.profit-filter-grid{grid-template-columns:1fr 1fr 1fr 1fr}.profit-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:16px 0 22px}.profit-totals .card{display:flex;flex-direction:column;gap:5px}.profit-totals span,.profit-totals small{color:#667085}.profit-totals strong{font-size:1.55rem}.profit-totals .net-positive{background:#f4fff8;border-color:#a9dfbf}.profit-totals .net-positive strong{color:#067647}.profit-totals .net-negative{background:#fff8f6;border-color:#f4b4ac}.profit-totals .net-negative strong{color:#b42318}.profit-list{display:grid;gap:11px}.profit-row{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(185px,.55fr) minmax(430px,1.4fr);gap:14px;padding:15px;border:1px solid #e4e7ec;border-radius:14px;background:#fff;align-items:center}.profit-row-main h3{margin:4px 0}.profit-row-main p{margin:0 0 5px;color:#667085}.profit-live-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.profit-live-summary>div{padding:10px;border-radius:10px;background:#f8fafc}.profit-live-summary span,.profit-live-summary small{display:block;color:#667085;font-size:.76rem}.profit-live-summary b{display:block;font-size:1.08rem;margin:3px 0}.profit-live-summary .positive{background:#f0fdf4}.profit-live-summary .positive b{color:#067647}.profit-live-summary .negative{background:#fff1f0}.profit-live-summary .negative b{color:#b42318}.profit-edit{display:grid;grid-template-columns:125px 125px minmax(145px,1fr) auto;gap:8px;align-items:end}.profit-edit label{display:grid;gap:5px}.profit-edit label>span{font-size:.76rem;color:#667085;font-weight:700}.profit-edit input{width:100%}.profit-edit>button{min-height:43px;border:0;border-radius:10px;background:#0866d8;color:#fff;padding:0 13px;font-weight:800}.profit-edit>.form-error{grid-column:1/-1}.backup-share-actions{display:flex;flex-wrap:wrap;gap:9px}.whatsapp-backup-card{border-color:#9ddbb0;background:#f7fff9}.whatsapp-backup-card h3{color:#126b35}
@media(max-width:1050px){.profit-row{grid-template-columns:1fr 1fr}.profit-edit{grid-column:1/-1}.profit-settings-grid{grid-template-columns:1fr}.profit-totals{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.financial-planning-grid,.profit-filter-grid,.profit-totals{grid-template-columns:1fr}.profit-row{grid-template-columns:1fr}.profit-edit{grid-template-columns:1fr 1fr}.profit-note-field{grid-column:1/-1}.profit-edit>button{grid-column:1/-1}.client-rate-row{grid-template-columns:1fr 110px}.client-rate-row button{grid-column:1/-1}.profit-live-summary{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.profit-edit,.profit-live-summary{grid-template-columns:1fr}.backup-share-actions>*{width:100%}}


/* BR Pools v2.7.0 — offline-first, Uploads e History */
.pss-topbar{grid-template-columns:48px minmax(0,1fr) 96px}
.pss-top-actions{display:flex;justify-content:flex-end;align-items:center;gap:2px}
.pss-refresh,.pss-top-actions .pss-bell{color:#fff;background:transparent;border:0;place-items:center;width:44px;height:44px;padding:0;display:grid;position:relative}
.pss-refresh.is-spinning .icon{animation:br-refresh-spin .8s linear infinite}
@keyframes br-refresh-spin{to{transform:rotate(360deg)}}
.sync-hero.offline{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.upload-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.upload-metrics .card{display:flex;flex-direction:column;gap:5px}
.upload-metrics span,.upload-metrics small{color:#667085}
.upload-metrics strong{font-size:1.7rem}
.upload-metrics .upload-error{background:#fff8f6;border-color:#f4b4ac}
.upload-metrics .upload-error strong{color:#b42318}
.upload-queue-card{padding:0;overflow:hidden}
.upload-queue-row{padding:15px 17px;border-bottom:1px solid #e4e7ec;display:flex;justify-content:space-between;gap:16px;align-items:center}
.upload-queue-row:last-child{border-bottom:0}
.upload-queue-row b,.upload-queue-row small,.upload-queue-row em{display:block}
.upload-queue-row small{margin-top:4px}
.upload-queue-row em{margin-top:5px;color:#b42318;font-size:.78rem;font-style:normal}
.upload-row-status{text-align:right;display:grid;justify-items:end;gap:5px}
.upload-admin-settings{margin-top:6px}
.history-filters{display:grid;gap:13px}
.history-filter-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:10px;align-items:end}
.history-filter-grid>.btn{min-height:44px}
.history-summary{display:flex;align-items:center;gap:8px;color:#667085}
.history-summary strong{font-size:1.45rem;color:#142033}
.history-report-list .history-reading-line{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.history-reading-line span{font-size:.78rem;color:#075dbf;background:#eef6ff;border-radius:999px;padding:5px 8px}
.history-reading-line b{font-weight:850}
@media(max-width:760px){.upload-metrics{grid-template-columns:1fr}.history-filter-grid{grid-template-columns:1fr 1fr}.history-filter-grid>.field:first-child{grid-column:1/-1}.history-filter-grid>.btn{grid-column:1/-1}.upload-queue-row{align-items:flex-start}.pss-title span{font-size:20px}}
@media(max-width:480px){.history-filter-grid{grid-template-columns:1fr}.history-filter-grid>.field:first-child{grid-column:auto}.upload-queue-row{flex-direction:column}.upload-row-status{text-align:left;justify-items:start}}
