:root{--navy:#0f1f33;--navy2:#172b45;--blue:#1677ff;--bg:#f4f7fb;--card:#fff;--text:#132238;--muted:#718096;--border:#e6ebf2;--green:#16a765;--orange:#f59e0b;--red:#ef4444;--shadow:0 8px 30px rgba(26,43,69,.06)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--navy),#0a1625);color:white;padding:18px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;padding:6px 6px 24px}.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--blue);display:grid;place-items:center;font-size:24px}.brand strong{display:block;font-size:20px}.brand span,.sidebar-footer span{display:block;color:#b9c7d8;font-size:12px;margin-top:2px}.nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#d7e0ec;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#1d4d7d;color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:16px 4px 4px;display:flex;align-items:center;gap:10px}.user-avatar{width:38px;height:38px;border-radius:50%;background:#67b7ff;display:grid;place-items:center;font-weight:700}.main{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.search-wrap{width:min(520px,55vw)}.search-wrap input{width:100%;border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:11px 14px;outline:none}.top-actions{display:flex;gap:12px;align-items:center}.icon-btn,.primary-btn,.secondary-btn,.link-btn,.chip{border:0;cursor:pointer}.icon-btn{background:#fff;position:relative;padding:8px}.badge{position:absolute;right:0;top:0;background:var(--red);color:#fff;border-radius:999px;font-size:10px;padding:2px 5px}.primary-btn{background:var(--blue);color:#fff;padding:11px 16px;border-radius:9px;font-weight:600}.secondary-btn{background:#edf2f7;color:var(--text);padding:11px 16px;border-radius:9px}.view{display:none;padding:22px}.active-view{display:block}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px}.page-heading h1{margin:0 0 6px;font-size:28px}.page-heading p{margin:0;color:var(--muted)}.date-box{color:var(--muted);font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:15px;box-shadow:var(--shadow);display:flex;gap:12px}.stat-card strong{font-size:26px;display:block}.stat-card span:not(.stat-icon){font-size:13px;display:block;margin-top:2px}.stat-card small{font-size:11px;color:var(--muted)}.stat-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center}.blue{background:#e9f2ff;color:var(--blue)}.green{background:#e9f8f0;color:var(--green)}.orange{background:#fff4df;color:var(--orange)}.red{background:#ffeded;color:var(--red)}.slate{background:#edf1f7}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr .65fr;gap:14px}.card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.card-header{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.card-header h2{margin:0;font-size:16px}.link-btn{background:transparent;color:var(--blue);font-size:12px}.filters{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}.chip{padding:7px 11px;border-radius:999px;background:#f5f7fb;color:#526179;font-size:12px}.chip.active{background:var(--blue);color:#fff}.job-row{display:grid;grid-template-columns:70px 1.5fr 1fr 100px;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #eef2f7}.job-row:last-child{border-bottom:0}.job-time strong{display:block}.job-time small,.job-main small,.job-person small{color:var(--muted)}.job-main strong{display:block;margin-bottom:2px}.status{display:inline-block;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:600}.status.green{background:#e7f8ef;color:#13864f}.status.orange{background:#fff0d8;color:#bd6b00}.status.blue{background:#e9f2ff;color:#1263ca}.status.red{background:#ffebeb;color:#d62d2d}.fake-map{height:348px;position:relative;background:linear-gradient(135deg,#eaf5e5,#e7f1fb);overflow:hidden}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px);background-size:32px 32px;transform:rotate(-7deg) scale(1.2)}.pin{position:absolute;display:flex;align-items:center;gap:6px;background:#fff;border-radius:12px;padding:6px 9px;box-shadow:0 4px 18px rgba(0,0,0,.12);font-size:11px}.pin>span{width:30px;height:30px;border-radius:50%;background:#ddebff;border:2px solid var(--blue);display:grid;place-items:center;font-weight:700}.pin small{color:var(--green)}.pin.danger>span{border-color:var(--red)}.pin.danger small{color:var(--red)}.p1{left:36%;top:30%}.p2{right:8%;top:45%}.p3{left:22%;top:56%}.p4{left:42%;bottom:10%}.attention-list{padding:6px 14px}.attention-item{padding:14px 4px;border-bottom:1px solid var(--border)}.attention-item:last-child{border-bottom:0}.attention-item b{display:block;font-size:13px}.attention-item span{display:block;color:#e34b2f;font-size:11px;margin-top:4px}.count-badge{background:var(--red);color:#fff;padding:3px 7px;border-radius:8px;font-size:12px}.employees-card{margin-top:14px}.employee-strip{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:8px;padding:10px}.employee{border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;gap:8px;align-items:center}.employee .avatar{width:34px;height:34px;border-radius:50%;background:#e7edf6;display:grid;place-items:center;font-weight:700}.employee strong{display:block;font-size:12px}.employee small{display:block;color:var(--muted);margin-top:2px}.employee .state{font-size:11px;margin-top:4px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:14px}.tool-summary{display:flex;align-items:center;justify-content:space-around;padding:22px}.donut{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;text-align:center;background:conic-gradient(var(--green) 0 315deg,var(--orange) 315deg 345deg,var(--red) 345deg);position:relative}.donut:after{content:"";position:absolute;width:76px;height:76px;background:#fff;border-radius:50%}.donut strong,.donut span{z-index:1}.donut strong{font-size:24px}.donut span{font-size:11px;color:var(--muted);margin-top:-40px}.legend{display:grid;gap:10px;font-size:12px}.legend span{display:flex;justify-content:space-between;gap:18px}.upcoming,.activity{padding:12px 16px}.upcoming p,.activity p{margin:0;padding:10px 0;border-bottom:1px solid var(--border);font-size:12px}.upcoming p:last-child,.activity p:last-child{border-bottom:0}.upcoming b,.upcoming span{display:block}.upcoming span{color:var(--muted);margin-top:3px}.placeholder-view{padding:40px}.placeholder-card{max-width:700px;margin:70px auto;background:#fff;border:1px solid var(--border);border-radius:18px;padding:34px;box-shadow:var(--shadow)}dialog{border:0;border-radius:16px;padding:0;width:min(560px,92vw);box-shadow:0 24px 70px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(10,22,37,.45)}dialog form{padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{margin:0}dialog label{display:grid;gap:6px;margin:12px 0;font-size:13px;font-weight:600}dialog input,dialog select{padding:10px 12px;border:1px solid var(--border);border-radius:9px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1.4fr 1fr}.attention-card{grid-column:1/-1}.employee-strip{grid-template-columns:repeat(4,1fr)}}
@media(max-width:820px){.app-shell{grid-template-columns:74px 1fr}.sidebar{padding:14px 9px}.brand div:last-child,.nav-item span,.sidebar-footer div:last-child{display:none}.brand{justify-content:center}.nav-item{text-align:center;padding:12px}.sidebar-footer{justify-content:center}.stats-grid,.bottom-grid,.dashboard-grid{grid-template-columns:1fr}.employee-strip{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 12px}.view{padding:14px}.page-heading{align-items:flex-start;gap:12px;flex-direction:column}.search-wrap{width:100%}.job-row{grid-template-columns:58px 1fr}.job-person,.job-row>.status{display:none}}

/* Pracownicy i ekipy */
.heading-actions{display:flex;gap:10px}.employees-view{padding-bottom:42px}.people-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.people-stat{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}.people-stat>span{width:42px;height:42px;border-radius:12px;background:#eef5ff;display:grid;place-items:center;font-size:20px}.people-stat strong{font-size:25px;display:block}.people-stat small{display:block;color:var(--muted);margin-top:2px}.section-block{margin:4px 0 20px}.section-title-row{display:flex;justify-content:space-between;align-items:end;margin-bottom:11px}.section-title-row h2{margin:0;font-size:18px}.section-title-row p{margin:5px 0 0;color:var(--muted);font-size:12px}.teams-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.team-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;text-align:left;box-shadow:var(--shadow);min-height:170px}.team-card-head{display:flex;align-items:start;justify-content:space-between}.team-card h3{margin:3px 0 0;font-size:17px}.team-card p{font-size:12px;line-height:1.5;color:var(--muted);min-height:36px}.eyebrow{font-size:9px;letter-spacing:.12em;color:var(--blue);font-weight:700}.kebab{border:0;background:#f6f8fb;border-radius:8px;padding:6px 8px;color:#66758a;cursor:pointer}.team-meta{display:flex;gap:14px;font-size:11px;border-top:1px solid var(--border);padding-top:10px}.team-footer{display:flex;align-items:center;justify-content:space-between;margin-top:13px}.avatar-stack{display:flex;align-items:center;min-height:30px}.stack-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e9f2ff;border:2px solid #fff;margin-left:-6px;font-size:9px;font-weight:700}.stack-avatar:first-child{margin-left:0}.add-team-card{border:1px dashed #b7c8dc;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#36516f;cursor:pointer}.add-team-card:hover{border-color:var(--blue);background:#f8fbff}.add-team-card>span{font-size:28px;color:var(--blue)}.add-team-card small{margin-top:5px;color:var(--muted)}.people-table-card{overflow:hidden}.people-toolbar{gap:16px}.people-toolbar .subtle{display:block;color:var(--muted);font-size:11px;margin-top:4px}.table-search{width:260px;border:1px solid var(--border);background:#f8fafc;border-radius:9px;padding:9px 12px;outline:none}.table-wrap{overflow:auto}.people-table{width:100%;border-collapse:collapse;min-width:950px}.people-table th{padding:11px 14px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#8491a3;background:#fafbfd;border-bottom:1px solid var(--border)}.people-table td{padding:12px 14px;border-bottom:1px solid #edf1f5;font-size:12px}.people-table tbody tr:hover{background:#fbfdff}.person-cell{display:flex;align-items:center;gap:10px}.person-cell strong{display:block}.person-cell span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.table-avatar{flex:none}.team-pill{display:inline-block;background:#edf4ff;color:#285e9f;border-radius:999px;padding:6px 9px;font-weight:600;font-size:10px}.muted{color:var(--muted)}.work-state{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:10px;padding:5px 8px;border-radius:999px}.work-state.success,.state.success{color:#10804c}.work-state.success{background:#eaf8f1}.work-state.danger,.state.danger{color:#cf3030}.work-state.danger{background:#ffeded}.work-state.purple,.state.purple{color:#7c3aed}.work-state.purple{background:#f2ebff}.work-state.info,.state.info{color:#1263ca}.work-state.info{background:#eaf2ff}.work-state.neutral,.state.neutral{color:#66758a}.work-state.neutral{background:#eef2f6}.employee .state{background:transparent;padding:0}.row-actions{display:flex;gap:6px}.mini-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 9px;font-size:10px;cursor:pointer;color:#37516e}.mini-btn:hover{border-color:#b8c8da;background:#f8fbff}.danger-text{color:#d63a3a}.empty-cell{text-align:center;color:var(--muted);padding:28px!important}.mobile-sub{display:none}.switch-row{grid-template-columns:auto 1fr!important;align-items:center;background:#f8fafc;border:1px solid var(--border);padding:10px;border-radius:10px}.switch-row input{width:18px;height:18px}.switch-row span b,.switch-row span small{display:block}.switch-row span small{color:var(--muted);font-weight:400;margin-top:2px}.member-section{margin:12px 0}.form-label{font-size:13px;font-weight:600}.member-list{margin-top:7px;border:1px solid var(--border);border-radius:10px;max-height:220px;overflow:auto;padding:5px}.member-check{display:grid!important;grid-template-columns:22px 30px 1fr!important;align-items:center!important;gap:8px!important;padding:8px!important;margin:0!important;border-bottom:1px solid #edf1f5;font-weight:400!important}.member-check:last-child{border-bottom:0}.member-check input{width:16px;height:16px;padding:0}.member-check b,.member-check small{display:block}.member-check small{color:var(--muted);margin-top:2px}.tiny-avatar{width:28px!important;height:28px!important;font-size:9px}.split-actions{justify-content:space-between}.split-actions>div{display:flex;gap:10px}.delete-btn{border:0;background:#fff0f0;color:#cf3030;padding:10px 14px;border-radius:9px;cursor:pointer}
@media(max-width:1200px){.teams-grid{grid-template-columns:repeat(2,1fr)}.people-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.employees-heading{align-items:stretch}.heading-actions{width:100%}.heading-actions button{flex:1}.people-stats,.teams-grid{grid-template-columns:1fr}.people-toolbar{align-items:stretch;flex-direction:column}.table-search{width:100%}.people-table{min-width:760px}.mobile-sub{display:block;color:var(--muted);font-size:10px;margin-top:3px}}

/* Cloud + zlecenia v0.3 */
.cloud-status-btn{border:1px solid var(--border);background:#f7f9fc;color:#516176;border-radius:999px;padding:8px 12px;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;font-weight:600}.cloud-status-btn.online{background:#eaf8f1;border-color:#cceedd;color:#107847}.cloud-status-btn.offline{background:#fff7e9;border-color:#f4dfb7;color:#8c6200}.cloud-pill{border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.cloud-pill.online{background:#eaf8f1;color:#107847}.cloud-pill.offline{background:#fff1e3;color:#a45f00}.connection-banner{display:flex;align-items:center;gap:12px;border-radius:12px;padding:12px 15px;margin-bottom:14px;font-size:12px}.connection-banner b{white-space:nowrap}.connection-banner span{color:var(--muted)}.connection-banner.online{background:#eaf8f1;border:1px solid #cceedd}.connection-banner.online b{color:#107847}.connection-banner.offline{background:#fff7e9;border:1px solid #f4dfb7}.connection-banner.offline b{color:#8c6200}.settings-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.settings-card{min-height:260px}.settings-body{padding:18px}.setting-line{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--border);font-size:12px}.setting-line span{color:var(--muted)}.setting-line strong{text-align:right}.settings-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.danger-outline-btn{border:1px solid #f0b9b9;background:#fff;color:#c83737;padding:10px 14px;border-radius:9px;cursor:pointer}.settings-copy{font-size:13px;line-height:1.65;color:#526179}.test-note{margin-top:18px;background:#f5f8fc;border:1px solid var(--border);border-radius:11px;padding:14px;font-size:12px;line-height:1.5}.wide-dialog{width:min(720px,94vw)}dialog textarea{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:9px;resize:vertical}.three-cols{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px}.modal-head small{display:block;color:var(--muted);margin-top:4px}.online-text{color:#10804c!important}.cloud-account-box{background:#eef5ff;border:1px solid #d7e6fb;border-radius:11px;padding:12px 14px;margin-bottom:12px}.cloud-account-box span,.cloud-account-box strong{display:block}.cloud-account-box span{font-size:11px;color:var(--muted);margin-bottom:3px}.token-help{font-size:11px;line-height:1.5;color:var(--muted);background:#f7f9fc;border:1px solid var(--border);padding:11px;border-radius:10px}.api-test-result{font-size:12px;padding:11px 12px;border-radius:10px;background:#f5f7fb;color:#526179}.api-test-result.checking{background:#eef5ff;color:#275f9f}.api-test-result.ok{background:#eaf8f1;color:#107847}.api-test-result.error{background:#ffeded;color:#b92b2b}.sync-badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700}.sync-badge.synced{background:#eaf8f1;color:#107847}.sync-badge.pending{background:#fff4df;color:#a76300}.sync-badge.error{background:#ffeded;color:#bd2f2f}.sync-badge.demo{background:#eef2f6;color:#6b7789}.sync-badge.local{background:#eaf2ff;color:#215f9e}.jobs-table strong{display:block}.table-time{color:var(--muted);font-size:10px;margin-top:3px}.empty-panel{padding:28px;text-align:center;color:var(--muted);font-size:12px}.app-toast{position:fixed;right:24px;bottom:24px;z-index:9999;max-width:430px;padding:13px 16px;border-radius:11px;background:#20324a;color:white;box-shadow:0 14px 36px rgba(0,0,0,.24);opacity:0;transform:translateY(14px);pointer-events:none;transition:.2s}.app-toast.show{opacity:1;transform:translateY(0)}.app-toast.success{background:#117849}.app-toast.error{background:#b93434}.app-toast.info{background:#245d9a}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.three-cols{grid-template-columns:1fr}.cloud-status-btn span{display:none}.connection-banner{align-items:flex-start;flex-direction:column;gap:3px}}

/* Logowanie i rejestracja v0.4 */
.app-hidden{display:none!important}.auth-hidden{display:none!important}
.auth-screen{min-height:100vh;background:#eef3f9;padding:32px;display:grid;place-items:center}
.auth-layout{width:min(1120px,100%);min-height:680px;background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:0 26px 80px rgba(15,31,51,.14);display:grid;grid-template-columns:.95fr 1.05fr;overflow:hidden}
.auth-hero{background:linear-gradient(145deg,#0c1b2e,#14375e 72%,#176ad0);color:#fff;padding:42px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-hero:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-145px;bottom:-95px;box-shadow:0 0 0 65px rgba(255,255,255,.035),0 0 0 130px rgba(255,255,255,.025)}
.auth-brand{display:flex;align-items:center;gap:11px;position:relative;z-index:1}.auth-brand strong{display:block;font-size:22px}.auth-brand span{display:block;color:#c7d8eb;font-size:12px;margin-top:2px}
.auth-hero-copy{position:relative;z-index:1;max-width:470px}.auth-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#8fc4ff;font-weight:700}.auth-hero h1{font-size:42px;line-height:1.08;margin:16px 0 18px}.auth-hero p{font-size:15px;line-height:1.7;color:#d5e1ee}.auth-points{display:grid;gap:11px;margin-top:26px;font-size:13px}.auth-hero>small{position:relative;z-index:1;color:#a9bfd6}
.auth-panel{display:grid;place-items:center;padding:42px}.auth-card{width:min(470px,100%)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f1f4f8;border-radius:12px;padding:4px;margin-bottom:30px}.auth-tab{border:0;background:transparent;padding:11px;border-radius:9px;color:#68778b;cursor:pointer;font-weight:600}.auth-tab.active{background:#fff;color:var(--text);box-shadow:0 3px 12px rgba(20,40,65,.09)}
.auth-form{display:none}.auth-form.active{display:block}.auth-title h2{font-size:28px;margin:0 0 7px}.auth-title p{margin:0 0 22px;color:var(--muted);font-size:13px}.auth-form label{display:grid;gap:7px;margin:14px 0;font-size:12px;font-weight:600}.auth-form input{width:100%;padding:12px 13px;border:1px solid #dbe3ed;border-radius:10px;outline:none;background:#fff}.auth-form input:focus{border-color:#8ebeff;box-shadow:0 0 0 3px rgba(22,119,255,.09)}.password-wrap{position:relative}.password-wrap input{padding-right:68px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:#edf3fa;color:#3c5f83;border-radius:7px;padding:6px 9px;font-size:10px;cursor:pointer}.auth-check{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;font-weight:400!important}.auth-check input{width:17px;height:17px}.auth-submit{width:100%;margin-top:8px;padding:13px 16px}.auth-result{padding:10px 12px;border-radius:9px;margin:12px 0;font-size:12px}.auth-result.error{background:#ffeded;color:#b52d2d}.auth-result.ok{background:#eaf8f1;color:#0d7b48}.auth-result.info{background:#edf5ff;color:#245e9c}.password-hint,.legacy-note{font-size:10px;line-height:1.5;color:var(--muted)}.legacy-note{margin:16px 0 0;background:#f7f9fc;border:1px solid var(--border);border-radius:9px;padding:10px}.auth-two-cols{gap:10px}
.sidebar-user-copy{min-width:0;flex:1}.sidebar-user-copy strong,.sidebar-user-copy span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-logout{border:0;background:rgba(255,255,255,.06);color:#d5e0ec;border-radius:8px;padding:7px 9px;cursor:pointer}.sidebar-logout:hover{background:rgba(255,255,255,.12)}
.file-protocol-warning{position:fixed;inset:0;z-index:99999;background:#eef3f9;display:grid;place-items:center;padding:24px}.file-protocol-warning[hidden]{display:none}.protocol-card{width:min(560px,100%);background:#fff;border:1px solid var(--border);border-radius:20px;padding:30px;box-shadow:0 22px 70px rgba(15,31,51,.15);text-align:center}.protocol-card .brand-mark{margin:0 auto 18px}.protocol-card h2{margin:0 0 12px}.protocol-card p{color:var(--muted);line-height:1.6}
@media(max-width:850px){.auth-screen{padding:0}.auth-layout{min-height:100vh;border:0;border-radius:0;grid-template-columns:1fr}.auth-hero{display:none}.auth-panel{padding:26px 18px}.auth-two-cols{grid-template-columns:1fr}}

/* v0.5 — firma, członkowie i zaproszenia */
.company-context-bar,
.invite-banner{
  margin: 14px 24px 0;
  border-radius: 14px;
  padding: 12px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:14px;
}
.company-context-bar{
  background:#eef6ff;
  border:1px solid #cfe3ff;
  color:#1d3d68;
}
.company-context-bar select{
  border:0;
  background:transparent;
  font:inherit;
  font-weight:700;
  color:#0d47a1;
  padding:4px 8px;
}
.invite-banner{
  background:#fff8e7;
  border:1px solid #f2d58e;
  color:#5d4510;
  display:block;
}
.invite-banner-row{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.invite-banner-row div{display:flex;flex-direction:column;gap:3px;}
.invite-banner-row span{font-size:12px;opacity:.8;}
.invite-help{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:12px 14px;
  border-radius:12px;
  background:#eef6ff;
  border:1px solid #d6e8ff;
  margin-bottom:12px;
  color:#23466f;
}
.invite-help span{font-size:13px;line-height:1.4;}
.pending-row{background:#fbfcff;}
.pending-row td{opacity:.9;}
@media (max-width: 760px){
  .company-context-bar,.invite-banner{margin:10px 12px 0;align-items:flex-start;flex-direction:column;}
  .invite-banner-row{width:100%;align-items:flex-start;flex-direction:column;}
}

/* v0.6 — edycja zleceń + GPS pracowników */
.editable-job-row{cursor:pointer}.editable-job-row:hover{background:#f7fbff}
.assignment-help{align-self:end;background:#eef6ff;border:1px solid #d6e8ff;color:#345a84;border-radius:10px;padding:11px 12px;font-size:11px;line-height:1.45}
.small-btn{padding:7px 10px;font-size:11px}
.map-shell{position:relative;overflow:hidden;background:#eef5f2}.live-map{width:100%;height:100%;min-height:260px}.compact-map-shell{height:330px}.compact-live-map{min-height:330px}.full-map-shell{height:560px}.full-live-map{min-height:560px}.map-empty{position:absolute;inset:auto 18px 18px 18px;z-index:500;background:rgba(255,255,255,.94);border:1px solid var(--border);border-radius:10px;padding:11px 13px;color:var(--muted);font-size:11px;box-shadow:0 8px 25px rgba(15,31,51,.08)}.map-empty[hidden]{display:none}
.gps-heading{align-items:flex-end}.date-filter{display:grid;gap:5px;font-size:11px;color:var(--muted)}.date-filter input{border:1px solid var(--border);border-radius:9px;padding:9px 10px;background:#fff;color:var(--text)}
.tracking-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.tracking-layout{display:grid;grid-template-columns:280px minmax(420px,1fr) 300px;gap:14px;align-items:start}.tracking-people-card,.tracking-detail-card{min-height:560px}.tracking-map-card{min-height:620px}.tracking-employees{padding:8px}.tracking-person{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:0;background:transparent;padding:10px;border-radius:11px;text-align:left;cursor:pointer}.tracking-person:hover,.tracking-person.active{background:#edf5ff}.tracking-person-copy{display:grid;gap:3px;min-width:0}.tracking-person-copy b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracking-person-copy small{color:var(--muted)}.gps-dot{width:9px;height:9px;border-radius:50%;background:#aab6c5}.gps-dot.online{background:#20b36a;box-shadow:0 0 0 4px rgba(32,179,106,.12)}.gps-dot.offline{background:#b3becb}.tracking-detail{padding:16px}.tracking-profile{display:flex;align-items:center;gap:11px;padding-bottom:16px;border-bottom:1px solid var(--border)}.tracking-profile h3{margin:0 0 3px}.tracking-profile span{font-size:11px;color:var(--muted)}.big-avatar{width:46px;height:46px}.tracking-detail-grid{display:grid;grid-template-columns:1fr auto;gap:12px 14px;padding-top:16px;font-size:12px}.tracking-detail-grid span{color:var(--muted)}.tracking-detail-grid b{text-align:right}.leaflet-popup-content{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:12px}.leaflet-control-attribution{font-size:8px!important}
@media(max-width:1250px){.tracking-layout{grid-template-columns:240px 1fr}.tracking-detail-card{grid-column:1/-1;min-height:auto}.tracking-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.tracking-layout{grid-template-columns:1fr}.tracking-people-card,.tracking-detail-card,.tracking-map-card{min-height:auto}.full-map-shell{height:420px}.full-live-map{min-height:420px}.tracking-stats{grid-template-columns:1fr 1fr}.gps-heading{align-items:stretch}.gps-heading .heading-actions{flex-wrap:wrap}.date-filter{flex:1}.date-filter input{width:100%}}

/* v0.7 — dyspozytornia, klienci, narzędzia, magazyn, raporty */
.three-stats{grid-template-columns:repeat(3,1fr);max-width:980px}.toolbar-inline{display:flex;gap:8px;align-items:center}.toolbar-inline select{border:1px solid var(--border);background:#fff;border-radius:9px;padding:9px 10px;color:var(--text)}.click-row,.clickable-line{cursor:pointer}.click-row:hover{background:#f8fbff}.clickable-line:hover{background:#f8fbff}.live-summary{min-height:154px}.compact-empty{padding:20px}.blue-count{background:#e8f2ff;color:#1767bd}.low-text{color:var(--red)}.stock-low-row{background:#fff8f8}.qty-controls{display:flex;gap:5px}.warning{background:#fff4df!important;color:#a76500!important}.neutral{background:#eef2f6!important;color:#617084!important}
.schedule-heading{align-items:flex-end}.schedule-actions{align-items:center}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;margin-bottom:12px}.schedule-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px}.schedule-toolbar strong{font-size:17px;text-transform:capitalize}.schedule-toolbar span{font-size:11px;color:var(--muted)}.segmented{display:flex;background:#eef2f7;border-radius:10px;padding:3px}.seg-btn{border:0;background:transparent;color:#5e6b7c;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600}.seg-btn.active{background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(20,40,65,.08)}.schedule-layout{display:grid;grid-template-columns:250px 1fr;gap:12px;align-items:start}.unscheduled-card{min-height:560px}.unscheduled-list{padding:8px}.unscheduled-job{border:1px solid var(--border);border-left:4px solid var(--blue);border-radius:10px;padding:10px;margin-bottom:8px;background:#fff;display:flex;flex-direction:column;gap:3px;cursor:grab}.unscheduled-job b{font-size:12px}.unscheduled-job span,.unscheduled-job small{font-size:10px;color:var(--muted)}.schedule-board-card{overflow:auto;min-height:560px}.calendar-body{min-width:720px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-height:620px}.week-day{border-right:1px solid var(--border);background:#fff}.week-day:last-child{border-right:0}.week-day.today{background:#f5faff}.week-day-head{height:52px;padding:11px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);text-transform:capitalize}.week-day-head b{font-size:12px}.week-day-head span{background:#edf2f7;border-radius:999px;padding:2px 7px;font-size:10px}.week-events{padding:8px;display:grid;gap:7px}.schedule-event{width:100%;border:0;border-left:4px solid currentColor;border-radius:9px;padding:8px;text-align:left;display:grid;gap:3px;cursor:grab}.schedule-event b{font-size:10px}.schedule-event span{font-size:11px;font-weight:700}.schedule-event small{font-size:9px;opacity:.75}.schedule-event.green{background:#eaf8f1;color:#107847}.schedule-event.orange{background:#fff4df;color:#a76500}.schedule-event.blue{background:#eaf2ff;color:#215f9e}.schedule-event.red{background:#ffeded;color:#bd2f2f}.lane-empty{font-size:10px;color:#9aa6b5;padding:9px}.day-schedule-head{display:grid;grid-template-columns:190px 1fr;padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:11px;color:var(--muted)}.day-schedule{min-height:560px}.day-lane{display:grid;grid-template-columns:190px 1fr;border-bottom:1px solid var(--border);min-height:76px}.day-lane-name{display:flex;align-items:center;gap:8px;padding:12px;border-right:1px solid var(--border)}.day-lane-name b{font-size:12px}.day-lane-jobs{display:flex;gap:8px;align-items:center;padding:8px;overflow-x:auto}.day-lane-jobs .schedule-event{width:220px;flex:0 0 220px}.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:10px 0;background:#f8fafc;border-bottom:1px solid var(--border)}.month-weekdays b{text-align:center;font-size:11px;color:var(--muted)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-cell{min-height:116px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;background:#fff}.month-cell:nth-child(7n){border-right:0}.month-cell.outside{background:#fafbfc;color:#aab3c0}.month-cell.today{box-shadow:inset 0 0 0 2px #b8d7ff}.month-day{font-size:11px;font-weight:700;margin-bottom:5px}.month-job{display:block;width:100%;border:0;border-radius:5px;margin:3px 0;padding:4px 5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;cursor:grab}.month-job.green{background:#eaf8f1;color:#107847}.month-job.orange{background:#fff4df;color:#a76500}.month-job.blue{background:#eaf2ff;color:#215f9e}.month-job.red{background:#ffeded;color:#bd2f2f}.more-jobs{font-size:9px;color:var(--muted)}
.reports-grid{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:14px}.report-bars{padding:16px;display:grid;gap:13px}.report-row{display:grid;grid-template-columns:110px 1fr 30px;gap:8px;align-items:center;font-size:11px}.report-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:999px;background:var(--blue);min-width:0}.report-row b{text-align:right}.report-week{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:14px}.week-report-day{border:1px solid var(--border);border-radius:10px;padding:9px 5px;text-align:center;display:grid;gap:3px}.week-report-day b{font-size:9px;text-transform:uppercase;color:var(--muted)}.week-report-day span{font-size:15px}.week-report-day strong{font-size:20px;color:var(--blue)}.week-report-day small{font-size:8px;color:var(--muted)}
@media(max-width:1150px){.schedule-layout{grid-template-columns:1fr}.unscheduled-card{min-height:auto}.unscheduled-list{display:flex;gap:8px;overflow-x:auto}.unscheduled-job{min-width:210px}.reports-grid{grid-template-columns:1fr 1fr}.reports-grid>section:last-child{grid-column:1/-1}}
@media(max-width:850px){.three-stats,.people-stats{grid-template-columns:1fr 1fr}.schedule-toolbar{align-items:flex-start;gap:10px;flex-direction:column}.schedule-layout{grid-template-columns:1fr}.toolbar-inline{width:100%;flex-direction:column;align-items:stretch}.reports-grid{grid-template-columns:1fr}.reports-grid>section:last-child{grid-column:auto}.report-week{grid-template-columns:repeat(4,1fr)}}
.field-hint{font-weight:400;color:var(--muted);font-size:9px;margin-left:4px}

/* v0.7 GPS / Oś czasu — zgodność z aplikacją pracownika */
.tracking-stats-wide{grid-template-columns:repeat(6,minmax(0,1fr))}
.gps-range-actions{flex-wrap:wrap;justify-content:flex-end}
.tracking-range-mode{white-space:nowrap}
.tracking-stops-wrap{border-top:1px solid var(--border);padding:14px 16px 18px}
.tracking-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:12px}
.tracking-section-title span{color:var(--muted);font-size:11px}
.tracking-stops{display:grid;gap:8px;max-height:310px;overflow:auto;padding-right:2px}
.tracking-stop{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:1px solid var(--border);background:#fff;border-radius:12px;padding:9px 10px;text-align:left;cursor:pointer}
.tracking-stop:hover{border-color:#9fc4f6;background:#f7fbff}
.tracking-stop-time{font-size:11px;font-weight:800;color:#245c9f;white-space:nowrap}
.tracking-stop-copy{display:grid;gap:2px;min-width:0}
.tracking-stop-copy b{font-size:12px}.tracking-stop-copy small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tracking-stop-points{font-size:10px;color:var(--muted);white-space:nowrap}
.tracking-detail-card{overflow:hidden}
@media(max-width:1500px){.tracking-stats-wide{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.tracking-stats-wide{grid-template-columns:1fr 1fr}.gps-range-actions{justify-content:stretch}.tracking-range-mode{width:100%}.tracking-range-mode .seg-btn{flex:1}.tracking-stop{grid-template-columns:1fr auto}.tracking-stop-time{grid-column:1/-1}}


/* v0.8 — pełne moduły firmy */
.schedule-toolbar-right{display:flex;align-items:end;gap:12px;flex-wrap:wrap;justify-content:flex-end}.compact-select-label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);min-width:180px}.compact-select-label select{height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 10px;color:var(--text)}.three-day-grid{grid-template-columns:repeat(3,minmax(250px,1fr))}.schedule-list-view{display:flex;flex-direction:column;gap:8px;padding:12px}.schedule-list-row{display:grid;grid-template-columns:150px minmax(260px,1fr) 200px auto;gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:12px;background:#fff;cursor:pointer}.schedule-list-row.success{border-left-color:var(--green)}.schedule-list-row.warning{border-left-color:var(--orange)}.schedule-list-row.danger{border-left-color:var(--red)}.schedule-list-row.info{border-left-color:var(--blue)}.schedule-list-row>div{display:flex;flex-direction:column;gap:3px}.schedule-list-row span,.schedule-list-row small{color:var(--muted);font-size:12px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.module-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.module-status-grid span{padding:10px 12px;border:1px solid #d8e8de;border-radius:10px;background:#f5fbf7;color:#167047;font-weight:700}.invoices-view .people-table td:nth-child(5){white-space:nowrap}.reports-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){.schedule-toolbar-right{width:100%;justify-content:flex-start}.schedule-list-row{grid-template-columns:120px 1fr 160px auto}.reports-grid{grid-template-columns:1fr}.three-day-grid{grid-template-columns:repeat(3,minmax(220px,1fr));overflow:auto}.module-status-grid{grid-template-columns:1fr}}
@media(max-width:760px){.schedule-list-row{grid-template-columns:1fr;gap:8px}.schedule-list-row .mini-btn{justify-self:start}.segmented{overflow:auto;max-width:100%}.compact-select-label{width:100%}}

/* ===== v0.8.2: dyspozytornia, mapa zlecenia, czytelniejsza data GPS ===== */
.gps-date-picker{display:grid;grid-template-columns:42px minmax(230px,1fr) 42px auto;gap:7px;align-items:stretch;background:#f7fbff;border:1px solid #cfe1f8;border-radius:14px;padding:7px}
.gps-date-nav{border:1px solid #bfd4ee;background:#fff;color:var(--blue);border-radius:10px;font-size:26px;line-height:1;cursor:pointer;min-width:42px}
.date-filter-large{min-width:230px;background:#fff;border:1px solid #d8e4f3;border-radius:10px;padding:7px 10px!important;gap:2px!important}
.date-filter-large>span{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--blue)}
.date-filter-large input{border:0!important;padding:2px 0!important;font-size:18px!important;font-weight:800;min-height:28px;background:transparent!important;width:100%}
.date-filter-large strong{font-size:11px;color:#53657a;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gps-today-btn{white-space:nowrap}

.dispatch-board{min-width:760px;overflow:auto;background:#fff}
.dispatch-grid-row{display:grid;grid-template-columns:190px repeat(var(--dispatch-days),minmax(155px,1fr));min-width:max-content}
.dispatch-grid-head{position:sticky;top:0;z-index:4;background:#f8fafc;border-bottom:1px solid var(--border)}
.dispatch-employee-head,.dispatch-day-head{padding:10px 12px;border-right:1px solid var(--border)}
.dispatch-employee-head{font-size:11px;color:var(--muted);font-weight:700;position:sticky;left:0;background:#f8fafc;z-index:5}
.dispatch-day-head{display:flex;align-items:center;justify-content:space-between;text-transform:capitalize;gap:8px}
.dispatch-day-head b{font-size:12px}.dispatch-day-head span{font-size:10px;color:var(--muted)}
.dispatch-day-head.today{background:#edf6ff;color:var(--blue)}
.dispatch-grid-person{border-bottom:1px solid var(--border);min-height:112px}
.dispatch-person{position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid var(--border);padding:12px;display:flex;align-items:flex-start;gap:8px}
.dispatch-person div{display:grid;gap:3px}.dispatch-person b{font-size:12px}.dispatch-person small{font-size:9px;color:var(--muted);line-height:1.35}
.dispatch-slot{border-right:1px solid var(--border);padding:7px;min-height:112px;display:flex;flex-direction:column;gap:6px;transition:.12s background,.12s box-shadow}
.dispatch-slot.free{background:#fbfffc}.dispatch-slot.free:hover{background:#f0fbf3;box-shadow:inset 0 0 0 2px #b9e4c5}
.dispatch-slot.busy{background:#fff}.dispatch-slot.today{background:#f8fbff}
.slot-state{font-size:9px;color:#8b98a8;min-height:13px}.dispatch-slot.free .slot-state{color:#2f8a50;font-weight:700}
.dispatch-slot .schedule-event{margin:0}
.planning-badges{display:flex;gap:4px;flex-wrap:wrap}.planning-badges span{font-size:8px!important;text-transform:uppercase;letter-spacing:.03em;background:#eef4fb;color:#42617e;padding:2px 5px;border-radius:999px}
.unscheduled-job.needs-person{border-left-color:#f59e0b}.unscheduled-job.needs-person .planning-badges span:last-child{background:#fff3dc;color:#a76500}

.job-location-actions{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.job-location-actions .field-hint{font-size:10px;color:var(--muted)}
.map-picker-dialog{width:min(920px,94vw)}.job-location-map-picker{height:480px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#dbeafe}.map-picker-status{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f7f9fc;border:1px solid var(--border);font-size:12px;color:#52657a}

.sidebar .brand{position:relative}

@media(max-width:1050px){.gps-date-picker{grid-template-columns:42px minmax(200px,1fr) 42px}.gps-today-btn{grid-column:1/-1}.gps-range-actions{width:100%}}
@media(max-width:700px){.gps-date-picker{grid-template-columns:38px 1fr 38px;width:100%}.date-filter-large{min-width:0}.date-filter-large input{font-size:17px!important}.job-location-map-picker{height:55vh;min-height:300px}.dispatch-grid-row{grid-template-columns:150px repeat(var(--dispatch-days),minmax(145px,1fr))}.dispatch-person{padding:9px}}

/* v0.8.3 — rozróżnienie źródła zadania */
.source-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:999px;font-size:9px;font-weight:800;vertical-align:1px;white-space:nowrap}
.source-badge.app{background:#e8f7f0;color:#11724a;border:1px solid #bfe6d2}
.source-badge.web{background:#eaf2ff;color:#215f9e;border:1px solid #c9dcfb}
.origin-mini{font-style:normal;font-size:8px;font-weight:900;padding:1px 4px;border-radius:999px;margin-left:4px;vertical-align:1px}
.origin-mini.app{background:#dff5ea;color:#0f7147}.origin-mini.web{background:#deebff;color:#1e5f9c}
.job-row.origin-app{box-shadow:inset 4px 0 0 #20a36a}.job-row.origin-web{box-shadow:inset 4px 0 0 #3b82f6}
.unscheduled-job.origin-app{border-left-color:#20a36a}.unscheduled-job.origin-web{border-left-color:#3b82f6}
.schedule-event.origin-app{outline:1px solid rgba(32,163,106,.35);box-shadow:inset 4px 0 0 #20a36a}
.schedule-event.origin-web{outline:1px solid rgba(59,130,246,.24);box-shadow:inset 4px 0 0 #3b82f6}
.month-job.origin-app{box-shadow:inset 3px 0 0 #20a36a}.month-job.origin-web{box-shadow:inset 3px 0 0 #3b82f6}
.schedule-list-row.origin-app{box-shadow:inset 4px 0 0 #20a36a}.schedule-list-row.origin-web{box-shadow:inset 4px 0 0 #3b82f6}
.sync-badge.app-source{background:#e8f7f0;color:#11724a}
.origin-legend{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:10px;color:var(--muted)}.legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-dot.app{background:#20a36a}.legend-dot.web{background:#3b82f6}.origin-legend .legend-dot.web{margin-left:8px}


/* v0.8.4 — stabilna mapa zlecenia + wyszukiwanie adresów i miejsc */
.job-address-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.job-address-search-row input{min-width:0}
.map-search-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin:10px 0 8px}
.map-search-toolbar input{min-width:0}
.place-search-results{display:grid;gap:5px;margin:6px 0 8px;max-height:230px;overflow:auto;padding-right:2px}
.place-search-results[hidden]{display:none!important}
.place-search-result{width:100%;text-align:left;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:10px;padding:9px 11px;cursor:pointer;display:grid;gap:3px}
.place-search-result:hover{background:#f4f8fd;border-color:#bad0e8}
.place-search-result strong{font-size:11px;line-height:1.35;font-weight:700}.place-search-result small{font-size:9px;color:var(--muted)}
.map-place-results{max-height:180px;margin-bottom:7px}
.map-load-line{display:flex;justify-content:flex-end;min-height:18px;margin-bottom:4px}.map-load-line span{font-size:9px;color:var(--muted)}
.map-load-line span[data-state="loading"]{color:#1f6fb5}.map-load-line span[data-state="ok"]{color:#24824d}.map-load-line span[data-state="warn"]{color:#a66a00}
.job-location-map-picker{position:relative;width:100%;height:clamp(340px,56vh,560px);min-height:340px}
.job-location-map-picker.leaflet-container{background:#dbeafe}
.map-picker-dialog form{overflow:visible}
@media(max-width:700px){.map-search-toolbar{grid-template-columns:1fr 1fr}.map-search-toolbar input{grid-column:1/-1}.job-address-search-row{grid-template-columns:1fr}.job-address-search-row button{width:100%}.job-location-map-picker{height:48vh;min-height:300px}}


/* ===== v0.9.0: filtry zleceń, sortowanie i uprawnienia pracowników ===== */
.jobs-register-card{overflow:visible}
.jobs-toolbar{gap:16px;flex-wrap:wrap}
.jobs-toolbar .table-search{min-width:min(420px,100%)}
.jobs-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 14px;border-bottom:1px solid var(--line,#e6edf5)}
.jobs-tab{border:1px solid #dfe8f2;background:#f8fbfe;color:#506176;border-radius:999px;padding:9px 13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.jobs-tab b{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e8eef6;color:#33465d;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.jobs-tab.active{background:#e8f2ff;border-color:#9fc9ff;color:#0a5fb7}
.jobs-tab.overdue.active{background:#fff0f0;border-color:#f6b2b2;color:#b42318}
.jobs-tab.done.active{background:#ecfdf3;border-color:#a7e4bd;color:#177245}
.sortable-th{padding:0!important}
.sortable-th button{width:100%;height:100%;padding:14px 12px;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px;text-align:left}
.sortable-th button:hover{background:#f6f9fc}
.sort-indicator{color:#0b6bd3;font-size:14px;min-width:12px}
.jobs-table tr.origin-app td:first-child{box-shadow:inset 4px 0 0 #22a06b}
.jobs-table tr.origin-web td:first-child{box-shadow:inset 4px 0 0 #3182ce}
.permission-col{min-width:190px}
.permission-cell{min-width:190px}
.permission-full{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#edf7ff;color:#1261a0;font-weight:700;font-size:12px}
.permission-switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.permission-switch input{position:absolute;opacity:0;pointer-events:none}
.permission-switch>span{width:42px;height:24px;border-radius:999px;background:#c9d3df;position:relative;transition:.18s}
.permission-switch>span::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:white;left:3px;top:3px;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.18s}
.permission-switch input:checked+span{background:#22a06b}
.permission-switch input:checked+span::after{left:21px}
.permission-switch input:disabled+span{opacity:.45}
.permission-switch em{font-style:normal;font-size:12px;font-weight:700;color:#52657a}
@media(max-width:900px){
  .jobs-tabs{padding-left:12px;padding-right:12px;overflow-x:auto;flex-wrap:nowrap}
  .jobs-tab{white-space:nowrap}
  .permission-col,.permission-cell{min-width:165px}
}

/* ===== v0.9.1: kalendarz i pulpit LIVE ===== */
.attention-action{
  width:100%;text-align:left;background:transparent;border:0;cursor:pointer;color:inherit;
}
.attention-action:hover{background:#f8fbff;border-radius:10px}
.calendar-data-status{
  margin:10px 0 12px;padding:9px 12px;border:1px solid #d8e7fb;border-radius:10px;
  background:#f6faff;color:#315b88;font-size:12px;font-weight:700;
}


/* ===== v0.9.2: czytelny tydzien + nieprzydzielone zlecenia ===== */
.assignment-selection-hint{margin:-2px 0 12px;padding:9px 11px;border-radius:9px;background:#fff7e6;border:1px solid #f5d68a;color:#8a5a00;font-size:11px;line-height:1.4}
.assignment-selection-hint.assigned{background:#edf9f1;border-color:#bfe4ca;color:#237341}
.planning-badges .warn{background:#fff0d6!important;color:#9a5c00!important;border-color:#f2c96d!important}
.schedule-event.needs-assignment,.month-job.needs-assignment{box-shadow:inset 0 0 0 1px #f3b33d!important}
.assignment-warning,.month-assign-warning{color:#a96500!important;font-weight:800!important}
.month-job{display:flex!important;flex-direction:column;align-items:flex-start;gap:2px;white-space:normal!important;line-height:1.15}
.month-job-main{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.month-assign-warning{font-size:8px;white-space:nowrap}

/* Tydzien ma miescic sie w szerokosci panelu, bez utraty naglowkow dni przy przewijaniu. */
.schedule-board-card{overflow:hidden}
.calendar-body{min-width:0}
.dispatch-board{width:100%;min-width:0;overflow:hidden}
.dispatch-grid-row{width:100%;min-width:0;grid-template-columns:170px repeat(var(--dispatch-days),minmax(0,1fr))}
.dispatch-employee-head,.dispatch-person{min-width:0}
.dispatch-day-head{min-width:0;padding:9px 7px;gap:4px;flex-wrap:wrap}
.dispatch-day-head b{white-space:nowrap}.dispatch-day-head span{white-space:nowrap}
.dispatch-slot{min-width:0;padding:5px}
.dispatch-slot .schedule-event{min-width:0;padding:6px}
.dispatch-slot .schedule-event span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dispatch-slot .schedule-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dispatch-days-1 .dispatch-grid-row{grid-template-columns:190px minmax(0,1fr)}
.dispatch-days-3 .dispatch-grid-row{grid-template-columns:180px repeat(3,minmax(0,1fr))}
.dispatch-days-7 .dispatch-grid-row{grid-template-columns:165px repeat(7,minmax(0,1fr))}
@media(max-width:1150px){
  .schedule-layout{grid-template-columns:220px minmax(0,1fr)}
  .dispatch-days-7 .dispatch-grid-row{grid-template-columns:135px repeat(7,minmax(105px,1fr));min-width:870px}
  .schedule-board-card{overflow:auto}
  .dispatch-board{min-width:870px;overflow:visible}
}


/* v0.9.3 — klient mapa/adres + czytelniejsza nawigacja kalendarza */
.calendar-nav-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.calendar-nav-btn,.calendar-current-btn{min-height:42px;padding:10px 16px;font-weight:750;white-space:nowrap}
.calendar-current-btn{box-shadow:0 4px 12px rgba(37,99,235,.16)}
.client-address-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center}
.client-address-search-row input{min-width:0}
.place-search-loading,.place-search-empty{padding:10px 12px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:11px;background:#fafcff}
#clientLocationStatus{display:block;margin-top:5px}
@media(max-width:900px){
  .schedule-heading{align-items:flex-start;gap:12px}
  .calendar-nav-actions{justify-content:flex-start}
  .calendar-nav-btn,.calendar-current-btn{font-size:11px;padding:9px 11px}
}
@media(max-width:700px){
  .client-address-search-row{grid-template-columns:1fr 1fr}
  .client-address-search-row input{grid-column:1/-1}
  .client-address-search-row button{width:100%}
  .calendar-nav-actions{display:grid;grid-template-columns:1fr; width:100%}
  .calendar-nav-btn,.calendar-current-btn{width:100%}
}

/* ===== v0.9.4: statusy zleceń w kalendarzu ===== */
.schedule-event.calendar-overdue,
.month-job.calendar-overdue,
.schedule-list-row.calendar-overdue,
.unscheduled-job.calendar-overdue{
  background:#fff0f0!important;
  color:#b42318!important;
  border-color:#ef4444!important;
  box-shadow:inset 0 0 0 1px rgba(239,68,68,.45)!important;
}
.schedule-event.calendar-overdue{border-left:4px solid #dc2626!important}
.month-job.calendar-overdue{border-left:3px solid #dc2626!important}

.schedule-event.calendar-completed,
.month-job.calendar-completed,
.schedule-list-row.calendar-completed{
  background:#f1f5f9!important;
  color:#64748b!important;
  border-color:#94a3b8!important;
  opacity:.78;
}
.schedule-event.calendar-completed span,
.schedule-event.calendar-completed b,
.month-job.calendar-completed .month-job-main,
.schedule-list-row.calendar-completed strong{
  text-decoration:line-through;
  text-decoration-thickness:1px;
  text-decoration-color:rgba(100,116,139,.38);
}
.month-state{display:block;margin-top:2px;font-size:8px;font-weight:800;white-space:nowrap}
.month-state.done{color:#64748b}.month-state.overdue{color:#b42318}
.calendar-status-legend{display:inline-flex;gap:10px;align-items:center;margin-left:10px;font-size:10px;color:var(--muted);font-weight:650}
.calendar-status-legend .done{color:#64748b;text-decoration:line-through}
.calendar-status-legend .late{color:#b42318}

/* v0.10 Rozliczenia i zakupy */
.bottom-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.settlement-tabs{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.settlement-tab{border:1px solid var(--border);background:#fff;color:#41556e;padding:10px 15px;border-radius:999px;font-weight:700;cursor:pointer}.settlement-tab span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:6px;border-radius:999px;background:#eef2f7;font-size:11px}.settlement-tab.active{background:#eaf2ff;border-color:#9fc4ff;color:#1263ca}.settlement-tab.active span{background:#fff}.settlement-table td:nth-child(1){width:72px}.settled-check{display:inline-flex;align-items:center;justify-content:center;margin:0!important}.settled-check input{width:20px;height:20px;accent-color:var(--green)}.settlement-job-completed td:nth-child(2) strong{color:#39745a}.purchase-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:14px}.auto-purchase-needs{padding:10px}.purchase-need{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border-bottom:1px solid var(--border)}.purchase-need:last-child{border-bottom:0}.purchase-need>div:first-child b,.purchase-need>div:first-child small{display:block}.purchase-need small{color:var(--muted);margin-top:3px}.need-numbers{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px}.need-numbers span{padding:4px 7px;background:#f4f7fa;border-radius:7px}.need-numbers strong{padding:5px 8px;border-radius:7px}.purchase-need.shortage .need-numbers strong{background:#ffeded;color:#c92a2a}.purchase-need.covered .need-numbers strong{background:#e9f8f0;color:#13864f}.settlement-calc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#f7f9fc;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-top:8px}.settlement-calc-row>div{text-align:right}.settlement-calc-row span,.settlement-calc-row strong{display:block}.settlement-calc-row span{font-size:11px;color:var(--muted)}.settlement-calc-row strong{font-size:18px;margin-top:2px}.check-label{display:flex!important;flex-direction:column;justify-content:flex-end}.check-label input{width:22px;height:22px;accent-color:var(--green);padding:0}.check-line{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px;background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:10px 12px}.check-line input{width:18px;height:18px;padding:0}.settlement-dashboard-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.settlement-dashboard-summary button{border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:10px;text-align:left;cursor:pointer}.settlement-dashboard-summary button:hover{background:#eef5ff;border-color:#bfd6f5}.settlement-dashboard-summary span,.settlement-dashboard-summary b{display:block}.settlement-dashboard-summary span{font-size:10px;color:var(--muted)}.settlement-dashboard-summary b{font-size:16px;margin-top:3px}.purchase-table{min-width:850px}
@media(max-width:1200px){.bottom-grid{grid-template-columns:1fr 1fr}.purchase-grid{grid-template-columns:1fr}}
@media(max-width:820px){.bottom-grid{grid-template-columns:1fr}.purchase-need{grid-template-columns:1fr}.need-numbers{justify-content:flex-start}.settlement-dashboard-summary{grid-template-columns:1fr 1fr}}

.brand-version{display:block;color:#7fb5e9!important;font-size:9px!important;font-weight:700;margin-top:4px!important}

/* v0.9.5 — wspólna detekcja postoju 100 m */
.tracking-rule{margin:8px 0 10px;padding:8px 10px;border-radius:9px;background:#f6f9fd;border:1px solid var(--border);font-size:11px;color:var(--muted);line-height:1.35}

/* v0.9.6 — centralne ustawienia GPS */
.gps-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.gps-settings-grid label{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
.gps-settings-grid label>span{font-size:12px;font-weight:700}
.gps-settings-grid label>div{display:flex;align-items:center;gap:6px}
.gps-settings-grid input{width:86px;padding:7px 8px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg,#fff);color:inherit}
.gps-settings-grid b{font-size:11px;color:var(--muted)}
.gps-settings-grid input:disabled{opacity:.55}
@media(max-width:760px){.gps-settings-grid{grid-template-columns:1fr}}

/* v0.9.7 — audyt i wspólne zadania ekip */
.creator-audit-hint{margin:8px 0 0;padding:8px 10px;border-radius:9px;background:#f5f8fc;border:1px solid var(--border);font-size:12px;color:var(--muted)}

/* v0.11 — audyt zakupów */
.purchase-table td:nth-child(4){min-width:180px}.purchase-table .mobile-sub{max-width:280px}.toolbar-inline #purchaseAuthorFilter{max-width:220px}


/* v0.12.0 — UX, zlecenia wielowizytowe, kwota, przypomnienia */
.settings-check{align-items:flex-start!important;gap:10px;margin:10px 0;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:#fafbfd}.settings-check span b,.settings-check span small{display:block}.settings-check span small{font-weight:400;color:var(--muted);margin-top:4px;line-height:1.45}.job-team-share{margin:10px 0}.job-team-share span b,.job-team-share span small{display:block}.job-team-share span small{font-weight:400;color:var(--muted);margin-top:3px}.compact-check{margin:4px 0 10px}.visit-group-hint{background:#eef6ff;border:1px solid #cfe3fb;color:#285e9f;padding:9px 11px;border-radius:9px;font-size:11px;margin:8px 0}.job-left-actions{display:flex;gap:8px;flex-wrap:wrap}.team-sync-box{margin:12px 0;padding:12px;border:1px solid #dce6f1;background:#f8fbff;border-radius:11px}.team-sync-box>div{margin-bottom:8px}.team-sync-box>div b,.team-sync-box>div small{display:block}.team-sync-box>div small{color:var(--muted);font-weight:400;margin-top:3px}.team-sync-box label{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px}.team-sync-box label span{margin-left:auto;color:var(--muted)}.job-late-today{background:#fff8e8!important}.job-late-today td:first-child,.job-late-today .job-time{box-shadow:inset 3px 0 0 #e59b16}.late-badge{display:inline-block;margin-left:6px;border-radius:999px;padding:4px 7px;background:#fff1cc;color:#8a5a00;font-size:9px;font-weight:700}.calendar-late-today{background:#fff7df!important;border-color:#e7b64f!important}.calendar-late-today .month-state.late,.month-state.late{color:#8a5a00}.visit-count{display:block;color:#2a67a8;margin-top:4px;font-size:10px}.settlement-job-completed .visit-count{color:inherit}@media(max-width:820px){.job-left-actions{width:100%;margin-bottom:8px}.split-actions{align-items:flex-start;flex-direction:column}.split-actions>div:last-child{align-self:flex-end}}


/* v0.13.0 — zespoły w dyspozytorni + propozycje zleceń */
.dispatch-side-stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.proposal-card[hidden]{display:none!important}
.proposal-list{display:flex;flex-direction:column;gap:8px;padding:12px}
.proposal-item{width:100%;border:1px solid var(--border,#dfe4ea);background:var(--surface,#fff);border-radius:12px;padding:10px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px}
.proposal-item.open{border-left:4px solid #f0a020}
.proposal-item.closed{opacity:.78;border-left:4px solid #5b9b68}
.proposal-item div{display:flex;justify-content:space-between;gap:8px;align-items:center}
.proposal-item span,.proposal-item small{color:var(--muted,#6f7782);font-size:12px}
.proposal-count{background:#fff1d6;color:#9a5d00}
.proposal-assignment-box{border:1px solid var(--border,#dfe4ea);border-radius:14px;padding:14px;background:rgba(245,248,252,.7);display:flex;flex-direction:column;gap:12px}
.proposal-assignment-box[hidden]{display:none!important}
.proposal-employee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:210px;overflow:auto}
.proposal-employee{display:flex;align-items:center;gap:8px;border:1px solid var(--border,#dfe4ea);border-radius:10px;padding:8px;background:var(--surface,#fff)}
.proposal-employee input{width:18px;height:18px}
.proposal-employee>span:last-child{display:flex;flex-direction:column;min-width:0}
.proposal-employee small{color:var(--muted,#6f7782)}
.proposal-rule-note{padding:10px 12px;border-radius:10px;background:#fff6df;color:#7a5200;font-size:13px}
@media(max-width:900px){.proposal-employee-list{grid-template-columns:1fr}.dispatch-side-stack{width:100%}}

/* v0.14.0 – import wycen / materiałów */
.materialImportSection{border:1px solid #dfe5ef;border-radius:14px;padding:12px;background:#f8fafc;margin:10px 0 12px}.materialImportHead{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.materialImportHead small{display:block;color:#667085;margin-top:3px;line-height:1.35}.materialImportActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.materialImportBox{margin-top:10px;border-top:1px solid #e2e8f0;padding-top:10px}.materialImportSummary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.materialImportSummary span{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:7px 9px;font-size:12px}.materialImportItems{max-height:240px;overflow:auto;display:grid;gap:6px}.materialImportRow{display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,auto) 30px;gap:8px;align-items:center;background:#fff;border:1px solid #e7ebf2;border-radius:10px;padding:8px}.materialImportRow small{display:block;color:#667085;margin-top:2px}.materialImportFin{font-size:12px;color:#475467;text-align:right}.materialImportRemove{border:0;background:transparent;color:#98a2b3;cursor:pointer;font-size:15px}.materialImportRemove:hover{color:#d92d20}@media(max-width:760px){.materialImportHead{display:block}.materialImportActions{justify-content:flex-start;margin-top:8px}.materialImportRow{grid-template-columns:1fr 28px}.materialImportFin{grid-column:1;text-align:left}.materialImportRemove{grid-column:2;grid-row:1/3}}


/* v0.15.0 — szczegółowe materiały w Rozliczeniach */
.settlement-material-breakdown{margin:12px 0;border:1px solid #dfe6ef;border-radius:12px;background:#f8fafc;overflow:hidden}.settlement-material-head{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e4e9f0;background:#fff}.settlement-material-head small{display:block;color:var(--muted);margin-top:3px}.settlement-material-totals{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.settlement-material-totals span{font-size:10px;color:var(--muted);background:#f6f8fb;border-radius:8px;padding:5px 7px}.settlement-material-totals b{display:block;color:var(--text);font-size:12px;margin-top:1px}.settlement-material-table-wrap{overflow:auto;max-height:280px}.settlement-material-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}.settlement-material-table th,.settlement-material-table td{padding:9px 10px;border-bottom:1px solid #edf0f4;text-align:right;font-size:11px}.settlement-material-table th{position:sticky;top:0;background:#f7f9fc;color:#667085;z-index:1}.settlement-material-table th:first-child,.settlement-material-table td:first-child{text-align:left}.settlement-material-table td:first-child b,.settlement-material-table td:first-child small{display:block}.settlement-material-table td:first-child small{color:var(--muted);margin-top:2px}.negative-profit{color:#c62828;font-weight:700}.settlement-material-empty{padding:12px 14px;color:var(--muted)}@media(max-width:760px){.settlement-material-head{display:block}.settlement-material-totals{justify-content:flex-start;margin-top:8px}}

/* v0.15.1: szybka wycena przy każdym zleceniu */
.job-row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.job-row-actions .mini-btn{white-space:nowrap}.materialImportSection:focus-within{outline:2px solid rgba(80,120,255,.22);outline-offset:2px}

/* ===== v0.15.2 ===== */
.employee-display-prefs{display:grid;gap:8px;margin:12px 0;padding:12px;border:1px solid #dbe5f0;border-radius:12px;background:#f8fbff}.employee-display-prefs .check-row{display:flex;gap:9px;align-items:center;font-weight:700}.employee-display-prefs small{color:#64748b;line-height:1.35}.display-pref-stack{display:grid;gap:5px}.display-pref-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#334155}.display-pref-pill.off{color:#94a3b8}.dispatch-grid-person.dispatch-unassigned-row .dispatch-person{background:#fff7ed;border:2px solid #fb923c;border-radius:12px;color:#9a3412}.dispatch-grid-person.dispatch-unassigned-row .dispatch-slot{background:#fffaf5}.dispatch-grid-person.dispatch-unassigned-row .dispatch-slot.busy{box-shadow:inset 0 0 0 2px rgba(251,146,60,.28)}.dispatch-grid-person.dispatch-unassigned-row .avatar{background:#ffedd5;color:#c2410c}.dispatch-grid-person.dispatch-unassigned-row .dispatch-person small{color:#c2410c;font-weight:700}


/* ===== v0.16.0 RFID ===== */
.rfid-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:16px;margin-top:16px}.rfid-vehicle-list,.rfid-event-list{display:flex;flex-direction:column;gap:8px;padding:12px}.rfid-vehicle,.rfid-event{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:11px;padding:10px 12px;background:var(--surface,#fff)}.rfid-vehicle>div,.rfid-event>div{display:flex;flex-direction:column;min-width:0;flex:1}.rfid-vehicle small,.rfid-event small{color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.rfid-event time{font-size:11px;color:var(--muted);white-space:nowrap}.rfid-event-icon{font-size:18px}.rfid-transfer-badge{display:block;width:max-content;margin-top:4px;padding:2px 6px;border-radius:999px;background:#fff1cc;color:#8a5a00;font-size:9px;font-weight:700}@media(max-width:900px){.rfid-grid{grid-template-columns:1fr}.rfid-event{align-items:flex-start}.rfid-event time{white-space:normal}}

/* v0.16.2 RFID tools */
.rfid-field-row{display:flex;gap:8px;align-items:center}.rfid-field-row input{flex:1;min-width:0}@media(max-width:700px){.rfid-field-row{align-items:stretch;flex-direction:column}}

/* v0.17.0 — prywatne wyceny + rozliczenia zbiorcze */
.quote-table{min-width:960px}.quote-import-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;margin:10px 0}.quote-import-bar span{font-size:11px;color:var(--muted)}.quote-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:12px 0}.quote-summary>div{background:#f7f9fc;border:1px solid var(--border);border-radius:10px;padding:10px}.quote-summary span,.quote-summary b{display:block}.quote-summary span{font-size:10px;color:var(--muted)}.quote-summary b{font-size:15px;margin-top:3px}.quote-items-wrap{max-height:340px;border:1px solid var(--border);border-radius:12px;margin:10px 0}.quote-items-table{min-width:780px}.settlement-jobs-breakdown{margin:12px 0;border:1px solid #dfe6ef;border-radius:12px;background:#fff;overflow:hidden}.settlement-job-lines{display:grid}.settlement-job-line{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 14px;border-bottom:1px solid #edf0f4}.settlement-job-line:last-child{border-bottom:0}.settlement-job-line>div:first-child b,.settlement-job-line>div:first-child small{display:block}.settlement-job-line small{color:var(--muted);margin-top:3px}.settlement-job-line>div:last-child{display:flex;align-items:center;gap:12px;text-align:right}.settlement-table td:first-child,.settlement-table th:first-child{width:54px}.settlement-table td:nth-child(2),.settlement-table th:nth-child(2){width:62px}.visit-count{font-weight:700}.four-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.quote-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.four-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.settlement-job-line{align-items:flex-start;flex-direction:column}.settlement-job-line>div:last-child{width:100%;justify-content:space-between}}


/* ===== v0.17.1 — ekipy w kalendarzu + czytelniejsze statusy ===== */
.unscheduled-card,.unscheduled-list{max-height:none!important;overflow:visible!important}
.dispatch-grid-person.team-group-start{border-top:2px solid rgba(37,99,235,.20)}
.dispatch-grid-person.team-group-start .dispatch-person{background:linear-gradient(90deg,rgba(37,99,235,.06),transparent)}
.schedule-event.calendar-completed b{ text-decoration:none!important }
.schedule-event.calendar-completed span{ text-decoration-line:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(100,116,139,.38);text-decoration-skip-ink:auto }
.month-job.calendar-completed .month-job-main,.schedule-list-row.calendar-completed strong{ text-decoration-thickness:1px;text-decoration-color:rgba(100,116,139,.38);text-decoration-skip-ink:auto }
.schedule-event.calendar-completed,.month-job.calendar-completed,.schedule-list-row.calendar-completed{opacity:.88}

/* v0.17.2 - czytelniejszy kalendarz ekip i logika rozliczen */
.payment-kind{display:block;width:max-content;margin-top:4px;padding:2px 6px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.payment-kind.free{background:#f1f5f9;color:#64748b}.payment-kind.open{background:#fff7ed;color:#c2410c}.payment-kind.settled{background:#ecfdf5;color:#047857}.settlement-auto-state{border:1px solid var(--border);border-radius:10px;background:#f8fafc;padding:9px 11px;display:flex;flex-direction:column;justify-content:center}.settlement-auto-state span{font-size:11px;color:var(--muted)}.settlement-auto-state strong{font-size:12px;margin-top:3px}.table-filter{min-height:38px;border:1px solid var(--border);border-radius:9px;background:#fff;padding:0 10px}.settlement-table td:nth-child(2),.settlement-table th:nth-child(2){width:auto}


/* v0.17.7 — stabilna klamra zlecen ekipowych + kilka zlecen tego samego dnia */
.dispatch-slot.team-shared{position:relative;padding-left:16px}
.team-shared-rail{position:absolute;left:3px;top:0;bottom:0;width:12px;pointer-events:none;z-index:2}
.team-shared-rail::before{content:"";position:absolute;left:4px;border-left:3px solid rgba(30,64,175,.72)}
.team-shared-first .team-shared-rail::before{top:var(--team-rail-start,36px);bottom:-1px}
.team-shared-middle .team-shared-rail::before{top:-1px;bottom:-1px}
.team-shared-last .team-shared-rail::before{top:-1px;bottom:50%}
.team-shared-single .team-shared-rail{display:none}
.dispatch-slot.team-shared:not(.team-shared-first):not(.team-shared-single) .slot-state:empty{min-height:13px}
.dispatch-slot.team-shared:not(.team-shared-first):not(.team-shared-single) .lane-empty{display:none}
.dispatch-slot.team-shared-first .schedule-event.team-shared-event{position:relative}
.dispatch-slot.team-shared-first .schedule-event.team-shared-event::before{content:"";position:absolute;left:-12px;top:50%;width:12px;border-top:3px solid rgba(30,64,175,.72);transform:translateY(-1px);pointer-events:none}
.schedule-event.is-dragging,.unscheduled-job.is-dragging{opacity:.58}
.schedule-event{position:relative}

.complete-job-btn{background:#ecfdf5!important;color:#047857!important;border-color:#a7f3d0!important}
.reopen-job-btn{background:#f8fafc!important;color:#475569!important;border-color:#cbd5e1!important}

.calendar-list-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}

