/* CRM DEMO 5.4.42 — CSS module: 00-core.css
   Bazowe tokeny, shell, komponenty i pierwotne reguły responsywne.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
:root{--ink:#122033;--ink-2:#1e293b;--muted:#6b778c;--line:#e5eaf1;--bg:#f5f7fb;--surface:#fff;--gold:#d5a542;--gold-soft:#fff6df;--blue:#2563eb;--blue-soft:#eaf2ff;--red:#dc2626;--red-soft:#fff0f0;--green:#0f9f6e;--green-soft:#e9fbf4;--violet:#7c3aed;--violet-soft:#f3edff;--amber:#d97706;--shadow:0 8px 28px rgba(15,23,42,.07)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}.hidden{display:none!important}button,input,select,textarea{font:inherit}button{transition:.18s ease}.btn{border:1px solid transparent;border-radius:12px;padding:10px 15px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.primary{background:var(--ink);color:#fff;box-shadow:0 5px 14px #12203324}.soft{background:#f1f4f8;color:var(--ink);border-color:#e8edf3}.danger{background:var(--red-soft);color:#a71919;border-color:#ffd3d3}.gold{background:var(--gold);color:#1c2430}.icon-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;font-size:18px;display:grid;place-items:center}.icon-btn:hover{background:#f7f9fc}.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 20%,#2e4668 0,transparent 35%),linear-gradient(135deg,#0b1525,#172a46)}.login-card{width:min(440px,100%);background:#fff;border-radius:26px;padding:30px;box-shadow:0 28px 100px #0007}.brand{display:flex;align-items:center;gap:13px}.logo{width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#e1b85f,#c98e25);display:grid;place-items:center;font-weight:950;color:#172033;box-shadow:inset 0 1px #fff8}.field{display:grid;gap:7px;margin:14px 0}.field label{font-weight:780;font-size:13px}.field input,.field select,.field textarea{width:100%;border:1px solid #dce3ec;border-radius:12px;padding:12px 13px;background:#fff;outline:none;transition:.15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6d8cb6;box-shadow:0 0 0 4px #dce9f755}.shell{display:grid;grid-template-columns:258px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#101c2f,#0c1728);color:#fff;padding:20px 16px;position:sticky;top:0;height:100vh}.app-brand{padding:3px 8px 18px}.app-brand .small{color:#8fa0b8}.nav-section-title{color:#65768f;font-size:10px;font-weight:900;letter-spacing:.14em;margin:18px 10px 8px}.side nav{display:grid;gap:5px}.nav{display:flex;align-items:center;gap:12px;border:0;border-radius:12px;padding:11px 12px;color:#b7c3d4;background:transparent;text-align:left;cursor:pointer;font-weight:650}.nav-icon{width:25px;text-align:center;font-size:17px}.nav.active{background:linear-gradient(90deg,#ffffff18,#ffffff0a);color:#fff;box-shadow:inset 3px 0 var(--gold)}.nav:hover{background:#ffffff0c;color:#fff}.side-user{position:absolute;bottom:18px;left:16px;right:16px;display:flex;align-items:center;gap:10px;padding:12px;background:#ffffff0b;border:1px solid #ffffff10;border-radius:15px}.avatar{width:40px;height:40px;border-radius:13px;background:#ffffff16;display:grid;place-items:center;font-weight:900}.side-user-info{display:grid;min-width:0;flex:1}.side-user-info b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user-info span{font-size:11px;color:#8fa0b8}.side-user .icon-btn{background:#ffffff0d;border-color:#ffffff12;color:#fff;width:36px;height:36px}.main{min-width:0}.top{height:78px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:8}.top h2{margin:0;font-size:22px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:900;color:#8491a3}.top-actions{display:flex;gap:9px;align-items:center}.quick-add{border:0;background:var(--ink);color:#fff;border-radius:12px;padding:10px 14px;cursor:pointer}.quick-add span{font-size:18px}.notif-btn{height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 13px;cursor:pointer}.notif-btn span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;background:var(--red);color:#fff;border-radius:999px;font-size:11px}.content{padding:26px;max-width:1720px;width:100%;margin:auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:19px;box-shadow:var(--shadow)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.dashboard-stats .stat{position:relative;overflow:hidden}.stat small{color:var(--muted);font-weight:650}.stat strong{display:block;font-size:30px;line-height:1.15;margin:7px 0}.stat button{border:0;background:none;padding:0;color:#66758a;font-size:12px;cursor:pointer}.stat-icon{position:absolute;right:15px;top:15px;width:39px;height:39px;border-radius:12px;display:grid;place-items:center}.accent-blue .stat-icon{background:var(--blue-soft)}.accent-amber .stat-icon{background:var(--gold-soft)}.accent-violet .stat-icon{background:var(--violet-soft)}.accent-red .stat-icon{background:var(--red-soft)}.welcome{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.welcome h1{font-size:28px;margin:3px 0}.welcome p{margin:0;color:var(--muted)}.welcome-actions{display:flex;gap:9px}.attention-card{margin:16px 0;background:#fff7f7;border:1px solid #ffd7d7;border-radius:17px;padding:15px;display:flex;align-items:center;gap:13px}.attention-icon{width:40px;height:40px;border-radius:12px;background:#fee2e2;color:#b91c1c;display:grid;place-items:center;font-size:22px;font-weight:900}.attention-card>div:nth-child(2){flex:1}.attention-card p{margin:3px 0 0;color:#7f4b4b}.section-title{margin:25px 0 11px}.section-title h3{margin:2px 0;font-size:18px}.action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.action-card{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;text-align:left;column-gap:12px;border:1px solid var(--line);background:#fff;border-radius:17px;padding:16px;cursor:pointer;box-shadow:0 5px 16px #0f172a08}.action-card:hover{border-color:#c6d0dc;box-shadow:var(--shadow);transform:translateY(-2px)}.action-icon{grid-row:1/3;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:20px}.action-icon.blue{background:var(--blue-soft);color:var(--blue)}.action-icon.green{background:var(--green-soft);color:var(--green)}.action-icon.amber{background:var(--gold-soft);color:var(--amber)}.action-icon.violet{background:var(--violet-soft);color:var(--violet)}.action-card small{color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.toolbar input{min-width:270px}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.table th{font-size:11px;color:#7b889b;text-transform:uppercase;letter-spacing:.06em;background:#f8fafc}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fbfcfe}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef2ff;font-size:11px;font-weight:800}.calendar-page{display:grid;gap:14px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between}.month-nav{display:flex;align-items:center;gap:9px}.month-nav>div:last-child{margin-left:7px}.month-nav h3{margin:1px 0;font-size:20px;text-transform:capitalize}.staff-filter{display:flex;gap:8px;overflow-x:auto;padding:4px 1px 8px}.staff-chip{--staff:#64748b;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:7px 10px;cursor:pointer;white-space:nowrap}.staff-chip.active{border-color:var(--staff);box-shadow:0 0 0 3px color-mix(in srgb,var(--staff) 13%,transparent)}.staff-avatar,.all-staff{width:32px;height:32px;border-radius:10px;background:var(--staff);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900}.all-staff{background:var(--ink)}.staff-chip>span:last-child{display:grid;text-align:left}.staff-chip small{font-size:10px;color:var(--muted)}.calendar-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.dow{padding:10px;text-align:center;font-size:11px;font-weight:850;color:#748196;background:#f8fafc;border-bottom:1px solid var(--line)}.day{min-height:145px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;background:#fff;transition:.12s}.day:nth-child(7n){border-right:0}.day:hover{background:#fbfdff}.day.other{background:#fafbfc;color:#a6afbd}.day.today{box-shadow:inset 0 0 0 2px #6d90bd}.date{display:flex;justify-content:space-between;align-items:center;font-weight:850;margin-bottom:6px}.date span{width:27px;height:27px;border-radius:9px;display:grid;place-items:center}.today .date span{background:var(--ink);color:#fff}.date em{font-style:normal;font-size:10px;padding:2px 6px;border-radius:999px;background:#edf1f7;color:#718096}.day-events{display:grid;gap:5px}.event{--event-color:#2563eb;position:relative;padding:7px 8px 7px 10px;border-radius:9px;background:color-mix(in srgb,var(--event-color) 8%,white);border:1px solid color-mix(in srgb,var(--event-color) 20%,white);overflow:hidden;cursor:pointer;font-size:11px}.event:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--event-color)}.event:hover{transform:translateY(-1px);box-shadow:0 5px 12px #0f172a12}.event-time{font-size:10px;font-weight:850;color:var(--event-color)}.event>b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-team{display:flex;align-items:center;gap:5px;color:#68758a;margin-top:4px;min-width:0}.event-team>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-cancelled{text-decoration:line-through;filter:grayscale(.45);opacity:.7}.status-done{--event-color:#0f9f6e!important}.status-warning{--event-color:#dc2626!important}.staff-dots{display:flex}.staff-dot{width:18px;height:18px;margin-left:-3px;border:2px solid #fff;border-radius:7px;background:var(--staff);color:#fff;display:grid;place-items:center;font-size:6px;font-weight:900}.staff-dot:first-child{margin-left:0}.staff-more{font-size:9px;margin-left:3px}.calendar-hint{font-size:12px;color:var(--muted);text-align:center}.modal{position:fixed;inset:0;background:#0f172aa8;display:grid;place-items:center;padding:18px;z-index:30;backdrop-filter:blur(4px)}.modal-card{width:min(880px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:21px;box-shadow:0 30px 100px #0006}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:15px}.modal-head h3{margin:0}.full{grid-column:1/-1}.form-intro{display:flex;align-items:center;gap:12px;background:#f7f9fc;border:1px solid var(--line);padding:12px;border-radius:15px;margin-bottom:15px}.form-icon{width:42px;height:42px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:20px}.form-intro>div:last-child{display:grid}.form-intro span{font-size:12px;color:var(--muted)}.team-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:9px}.team-heading p{font-size:12px;color:var(--muted);margin:2px 0}.selection-count{background:#eef2f7;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.team-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.worker-card{--staff:#2563eb;position:relative;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:13px;padding:10px;cursor:pointer;background:#fff}.worker-card:hover{border-color:var(--staff)}.worker-card.selected{border-color:var(--staff);background:color-mix(in srgb,var(--staff) 7%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--staff) 10%,transparent)}.worker-card input{position:absolute;opacity:0}.worker-avatar{width:37px;height:37px;border-radius:11px;background:var(--staff);color:#fff;display:grid;place-items:center;font-weight:900;font-size:11px}.worker-info{display:grid;min-width:0}.worker-info b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.worker-info small{color:var(--muted)}.worker-check{margin-left:auto;width:22px;height:22px;border-radius:8px;background:#e9edf3;color:transparent;display:grid;place-items:center;font-weight:900}.worker-card.selected .worker-check{background:var(--staff);color:#fff}.cancel-box{display:none;grid-template-columns:1fr 1fr;gap:12px;padding:12px;border-radius:14px;background:var(--red-soft);border:1px solid #ffd9d9}.cancel-box.show{display:grid}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.page-head{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:17px}.page-head h3{font-size:22px;margin:2px 0}.page-head p{margin:0;color:var(--muted)}.page-actions{display:flex;gap:9px}.mini-stats{grid-template-columns:repeat(3,1fr);margin-bottom:15px}.mini-stats .card strong{font-size:26px}.employee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.employee-card{--staff:#2563eb;background:#fff;border:1px solid var(--line);border-top:3px solid var(--staff);border-radius:17px;padding:16px;box-shadow:0 4px 15px #0f172a08}.employee-card.inactive{opacity:.62;filter:grayscale(.5)}.employee-top{display:flex;justify-content:space-between}.employee-avatar{width:48px;height:48px;border-radius:14px;background:var(--staff);color:#fff;display:grid;place-items:center;font-weight:900}.status-pill{font-size:10px;font-weight:850;border-radius:999px;padding:5px 8px;height:max-content}.status-pill.online{background:var(--green-soft);color:#087853}.status-pill.off{background:#edf0f4;color:#7b8797}.employee-card h4{font-size:17px;margin:12px 0 1px}.employee-card>p{margin:0;color:var(--muted)}.employee-meta{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;margin:15px 0;padding:11px;background:#f8fafc;border-radius:12px;font-size:11px}.employee-meta span{color:var(--muted)}.employee-meta b{overflow:hidden;text-overflow:ellipsis}.employee-actions{display:flex;gap:8px}.message-list{display:grid;gap:9px}.message-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;cursor:pointer}.message-card.unread{border-left:4px solid var(--blue);background:#fbfdff}.message-card:hover{box-shadow:var(--shadow)}.message-avatar{width:40px;height:40px;border-radius:12px;background:#e9eef6;display:grid;place-items:center;font-weight:900;flex:none}.message-main{flex:1;min-width:0}.message-head{display:flex;justify-content:space-between;gap:12px}.message-head time{font-size:11px;color:var(--muted)}.message-main p{margin:4px 0;color:#4d5b70}.message-main small{color:var(--muted)}.unread-dot{width:9px;height:9px;border-radius:50%;background:var(--blue);margin-top:7px}.notif-list{display:grid;gap:9px}.notif{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.notif.unread{border-left:4px solid var(--blue)}.mobilebar,.mobile-menu{display:none}.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;padding:12px 16px;border-radius:12px;z-index:60;box-shadow:0 12px 30px #0004}.small{font-size:12px;color:var(--muted)}.loading-state,.error-state,.empty-state{min-height:260px;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;color:var(--muted)}.spinner{width:32px;height:32px;border:3px solid #e5eaf1;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.error-icon{width:48px;height:48px;border-radius:15px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;font-size:24px;font-weight:900}@keyframes spin{to{transform:rotate(360deg)}}.done-row{opacity:.58;text-decoration:line-through}.checklist{display:grid;gap:8px;max-height:260px;overflow:auto;border:1px solid var(--line);padding:12px;border-radius:10px}.recipient-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px}.recipient-btn{min-height:36px;padding:8px 12px;border-radius:10px}.recipient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.recipient-card{--staff:#2563eb;position:relative;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;cursor:pointer;min-width:0;transition:.15s}.recipient-card:hover{border-color:var(--staff);box-shadow:0 6px 14px rgba(15,23,42,.06)}.recipient-card.selected{border-color:var(--staff);background:color-mix(in srgb,var(--staff) 7%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--staff) 10%,transparent)}.recipient-card input{position:absolute;opacity:0;inset:0;cursor:pointer}.recipient-avatar{width:40px;height:40px;border-radius:12px;background:var(--staff);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900;flex:none}.recipient-main{display:grid;min-width:0;flex:1}.recipient-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipient-main small{color:var(--muted)}.recipient-check{width:24px;height:24px;border-radius:8px;background:#e9edf3;color:transparent;display:grid;place-items:center;font-weight:900;flex:none}.recipient-card.selected .recipient-check{background:var(--staff);color:#fff}.recipient-card.selected .recipient-main b{color:var(--ink)}.statline{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--line)}.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.workflow-card h3{display:flex;align-items:center;justify-content:space-between;gap:10px}.workflow-card .table{min-width:620px}.notice{padding:13px;border-radius:13px;background:var(--gold-soft);border:1px solid #f0d89d}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:1150px){.cards,.action-grid{grid-template-columns:repeat(2,1fr)}.employee-grid{grid-template-columns:repeat(2,1fr)}.team-picker{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1366px){.shell{display:block}.side{display:none}.top{height:66px;padding:0 14px}.top h2{font-size:19px}.quick-add b{display:none}.quick-add{width:42px;height:42px;padding:0}.content{padding:14px 12px 84px}.cards{grid-template-columns:1fr 1fr;gap:10px}.card{padding:14px;border-radius:15px}.welcome{align-items:flex-start}.welcome-actions{display:none}.action-grid{grid-template-columns:1fr 1fr}.mobilebar{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;background:#fff;border-top:1px solid var(--line);z-index:20;padding-bottom:env(safe-area-inset-bottom)}.mobilebar button{border:0;background:#fff;padding:8px 2px;font-size:10px;color:#64748b}.mobilebar button div{font-size:17px}.mobilebar button.active{color:#0f172a;font-weight:850}.mobile-menu{position:fixed;inset:0;background:#0f172a99;z-index:50;display:grid;align-items:end}.mobile-menu-card{background:#fff;border-radius:22px 22px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom));max-height:85vh;overflow:auto}.mobile-menu-item{width:100%;display:flex;gap:12px;align-items:center;border:0;background:#fff;padding:13px;border-bottom:1px solid var(--line);font-weight:700;text-align:left}.danger-link{color:var(--red)}.calendar-toolbar{align-items:flex-start}.calendar-toolbar>.btn{display:none}.month-nav{flex-wrap:wrap}.calendar-card{overflow-x:auto}.calendar{min-width:760px}.day{min-height:118px}.staff-filter{margin-left:-2px;margin-right:-2px}.grid2{grid-template-columns:1fr}.full{grid-column:auto}.team-picker{grid-template-columns:1fr 1fr}.cancel-box.show{grid-template-columns:1fr}.page-head{align-items:flex-start}.page-actions{flex-wrap:wrap;justify-content:flex-end}.employee-grid{grid-template-columns:1fr 1fr}.workflow-grid{grid-template-columns:1fr}.workflow-card .table{min-width:560px}.toolbar input{min-width:0;flex:1}.attention-card{align-items:flex-start;flex-wrap:wrap}.attention-card .btn{width:100%}}
@media(max-width:600px){.content{padding-left:10px;padding-right:10px}.cards,.action-grid,.employee-grid,.mini-stats{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stats .stat strong{font-size:25px}.action-card{padding:13px}.team-picker{grid-template-columns:1fr}.recipient-grid{grid-template-columns:1fr}.modal{padding:0;align-items:end}.modal-card{border-radius:22px 22px 0 0;max-height:94vh}.page-head{display:grid}.page-actions{justify-content:flex-start}.calendar-toolbar .eyebrow{display:none}.month-nav h3{font-size:17px}.top .eyebrow{display:none}.message-head{display:grid;gap:2px}}
.gallery-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.gallery-head p{margin:3px 0 0}.photo-upload-btn{position:relative;white-space:nowrap}.loading-upload{opacity:.6;pointer-events:none}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.photo-card{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.photo-open{display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;background:#eef2f7;cursor:pointer}.photo-open img{width:100%;height:100%;object-fit:cover;display:block}.photo-meta{display:grid;gap:4px;padding:11px}.photo-meta small{color:var(--muted)}.photo-delete{justify-self:start;min-height:34px;padding:6px 10px;margin-top:4px}.photo-preview{display:grid;place-items:center;background:#0f172a;border-radius:14px;overflow:hidden;min-height:260px}.photo-preview img{max-width:100%;max-height:72vh;object-fit:contain}.notif-button{width:100%;text-align:left;font:inherit;cursor:pointer}.notif-button:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
@media(max-width:1366px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.gallery-head{align-items:flex-start;display:grid}.photo-upload-btn{width:100%}.photo-grid{grid-template-columns:1fr 1fr;gap:8px}.photo-meta{padding:9px}.photo-meta b{font-size:12px}}

.nav-address{display:inline-flex;align-items:center;gap:6px}.gallery-head{flex-wrap:wrap}

.dashboard-link{cursor:pointer;transition:.18s}.dashboard-link:hover{transform:translateY(-2px);border-color:#cbd5e1;box-shadow:0 12px 28px rgba(15,23,42,.10)}.dashboard-link button{pointer-events:none}.notif-row{display:flex;align-items:flex-start;gap:8px}.notif-row .notif-button{flex:1;border:0;background:transparent;padding:0}.danger-icon{color:var(--red);flex:none}.mobile-cards{display:none}
@media(max-width:700px){body{font-size:14px}.top{position:sticky;top:0;height:auto;min-height:62px;padding:8px 10px;gap:8px}.top-actions{gap:6px}.notif-btn,.quick-add{min-width:40px;height:40px;padding:0 10px}.content{padding:10px 8px calc(82px + env(safe-area-inset-bottom))}.card{border-radius:14px}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-link{min-height:126px}.toolbar{display:grid;grid-template-columns:1fr;align-items:stretch}.toolbar .btn,.toolbar input,.toolbar select{width:100%;min-width:0}.tablewrap{border:0;overflow:visible}.table{display:block;width:100%}.table thead{display:none}.table tbody{display:grid;gap:10px}.table tr{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.table td{display:block;border:0!important;padding:6px 4px!important;width:100%;overflow-wrap:anywhere}.table td:last-child{display:flex;flex-wrap:wrap;gap:6px;padding-top:9px!important;border-top:1px solid var(--line)!important}.table td:last-child .btn{flex:1 1 calc(50% - 6px);min-width:120px;padding:8px 9px;min-height:38px}.workflow-card .table{min-width:0!important}.calendar-card{overflow:visible}.calendar{min-width:0;display:block}.dow{display:none}.day{min-height:0;border:1px solid var(--line)!important;border-radius:13px;margin-bottom:8px;padding:10px}.day.other{display:none}.day-events{gap:7px}.event{padding:10px 10px 10px 13px;font-size:12px}.month-nav{width:100%;justify-content:space-between}.staff-filter{padding-bottom:4px}.staff-chip{padding:6px 8px}.page-head{gap:10px}.page-actions{display:grid;grid-template-columns:1fr}.modal{align-items:end;padding:0}.modal-card{width:100%;max-height:88vh;border-radius:20px 20px 0 0;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.modal-actions{position:sticky;bottom:0;background:#fff;margin-left:-14px;margin-right:-14px;padding:12px 14px calc(8px + env(safe-area-inset-bottom));z-index:2}.modal-actions .btn{flex:1}.photo-grid{grid-template-columns:1fr 1fr}.employee-grid{grid-template-columns:1fr}.message-card{padding:11px}.mobilebar{padding-bottom:env(safe-area-inset-bottom)}.notif-row{align-items:center}.notif-row .danger-icon{width:38px;height:38px}.welcome{margin-bottom:12px}.attention-card{padding:12px}.action-grid{grid-template-columns:1fr 1fr}.action-card{grid-template-columns:40px 1fr;padding:11px}.action-icon{width:40px;height:40px}.recipient-grid,.team-picker{grid-template-columns:1fr}}
@media(max-width:420px){.dashboard-stats,.action-grid,.photo-grid{grid-template-columns:1fr}.dashboard-link{min-height:auto}.table td:last-child .btn{flex-basis:100%}.top h2{font-size:17px}.notif-btn span{min-width:17px;height:17px}.mobilebar button{font-size:9px}}

/* CRM DEMO 5.4.42 — CSS module: 10-mobile-foundation.css
   Fundament mobilny, safe-area, viewport i wczesne poprawki mobile.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* CRM DEMO 2.9.5 — mobile native layout correction */
html,body,#app{width:100%;max-width:none;min-height:100%;overflow-x:hidden}
.shell,.main,.top,.content{width:100%;max-width:none}
@media(max-width:1366px){
  body{background:#f5f7fb}
  .top{background:#0b1220;color:#fff;border:0;min-height:56px;height:56px;padding:0 12px;box-shadow:0 2px 12px rgba(0,0,0,.16)}
  .top h2{color:#fff;font-size:18px}
  .top-actions{height:100%}
  .quick-add,.notif-btn{background:#16243a;color:#fff;border:1px solid #2a3a52;box-shadow:none}
  .notif-btn span{background:#dc2626;color:#fff}
  .content{margin:0;padding:12px 10px 78px;width:100%;max-width:none}
  .mobilebar{left:0;right:0;bottom:0;width:100%;height:64px;padding:0;background:#0b1220;border:0;box-shadow:0 -4px 18px rgba(0,0,0,.22)}
  .mobilebar button{height:64px;background:#0b1220;color:#94a3b8;padding:7px 1px 5px}
  .mobilebar button.active{color:#fff;background:#152238}
  .mobilebar button div{font-size:18px;line-height:1.1}
  .mobilebar button span{display:block;line-height:1.1;margin-top:3px}
  .dashboard-stats{grid-template-columns:1fr!important}
  .dashboard-link{min-height:auto!important;width:100%}
  .card,.attention-card,.action-card{width:100%;max-width:100%}
  .welcome h1{font-size:22px;line-height:1.2}
  .tablewrap,.table,.workflow-card{max-width:100%}
}
@media(max-width:430px){
  .top{min-height:54px;height:54px}
  .content{padding-left:8px;padding-right:8px;padding-bottom:76px}
  .mobilebar{height:62px}
  .mobilebar button{height:62px;font-size:9px}
  .top-actions .quick-add{display:none}
}

/* CRM DEMO 2.9.6 — fixed desktop sidebar and native safety spacing */
@media(min-width:1367px){
  .shell{display:block;min-height:100vh}
  .side{position:fixed!important;top:0;left:0;bottom:0;width:258px;height:100vh;overflow-y:auto;overflow-x:hidden;z-index:30}
  .main{margin-left:258px;min-height:100vh;width:calc(100% - 258px)}
}
@media(max-width:1366px){
  html,body{background:#000}
  .shell,.main{background:var(--bg)}
}


/* CRM DEMO 3.0.0 — mobile WebView safe frame
   Visual updates are delivered from the CRM server, so the APK does not need reinstalling. */
@media (max-width:1366px){
  
  html{background:#000!important;min-height:100%;}
  body{background:#000!important;min-height:100dvh;overflow-x:hidden;}
  #app{background:#000;min-height:100dvh;padding-top:var(--tomzal-safe-top);padding-bottom:var(--tomzal-safe-bottom);}
  .shell{
    margin:0!important;
    min-height:calc(100dvh - var(--tomzal-safe-top) - var(--tomzal-safe-bottom))!important;
    background:var(--bg)!important;
    overflow:visible;
  }
  .main{
    min-height:calc(100dvh - var(--tomzal-safe-top) - var(--tomzal-safe-bottom))!important;
    background:var(--bg)!important;
  }
  .top{
    z-index:40!important;
    flex:none;
  }
  .content{
    padding-bottom:calc(var(--tomzal-mobile-nav-height) + 18px)!important;
  }
  .mobilebar{
    padding-bottom:0!important;
    z-index:60!important;
  }
  .mobilebar button{
    height:var(--tomzal-mobile-nav-height)!important;
    min-width:0;
    overflow:hidden;
  }
  .mobilebar button div,
  .mobilebar button span{
    pointer-events:none;
  }
  .modal,
  .mobile-menu{
    top:var(--tomzal-safe-top)!important;
    bottom:var(--tomzal-safe-bottom)!important;
  }
  .mobile-menu-card,
  .modal-card{
    padding-bottom:18px!important;
  }
  .modal-actions{
    padding-bottom:12px!important;
  }
}
@media (max-width:430px){
  :root{--tomzal-mobile-nav-height:62px;}
}


/* CRM DEMO 3.0.1 — solid black Android navigation background */
@media (max-width:1366px){
  body::after{
    content:"";
    position:fixed;
    left:0;
    right:0;
    z-index:59;
    pointer-events:none;
  }
  #app::after{
    content:"";
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    height:var(--tomzal-safe-bottom);
    min-height:30px;
    background:#000!important;
    z-index:58;
    pointer-events:none;
  }
}


/* CRM DEMO 3.0.2 — complete mobile safe-area and modal layout fix */
@media (max-width:1366px){
  :root{
    --tomzal-safe-top:max(15px, env(safe-area-inset-top, 0px));
    --tomzal-safe-bottom:max(30px, env(safe-area-inset-bottom, 0px));
    --tomzal-mobile-nav-height:64px;
  }

  html,body{background:#000!important;}
  body{overflow-x:hidden!important;}

  /* These two layers always remain visible, including above modals and menus. */
  body::before,
  body::after{
    content:"";
    position:fixed;
    left:0;
    right:0;
    background:#000!important;
    pointer-events:none;
    z-index:2147483646!important;
  }
  body::before{top:0;height:var(--tomzal-safe-top);min-height:15px;}
  body::after{bottom:0;height:var(--tomzal-safe-bottom);min-height:30px;}
  #app::after{display:none!important;}

  #app{
    min-height:100dvh!important;
    padding-top:var(--tomzal-safe-top)!important;
    padding-bottom:var(--tomzal-safe-bottom)!important;
    background:#000!important;
  }
  .shell,.main{
    min-height:calc(100dvh - var(--tomzal-safe-top) - var(--tomzal-safe-bottom))!important;
    background:var(--bg)!important;
  }
  .top{top:0!important;}
  .content{
    padding-bottom:calc(var(--tomzal-mobile-nav-height) + 34px)!important;
    overflow:visible!important;
  }

  .mobilebar{
    height:var(--tomzal-mobile-nav-height)!important;
    padding:0!important;
    background:#fff!important;
  }
  body.tomzal-modal-open .mobilebar,
  body.tomzal-menu-open .mobilebar{visibility:hidden!important;pointer-events:none!important;}

  /* Modal and mobile menu occupy only the usable screen between black bars. */
  .modal,.mobile-menu{
    position:fixed!important;
    inset:var(--tomzal-safe-top) 0 var(--tomzal-safe-bottom) 0!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    z-index:1000!important;
    background:rgba(2,6,23,.78)!important;
    overflow:hidden!important;
  }
  .modal{display:flex!important;align-items:flex-end!important;justify-content:center!important;}
  .modal.hidden,.mobile-menu.hidden{display:none!important;}

  .modal-card,.mobile-menu-card{
    width:100%!important;
    max-width:100%!important;
    max-height:calc(100dvh - var(--tomzal-safe-top) - var(--tomzal-safe-bottom))!important;
    margin:0!important;
    border-radius:20px 20px 0 0!important;
    background:#fff!important;
    padding:0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .mobile-menu-card{max-height:88%!important;overflow-y:auto!important;padding:0 14px 18px!important;}

  .modal-head{
    flex:0 0 auto!important;
    position:sticky!important;
    top:0!important;
    z-index:8!important;
    background:#fff!important;
    padding:14px!important;
    border-bottom:1px solid var(--line)!important;
    margin:0!important;
  }
  #modalBody{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding:0 14px 18px!important;
    background:#fff!important;
  }
  #modalBody form{min-width:0!important;padding-bottom:2px!important;}
  #modalBody .grid2,#modalBody .team-picker,#modalBody .recipient-grid{grid-template-columns:1fr!important;}
  #modalBody input,#modalBody select,#modalBody textarea,#modalBody .btn{max-width:100%!important;}

  .modal-actions{
    position:sticky!important;
    bottom:0!important;
    z-index:12!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    margin:14px -14px -18px!important;
    padding:12px 14px 14px!important;
    background:#fff!important;
    border-top:1px solid var(--line)!important;
    box-shadow:0 -8px 20px rgba(15,23,42,.08)!important;
  }
  .modal-actions .btn{width:100%!important;min-width:0!important;}

  /* Buttons and the last elements on normal pages must stay above the bottom navigation. */
  .page-actions,.toolbar,.card:last-child,.tablewrap:last-child,.calendar-hint:last-child{
    scroll-margin-bottom:calc(var(--tomzal-mobile-nav-height) + 28px)!important;
  }
  .page-actions{padding-bottom:4px!important;}
  .table td:last-child{padding-bottom:10px!important;}
  .toast{bottom:calc(var(--tomzal-safe-bottom) + var(--tomzal-mobile-nav-height) + 10px)!important;z-index:1200!important;}

  /* The current calendar day is an explicit mobile scroll target. */
  .calendar .day.today{scroll-margin-top:82px!important;scroll-margin-bottom:calc(var(--tomzal-mobile-nav-height) + 24px)!important;}
}

@media (max-width:430px){
  .modal-actions{grid-template-columns:1fr!important;}
  #modalBody{padding-left:10px!important;padding-right:10px!important;}
  .modal-actions{margin-left:-10px!important;margin-right:-10px!important;padding-left:10px!important;padding-right:10px!important;}
}
/* 3.0.3 - pewne akcje mobilne */
.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.confirm-box p{margin:0 0 18px;line-height:1.55}.confirm-box .modal-actions{position:static;padding:0;margin-top:16px;background:transparent;border:0}
@media(max-width:700px){.page-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}.page-actions .btn{width:100%;min-height:46px}.row-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.row-actions .btn{width:100%;min-height:42px}.confirm-box .modal-actions{display:grid;grid-template-columns:1fr;gap:10px}.confirm-box .modal-actions .btn{width:100%;min-height:48px}}
/* 3.0.4 - klikalne informacje procesu i usuwanie pozycji ze Spraw */
.workflow-notif{display:block;width:100%;border:0;text-align:left;cursor:pointer;font:inherit;color:inherit;background:var(--card,#fff);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.workflow-notif span,.workflow-notif small{display:block}.workflow-notif small{margin-top:7px;color:var(--muted);font-weight:700}.workflow-notif:hover,.workflow-notif:focus-visible{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.1);background:#f8fbff;outline:2px solid rgba(37,99,235,.2);outline-offset:1px}
.workflow-row{scroll-margin-top:100px;scroll-margin-bottom:120px}.workflow-highlight{animation:tomzalWorkflowPulse 2.6s ease both}@keyframes tomzalWorkflowPulse{0%,100%{background:transparent}12%,65%{background:#fff4cc;box-shadow:inset 4px 0 0 #d9a62e}}
.workflow-actions{min-width:320px}
@media(max-width:700px){.workflow-notif{min-height:74px;padding:14px!important}.workflow-actions{min-width:0;grid-template-columns:1fr!important}.workflow-actions .btn{width:100%!important}.workflow-row{scroll-margin-top:84px;scroll-margin-bottom:calc(var(--tomzal-mobile-nav-height) + 80px)}}

/* CRM DEMO 3.0.5 — bulk cases and today's mobile plan */
.bulk-case-bar{position:sticky;top:76px;z-index:8;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:14px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.bulk-case-bar label{display:flex;align-items:center;gap:8px;font-weight:800}.bulk-case-bar input,.case-check{width:20px;height:20px;accent-color:#d7a62f}.bulk-case-bar span{color:var(--muted);margin-right:auto}.case-check-cell{width:42px!important;text-align:center!important}
.today-plan{margin-bottom:16px}.today-plan-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.today-plan-head h3{margin:3px 0 0;text-transform:capitalize}.today-plan-list{display:grid;gap:10px}.today-plan-item{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.today-plan-time{font-size:20px;color:var(--ink)}.today-plan-main{display:grid;gap:3px;min-width:0}.today-plan-main span,.today-plan-main small{color:var(--muted)}.today-plan-actions{display:flex;gap:7px;flex-wrap:wrap}.customer-quick-data{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.customer-quick-data p{margin:0;padding:9px 0;border-bottom:1px solid var(--line)}.customer-quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.customer-contracts{display:grid;gap:8px}.contract-quick{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px;text-align:left;display:grid;gap:3px}.contract-quick span,.contract-quick small{color:var(--muted)}.empty-state.compact{min-height:120px}
@media(max-width:700px){.bulk-case-bar{top:calc(var(--tomzal-safe-top,15px) + 62px);display:grid;grid-template-columns:1fr auto}.bulk-case-bar span{margin:0}.bulk-case-bar .btn{grid-column:1/-1;width:100%}.case-check-cell{display:flex!important;justify-content:flex-end!important;align-items:center!important;width:100%!important;text-align:right!important;padding-bottom:3px!important}.case-check{width:24px;height:24px;margin-left:auto!important}.today-plan-item{grid-template-columns:58px 1fr;padding:11px}.today-plan-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.today-plan-actions .btn:last-child{grid-column:1/-1}.customer-quick-data{grid-template-columns:1fr}.customer-quick-actions{grid-template-columns:1fr 1fr}.today-plan{scroll-margin-top:calc(var(--tomzal-safe-top,15px) + 70px)}}

/* CRM DEMO 3.0.6 - kolory pracownikow i galeria w planie dnia */
.staff-avatar{background:var(--staff-color,#122033)!important;color:#fff!important;border:2px solid color-mix(in srgb,var(--staff-color,#122033) 72%,#fff)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--staff-color,#122033) 14%,transparent)}
.staff-chip.active .staff-avatar{box-shadow:0 0 0 4px color-mix(in srgb,var(--staff-color,#122033) 28%,transparent)}
.event{border-left:4px solid var(--staff-color,#2563eb)!important}
.event::before{background:var(--staff-color,#2563eb)!important}
.today-plan-item{border-left:5px solid var(--staff-color,#2563eb)!important}
.today-plan-time{color:var(--staff-color,#2563eb);font-weight:900}
.gallery-upload-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.gallery-upload-actions .btn{white-space:nowrap}
@media(max-width:1366px){
 .today-plan-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:7px;width:100%}
 .today-plan-actions .btn{width:100%;min-width:0}
 .gallery-head{display:grid!important;gap:12px}
 .gallery-upload-actions{display:grid;grid-template-columns:1fr;width:100%}
 .gallery-upload-actions .btn{width:100%;min-height:46px}
}


/* CRM DEMO 3.0.7 */
.message-tabs{display:flex;gap:8px;margin:0 0 14px}.upload-summary{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;margin-bottom:12px}.upload-summary span,.upload-summary p{color:var(--muted);margin:0}.upload-progress{display:grid;gap:7px;margin:12px 0}.upload-progress-bar{height:9px;background:#e8edf4;border-radius:999px;overflow:hidden}.upload-progress-bar i{display:block;width:0;height:100%;background:var(--blue);transition:width .2s}.photo-expiry{color:#9a6700!important}.today-plan-actions .btn{min-height:40px;font-weight:800}
@media(max-width:700px){.today-plan-item{display:grid!important;grid-template-columns:52px minmax(0,1fr)!important;gap:8px!important;padding:10px!important}.today-plan-time{font-size:15px!important;align-self:start}.today-plan-main b{font-size:13px}.today-plan-main span,.today-plan-main small{font-size:10px}.today-plan-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}.today-plan-actions .btn{grid-column:auto!important;width:100%!important;min-width:0!important;min-height:38px!important;padding:8px 6px!important;font-size:11px!important}.today-plan-actions .btn.gold{grid-column:1/-1!important}.message-tabs{display:grid;grid-template-columns:1fr 1fr}.gallery-upload-actions{position:sticky;bottom:0;background:#fff;padding:8px 0;z-index:3}}

/* 3.0.8 */
.message-card{position:relative}.message-delete{position:static}
@media(max-width:700px){.message-card{padding-right:14px;}.message-delete{width:auto}.gallery-upload-actions{display:grid;grid-template-columns:1fr;gap:8px}.photo-upload-btn{width:100%;justify-content:center}}


/* CRM DEMO 3.0.9 - mobilne usuwanie zdjec i wysylanie w tle */
.photo-upload-indicator{position:fixed;right:18px;bottom:calc(var(--tomzal-safe-bottom,30px) + var(--tomzal-mobile-nav-height,64px) + 14px);z-index:1400;width:min(360px,calc(100vw - 28px));display:grid;grid-template-columns:1fr 34px;gap:10px;align-items:center;padding:12px 13px;background:#0c1728;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 14px 38px rgba(0,0,0,.32)}
.photo-upload-indicator.hidden{display:none}.photo-upload-indicator.done{background:#113b28}.photo-upload-indicator>div:first-child{display:grid;gap:2px}.photo-upload-indicator span{font-size:12px;color:#dbe5f3}.photo-upload-indicator .icon-btn{color:#fff;background:rgba(255,255,255,.12);border:0}.photo-upload-mini{grid-column:1/-1;height:6px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden}.photo-upload-mini i{display:block;width:0;height:100%;background:#e0ad36;transition:width .18s ease}
@media(max-width:700px){.photo-upload-indicator{left:14px;right:14px;bottom:calc(var(--tomzal-safe-bottom,30px) + var(--tomzal-mobile-nav-height,64px) + 10px);width:auto}.photo-delete{min-height:44px!important}.confirm-box .modal-actions{position:static!important;margin:16px 0 0!important;padding:0!important;background:transparent!important}}

/* CRM DEMO 3.0.10 — widoczne opcje rozwijanych list na mobile */
select{
  color-scheme:light!important;
  background-color:#fff!important;
  color:#122033!important;
  -webkit-text-fill-color:#122033!important;
}
select option,
select optgroup{
  background:#fff!important;
  background-color:#fff!important;
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
  font-weight:500;
}
select optgroup{font-weight:800;}
select option:checked{
  background:#dbeafe!important;
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
}
select option:disabled{
  color:#6b7280!important;
  -webkit-text-fill-color:#6b7280!important;
}
@media(max-width:1366px){
  html,body,#app,.modal,.modal-card{color-scheme:light!important;}
  input,textarea,select{color-scheme:light!important;}
  .field select,.toolbar select,.modal select{
    background-color:#fff!important;
    color:#122033!important;
    -webkit-text-fill-color:#122033!important;
    opacity:1!important;
  }
  .field select option,.toolbar select option,.modal select option,
  .field select optgroup,.toolbar select optgroup,.modal select optgroup{
    background-color:#fff!important;
    color:#111827!important;
    -webkit-text-fill-color:#111827!important;
    opacity:1!important;
  }
}


/* CRM DEMO 3.0.11 — czytelny, własny wybór opcji na Androidzie/iOS */
.mobile-select-open{overflow:hidden!important}
.mobile-select-layer{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center;color:#111827!important;-webkit-text-fill-color:#111827!important}
.mobile-select-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.58)}
.mobile-select-sheet{position:relative;width:min(680px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -16px 50px rgba(0,0,0,.25);overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}
.mobile-select-sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 14px;border-bottom:1px solid #e5e7eb;background:#fff;color:#111827}
.mobile-select-sheet header strong{font-size:18px;line-height:1.25;color:#111827!important;-webkit-text-fill-color:#111827!important}
.mobile-select-close{width:42px;height:42px;border:0;border-radius:12px;background:#f1f5f9;color:#111827!important;-webkit-text-fill-color:#111827!important;font-size:28px;line-height:1;cursor:pointer}
.mobile-select-options{overflow:auto;overscroll-behavior:contain;padding:8px;background:#fff}
.mobile-select-group{padding:12px 12px 6px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#64748b!important;-webkit-text-fill-color:#64748b!important;background:#fff}
.mobile-select-option{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #eef2f7;border-radius:10px;padding:12px 14px;background:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827!important;text-align:left;font:inherit;font-size:16px;font-weight:650;cursor:pointer}
.mobile-select-option span{display:block;color:#111827!important;-webkit-text-fill-color:#111827!important;white-space:normal;overflow-wrap:anywhere}
.mobile-select-option i{width:28px;flex:none;color:#2563eb!important;-webkit-text-fill-color:#2563eb!important;font-style:normal;font-size:20px;font-weight:900;text-align:center}
.mobile-select-option.selected{background:#eaf3ff!important;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important}
.mobile-select-option:disabled{background:#f8fafc!important;color:#94a3b8!important;-webkit-text-fill-color:#94a3b8!important;cursor:not-allowed}
.mobile-select-option:disabled span{color:#94a3b8!important;-webkit-text-fill-color:#94a3b8!important}
.mobile-select-sheet footer{padding:10px 14px 14px;border-top:1px solid #e5e7eb;background:#fff}
.mobile-select-sheet footer .btn{width:100%;min-height:48px;color:#111827!important;-webkit-text-fill-color:#111827!important}
@media(min-width:1367px) and (pointer:fine){.mobile-select-layer{display:none!important}}

/* CRM DEMO 3.0.12 — natywny select na mobile jest całkowicie nieklikalny. */
@media (max-width:1366px), (pointer:coarse){
  select.mobile-select-native-hidden{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    opacity:0!important;
    pointer-events:none!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
    overflow:hidden!important;
  }
  .mobile-select-proxy{
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 14px;
    border:1px solid #cbd5e1;
    border-radius:12px;
    background:#fff!important;
    color:#111827!important;
    -webkit-text-fill-color:#111827!important;
    font:inherit;
    font-size:16px;
    line-height:1.35;
    text-align:left;
    cursor:pointer;
    box-shadow:none;
  }
  .mobile-select-proxy:focus-visible{
    outline:3px solid rgba(37,99,235,.22);
    border-color:#2563eb;
  }
  .mobile-select-proxy:disabled{opacity:.55;cursor:not-allowed}
  .mobile-select-proxy-text{
    min-width:0;
    flex:1;
    white-space:normal;
    overflow-wrap:anywhere;
    color:#111827!important;
    -webkit-text-fill-color:#111827!important;
  }
  .mobile-select-proxy-arrow{
    flex:none;
    font-size:22px;
    line-height:1;
    color:#475569!important;
    -webkit-text-fill-color:#475569!important;
  }
}

/* CRM DEMO 3.0.13 — własny picker daty i godziny na mobile */
@media(max-width:1366px),(pointer:coarse){
  input.mobile-datetime-native-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip-path:inset(50%)!important;left:-9999px!important}
  .mobile-datetime-proxy{width:100%;min-height:52px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #cbd5e1;border-radius:12px;padding:0 14px;background:#fff;color:#111827;text-align:left;font:inherit;font-size:16px;font-weight:700}
  .mobile-datetime-proxy-icon{font-size:20px;color:#2563eb}.mobile-datetime-proxy-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-datetime-proxy-arrow{font-size:20px;color:#64748b}
}
.mobile-datetime-open{overflow:hidden!important}.mobile-datetime-layer{position:fixed;inset:0;z-index:10020;display:flex;align-items:flex-end;justify-content:center;color:#111827}.mobile-datetime-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62)}
.mobile-datetime-sheet{position:relative;width:min(680px,100%);max-height:94vh;display:flex;flex-direction:column;background:#fff;border-radius:22px 22px 0 0;overflow:hidden;box-shadow:0 -18px 55px rgba(0,0,0,.28);padding-bottom:env(safe-area-inset-bottom)}
.mobile-datetime-sheet header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e5e7eb}.mobile-datetime-sheet header strong{font-size:18px}.mobile-datetime-close{width:42px;height:42px;border:0;border-radius:12px;background:#f1f5f9;font-size:28px;color:#111827}
.mobile-datetime-content{overflow:auto;padding:14px}.mobile-datetime-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin-bottom:10px}.mobile-datetime-nav button{height:42px;border:0;border-radius:11px;background:#f1f5f9;font-size:28px;color:#111827}.mobile-datetime-month{text-align:center;text-transform:capitalize;font-size:17px}
.mobile-datetime-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.mobile-datetime-dow{text-align:center;padding:5px 0;font-size:11px;font-weight:900;color:#64748b}.mobile-datetime-day{aspect-ratio:1;border:0;border-radius:11px;background:#fff;color:#111827;font-size:15px;font-weight:700}.mobile-datetime-day.other{color:#b0b8c4}.mobile-datetime-day.today{box-shadow:inset 0 0 0 2px #93c5fd}.mobile-datetime-day.selected{background:#2563eb!important;color:#fff!important;box-shadow:none}
.mobile-datetime-time-title{margin:18px 0 9px;font-weight:900}.mobile-datetime-times{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;max-height:170px;overflow:auto}.mobile-datetime-time{min-height:42px;border:1px solid #dbe3ec;border-radius:10px;background:#fff;color:#111827;font-size:15px;font-weight:750}.mobile-datetime-time.selected{border-color:#2563eb;background:#eaf3ff;color:#1d4ed8}
.mobile-datetime-sheet footer{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px 14px 14px;border-top:1px solid #e5e7eb;background:#fff}.mobile-datetime-sheet footer .btn{width:100%;min-height:48px}
@media(min-width:1367px) and (pointer:fine){.mobile-datetime-layer{display:none!important}}

/* CRM DEMO 3.0.14 — brak niebieskiego podświetlenia dotyku na mobilnych selectach */
@media(max-width:1366px),(pointer:coarse){
  .mobile-select-proxy,
  .mobile-select-option,
  .mobile-select-close,
  .mobile-select-cancel{
    -webkit-tap-highlight-color:transparent!important;
    tap-highlight-color:transparent!important;
    outline:none!important;
  }
  .mobile-select-proxy:focus,
  .mobile-select-proxy:focus-visible,
  .mobile-select-proxy:active{
    outline:none!important;
    box-shadow:none!important;
    border-color:#cbd5e1!important;
    background:#fff!important;
  }
  .mobile-select-option:focus,
  .mobile-select-option:focus-visible,
  .mobile-select-option:active{
    outline:none!important;
    box-shadow:none!important;
  }
}

/* CRM DEMO 3.0.15 — własny kalendarz daty dla terminu realizacji umowy */
@media(max-width:1366px),(pointer:coarse){
  input.mobile-date-native-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip-path:inset(50%)!important;left:-9999px!important}
  .mobile-date-proxy,.mobile-date-proxy:focus,.mobile-date-proxy:focus-visible,.mobile-date-proxy:active{-webkit-tap-highlight-color:transparent!important;outline:none!important;box-shadow:none!important;border-color:#cbd5e1!important;background:#fff!important}
}
.mobile-date-open{overflow:hidden!important}.mobile-date-layer{position:fixed;inset:0;z-index:10030;display:flex;align-items:flex-end;justify-content:center;color:#111827}.mobile-date-sheet{max-height:88vh}.mobile-date-days{margin-bottom:4px}
@media(min-width:1367px) and (pointer:fine){.mobile-date-layer{display:none!important}}

/* CRM DEMO 3.0.16 — mobilne powiadomienia nad Pulpitem i akcje w jednym wierszu */
@media(max-width:1366px){
  .mobile-dashboard-tab{position:relative!important;overflow:visible!important}
  .mobile-dashboard-tab>div{position:relative;display:inline-block;min-width:24px;overflow:visible!important}
  .mobile-unread-badge{position:absolute;right:-15px;top:-10px;z-index:4;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:2px solid #fff;border-radius:999px;background:#dc2626;color:#fff!important;font-size:10px;font-style:normal;font-weight:900;line-height:1;box-shadow:0 2px 7px rgba(0,0,0,.28)}
  .notif-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;padding:10px 10px 10px 13px!important}
  .notif-row .notif-button{min-width:0!important;width:100%!important;text-align:left!important;padding:0!important}
  .notif-row .danger-icon{position:static!important;flex:none!important;width:42px!important;height:42px!important;margin:0!important;align-self:center!important}
  .notif-row .danger-icon::after{content:"Usuń";position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
}
\n\n/* CRM DEMO 3.1.1 — blokada przypadkowego „przebicia” dotyku po otwarciu formularza. */\n@media (max-width: 1366px), (pointer: coarse) {\n  #modal.modal-touch-guard .modal-card {\n    position: relative;\n  }\n  #modal.modal-touch-guard .modal-card::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    z-index: 9999;\n    background: transparent;\n    touch-action: none;\n  }\n}\n

/* CRM DEMO 3.1.2 — archiwum klientów */
.customer-tabs{display:flex;gap:8px;align-items:center}
.archive-info{margin:14px 0;padding:13px 15px;border:1px solid #dbe3ee;border-radius:12px;}
.archive-info span{color:#64748b;font-size:13px}
.archive-mode .table tbody tr{background:#fbfcfe}
@media(max-width:700px){
 .customer-toolbar{align-items:stretch!important}
 .customer-toolbar,.customer-tabs{display:flex!important;flex-wrap:wrap!important;width:100%}
 .customer-tabs .btn{flex:1 1 140px}
 .customer-toolbar>input{order:5;width:100%!important;flex-basis:100%!important}
 .archive-info{align-items:flex-start;flex-direction:column;gap:3px}
 .archive-mode .table td:last-child{display:flex!important;gap:8px!important;justify-content:flex-end!important;flex-wrap:wrap!important}
 .archive-mode .table td:last-child .btn{margin:0!important}
}

/* CRM DEMO 5.2.23 — pełna wysokość panelu bocznego na każdym komputerze. */


html.crm-desktop-device .side{
  inset:0 auto 0 0!important;
}





/* CRM DEMO 3.1.5 — archiwum klientów i własne potwierdzenia bez systemowych białych okien */
.crm-confirm p{font-size:16px;line-height:1.55;margin:4px 0 18px;color:var(--ink)}
.crm-confirm .field{margin-bottom:8px}
.crm-confirm .modal-actions{margin-top:18px}
.customer-actions,.archive-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.archive-count:empty{display:none}
.archive-count:not(:empty){display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:5px;border-radius:999px;background:rgba(255,255,255,.25);font-size:12px}
.archive-info{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;margin:10px 0 14px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}
.archive-info span{color:var(--muted)}
@media(max-width:700px){
 .customer-actions,.archive-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:7px}
 .customer-actions .btn,.archive-actions .btn{width:100%!important;min-width:0!important;margin:0!important}
 .archive-info{display:grid;gap:4px}
 .crm-confirm .modal-actions{display:grid;grid-template-columns:1fr 1fr}
 .crm-confirm .modal-actions .btn{width:100%}
}


/* ===== CRM DEMO 3.2.0: customer action layout + mobile native overlay reset ===== */
.customer-list-card .table th:last-child,
.customer-list-card .table td:last-child{ text-align:right; }
.customer-list-card .table td:last-child{ vertical-align:middle; }
.customer-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:560px}
.customer-actions-row{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;width:100%}
.customer-actions .btn{min-width:94px;min-height:42px;padding:9px 14px;white-space:nowrap;margin:0}
.customer-actions-secondary .btn{min-width:104px}

@media(max-width:1200px) and (min-width:701px){
 .customer-actions{min-width:430px}
 .customer-actions .btn{min-width:88px;padding-left:11px;padding-right:11px}
}

@media(max-width:700px){
 html,body,#app,#content{-webkit-tap-highlight-color:transparent!important}
 button,.btn,[role="button"],a.action-card,.nav,.mobilebar button{
   -webkit-appearance:none!important;appearance:none!important;
   -webkit-tap-highlight-color:transparent!important;
   -webkit-touch-callout:none!important;
   -webkit-user-select:none!important;user-select:none!important;
   touch-action:manipulation!important;
   outline:none!important;
   box-shadow:none;
   background-clip:padding-box!important;
 }
 button:focus,.btn:focus,[role="button"]:focus,a.action-card:focus,
 button:focus-visible,.btn:focus-visible,[role="button"]:focus-visible,a.action-card:focus-visible{
   outline:none!important;box-shadow:none!important;
 }
 button:active,.btn:active,[role="button"]:active,a.action-card:active{
   filter:none!important;box-shadow:none!important;outline:none!important;
   transform:none!important;
 }
 .btn.primary:active,.primary:active{background:var(--ink)!important;color:#fff!important}
 .btn.gold:active,.gold:active{background:var(--gold)!important;color:#1c2430!important}
 .btn.soft:active,.soft:active{background:#f1f4f8!important;color:var(--ink)!important;border-color:#e8edf3!important}
 .btn.danger:active,.danger:active{background:var(--red-soft)!important;color:#a71919!important;border-color:#ffd3d3!important}
 .customer-list-card .table td:last-child{display:block!important;text-align:left!important}
 .customer-actions{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;min-width:0!important;width:100%!important;gap:7px!important}
 .customer-actions-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;width:100%!important}
 .customer-actions .btn{width:100%!important;min-width:0!important;min-height:44px!important;padding:9px 7px!important;font-size:12px!important;border-radius:11px!important}
 .customer-actions-main .btn:nth-child(5){grid-column:1/-1}
 .modal-actions button,.modal-actions .btn,.welcome-actions button,.welcome-actions .btn,.toolbar button,.toolbar .btn,.page-actions button,.page-actions .btn{
   -webkit-appearance:none!important;appearance:none!important;-webkit-tap-highlight-color:transparent!important;
 }
}
@media(max-width:420px){
 .customer-actions-row{grid-template-columns:1fr!important}
 .customer-actions-main .btn:nth-child(5){grid-column:auto}
}


/* CRM DEMO 3.2.1 — formularz terminu bez natywnych białych okien Androida */
@media (max-width: 1366px), (pointer: coarse) {
  .appointment-form select,
  .appointment-form input[type="date"],
  .appointment-form input[type="datetime-local"] {
    -webkit-appearance: none !important;
    appearance: none !important;
  }
  .appointment-no-staff-warning {
    margin: 14px 0;
    padding: 14px;
    border: 1px solid #f0c36a;
    border-radius: 14px;
    background: #fffaf0;
    display: grid;
    gap: 12px;
  }
  .appointment-no-staff-warning > div:first-child {
    display: grid;
    gap: 4px;
  }
  .appointment-no-staff-warning span {
    font-size: 13px;
    line-height: 1.45;
    color: #5b6472;
  }
  .appointment-no-staff-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .appointment-no-staff-actions .btn {
    width: 100%;
    min-height: 46px;
  }
}

/* 3.2.2 — uporządkowane akcje klienta i czytelna historia */
.customer-actions{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:8px!important}
.customer-actions-row{display:flex!important;justify-content:flex-end!important;align-items:center!important;flex-wrap:wrap!important;gap:8px!important}
.customer-actions-row:empty{display:none!important}
.customer-history-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:2px 0 16px;border-bottom:1px solid #e4e9f0}
.customer-history-head>div{display:flex;flex-direction:column;gap:4px}.customer-history-head span{color:#687386}
.customer-timeline{position:relative;padding:18px 0 2px}.customer-timeline:before{content:"";position:absolute;left:21px;top:18px;bottom:8px;width:2px;background:#e3e8ef}
.timeline-entry{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:0 0 18px}
.timeline-icon{position:relative;z-index:1;width:42px;height:42px;border-radius:13px;background:#f1f5f9;border:1px solid #dde4ed;display:flex;align-items:center;justify-content:center;font-size:18px}
.timeline-content{background:#f8fafc;border:1px solid #e1e7ef;border-radius:14px;padding:12px 14px}.timeline-content b{display:block;color:#101827}.timeline-content p{margin:5px 0 0;color:#566174;white-space:pre-wrap}.timeline-date{font-size:12px;color:#7a8494;margin-bottom:4px}
@media(max-width:1366px){.customer-actions{align-items:stretch!important}.customer-actions-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.customer-actions .btn{width:100%!important;min-height:46px!important}.customer-history-head{align-items:flex-start}.timeline-entry{grid-template-columns:38px minmax(0,1fr)}.timeline-icon{width:36px;height:36px;border-radius:11px}.customer-timeline:before{left:18px}}


/* 3.3.2 — sortowanie klientów */
.customer-sort-field{display:flex;align-items:center;gap:8px;margin:0;min-width:220px}
.customer-sort-field label{font-size:12px;font-weight:700;color:#64748b;white-space:nowrap;margin:0}
.customer-sort-field select{min-width:175px;height:42px;margin:0}
@media(max-width:700px){
 .customer-sort-field{width:100%;display:grid;grid-template-columns:auto 1fr;min-width:0}
 .customer-sort-field select{width:100%;min-width:0}
}

/* CRM DEMO 3.3.5 - oryginalny branding */
.logo.logo-original{width:auto;height:auto;min-width:0;border-radius:0;background:none;box-shadow:none;display:block;color:inherit}
.logo-original img{display:block;width:100%;height:auto;object-fit:contain}
.login-card .brand{align-items:center;gap:16px}
.login-card .logo-original{width:205px;max-width:48vw;flex:0 0 auto}
.login-card .brand>div:last-child h1{display:none}
.login-card .brand>div:last-child{flex:1}
.app-brand{display:block;padding:5px 8px 19px}
.app-brand .logo-original{width:100%;padding:9px 10px;background:#fff;border-radius:14px;box-shadow:0 7px 22px #0003}
.app-brand>div:last-child{display:none}
@media(max-width:1366px){.login-card .brand{display:grid;gap:10px}.login-card .logo-original{width:230px;max-width:100%}}

.brand-crop-area{margin-top:16px;display:grid;gap:14px}.brand-crop-area canvas{display:block;width:min(100%,420px);aspect-ratio:1;border-radius:22px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);touch-action:none;cursor:grab}.brand-crop-area canvas:active{cursor:grabbing}.brand-crop-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.brand-crop-controls label{display:flex;align-items:center;gap:10px;font-weight:750}.brand-crop-controls input[type=range]{width:min(260px,55vw)}

.message-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-left:auto}.message-actions .btn{min-height:34px;padding:7px 10px;font-size:11px}.conversation-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:0 0 12px;border-bottom:1px solid var(--line)}.conversation-meta span{color:var(--muted);font-size:12px}.conversation-thread{display:grid;gap:12px;max-height:55vh;overflow:auto;padding:14px 2px}.conversation-item{max-width:86%;background:#f2f5f9;border:1px solid var(--line);border-radius:15px;padding:12px}.conversation-item.mine{margin-left:auto;background:var(--blue-soft);border-color:#cfe0ff}.conversation-author{display:flex;justify-content:space-between;gap:15px}.conversation-author time{font-size:10px;color:var(--muted)}.conversation-item p{white-space:pre-wrap;margin:7px 0}.conversation-item small{color:var(--muted)}.forwarded-label{display:block;margin-top:7px;font-size:10px;font-weight:800;color:var(--violet)}
@media(max-width:700px){.message-card{display:grid;grid-template-columns:40px minmax(0,1fr);padding-bottom:12px}.message-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;margin:4px 0 0}.message-actions .btn{width:100%;padding:7px 4px}.conversation-item{max-width:94%}.message-tabs{grid-template-columns:repeat(3,1fr)}}


/* 3.4.7 — wiadomości jak czat */
.chat-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);min-height:620px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.chat-sidebar{border-right:1px solid var(--line);background:#f8fafc;min-width:0}.chat-sidebar-head{display:flex;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.chat-sidebar-head span{background:var(--blue-soft);color:var(--blue);font-weight:800;border-radius:999px;padding:2px 8px}.chat-conversations{max-height:650px;overflow:auto}.chat-conversation{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px;cursor:pointer}.chat-conversation:hover,.chat-conversation.active{background:#fff}.chat-conversation.active{box-shadow:inset 4px 0 var(--blue)}.chat-conversation.unread b{font-weight:900}.chat-conversation-main{min-width:0;display:grid;gap:3px}.chat-conversation-main b,.chat-conversation-main small,.chat-conversation-main em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-conversation-main small{color:var(--muted);font-size:11px}.chat-conversation-main em{font-style:normal;color:#667085;font-size:12px}.chat-conversation-side{display:grid;justify-items:end;align-content:start;gap:7px}.chat-conversation-side time{font-size:10px;color:var(--muted)}.chat-conversation-side i{font-style:normal;background:var(--blue);color:#fff;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;font-size:10px;font-weight:900}.chat-pane{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;max-height:700px}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}.chat-header>div:first-child{display:grid;gap:2px}.chat-header small{color:var(--muted)}.chat-thread{padding:18px;overflow:auto;background:linear-gradient(#fafbfd,#f5f7fa);display:flex;flex-direction:column;gap:10px}.chat-bubble-row{display:flex}.chat-bubble-row.mine{justify-content:flex-end}.chat-bubble{max-width:min(78%,720px);background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 5px;padding:11px 13px;box-shadow:0 3px 12px rgba(20,30,55,.05)}.chat-bubble-row.mine .chat-bubble{background:var(--blue-soft);border-color:#c9dcff;border-radius:16px 16px 5px 16px}.chat-bubble p{white-space:pre-wrap;margin:7px 0 5px}.chat-bubble-foot{display:flex;justify-content:space-between;gap:15px;align-items:end;font-size:10px;color:var(--muted)}.chat-bubble-foot strong{white-space:nowrap}.chat-bubble-foot .read{color:#287a4b}.chat-bubble-foot .not-read{color:#8a6111}.chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px;border-top:1px solid var(--line);background:#fff}.chat-compose textarea{resize:none;min-height:46px}.chat-compose .btn{min-width:100px}.empty-state.compact{padding:30px 10px}
@media(max-width:850px){.chat-layout{grid-template-columns:1fr;}.chat-sidebar{border-right:0;border-bottom:1px solid var(--line)}.chat-conversations{max-height:280px}.chat-pane{min-height:520px;max-height:65vh}.chat-bubble{max-width:92%}}
@media(max-width:560px){.chat-layout{border-radius:13px}.chat-conversation{grid-template-columns:38px minmax(0,1fr) auto;padding:10px}.chat-pane{min-height:480px;max-height:70vh}.chat-header{padding:11px}.chat-thread{padding:10px}.chat-compose{grid-template-columns:1fr;padding:9px}.chat-compose .btn{width:100%}.chat-bubble{max-width:96%}.chat-bubble-foot{gap:6px;flex-wrap:wrap}.chat-header-actions .btn{padding:7px 9px}}


/* 3.4.9 — płynny czat i wskaźnik pisania */
.chat-typing-row{display:flex;align-items:flex-end;min-height:42px;animation:typingAppear .18s ease-out}.chat-typing-bubble{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 5px;padding:10px 13px;box-shadow:0 3px 12px rgba(20,30,55,.05)}.chat-typing-bubble>span{width:7px;height:7px;border-radius:50%;background:#8b95a5;animation:chatDot 1.25s infinite ease-in-out}.chat-typing-bubble>span:nth-child(2){animation-delay:.15s}.chat-typing-bubble>span:nth-child(3){animation-delay:.3s}.chat-typing-bubble small{margin-left:5px;color:var(--muted);font-size:11px;white-space:nowrap}@keyframes chatDot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}@keyframes typingAppear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* 3.5.0 */
.chat-compose-actions{display:flex;align-items:center;gap:8px}.chat-attach-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #d8dee8;border-radius:12px;background:#fff;cursor:pointer;font-size:20px}.chat-file-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#64748b}.chat-attachment{display:flex;align-items:center;gap:8px;margin:8px 0 4px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.12);color:inherit;text-decoration:none}.chat-attachment span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.chat-attachment small{margin-left:auto;white-space:nowrap;opacity:.7}@media(max-width:700px){.chat-compose{display:block}.chat-compose textarea{width:100%;box-sizing:border-box}.chat-compose-actions{margin-top:8px}.chat-compose-actions .btn{margin-left:auto}.chat-file-name{max-width:120px}.chat-conversations{contain:layout paint}}
.attachment-preview{text-align:center}.attachment-preview img{display:block;max-width:100%;max-height:65vh;margin:0 auto 16px;border-radius:12px;object-fit:contain}.attachment-preview-error{display:none}.attachment-preview.preview-error img{display:none}.attachment-preview.preview-error .attachment-preview-error{display:block;padding:30px 10px}


/* 3.5.5 - usuwanie wiadomości */
.conversation-author>span{display:flex;align-items:center;gap:8px}
.chat-message-delete{border:0;background:transparent;opacity:.48;cursor:pointer;padding:3px 5px;border-radius:7px;font-size:13px;line-height:1}
.chat-message-delete:hover,.chat-message-delete:focus{opacity:1;background:rgba(180,35,35,.1)}
@media(max-width:760px){.chat-message-delete{opacity:.72;padding:6px}}

.user-avatar-img{display:inline-flex;overflow:hidden;padding:0!important}.user-avatar-img img{width:100%;height:100%;object-fit:cover;display:block}.avatar-button{border:0;cursor:pointer}.avatar-large{width:92px!important;height:92px!important;font-size:28px}.avatar-editor-preview{display:flex;justify-content:center;margin:8px 0 20px}.chat-row-avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#d6a84b;color:#111827;font-weight:800;flex:0 0 34px;overflow:hidden}.chat-row-avatar img{width:100%;height:100%;object-fit:cover}.chat-message-action{border:0;background:transparent;cursor:pointer;padding:2px 5px}.chat-bubble-row.mine .chat-row-avatar{order:2}.chat-bubble-row.mine .chat-bubble{order:1}.employee-avatar.user-avatar-img,.message-avatar.user-avatar-img{overflow:hidden}.employee-avatar img,.message-avatar img{width:100%;height:100%;object-fit:cover}

/* 3.5.8 — stabilne aktualizacje, estetyczne akcje czatu i własne awatary */
.chat-message-tools{display:flex;justify-content:flex-end;gap:7px;margin-top:9px;padding-top:8px;border-top:1px solid rgba(120,130,150,.15)}
.chat-tool{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer;transition:.18s ease}
.chat-tool.forward{background:#edf4ff;color:#1d5fbf}.chat-tool.forward:hover{background:#dceaff;transform:translateY(-1px)}
.chat-tool.delete{background:#fff1f1;color:#b42318}.chat-tool.delete:hover{background:#ffe0e0;transform:translateY(-1px)}
.conversation-delete-btn{display:flex;align-items:center;gap:9px;border:1px solid #ffd1d1;background:#fff7f7;color:#a61b1b;border-radius:12px;padding:7px 11px;cursor:pointer;text-align:left}
.conversation-delete-btn>span:first-child{font-size:17px}.conversation-delete-btn span:last-child{display:grid}.conversation-delete-btn b{font-size:11px}.conversation-delete-btn small{font-size:9px;color:#ba5555}
.conversation-confirm{text-align:center}.conversation-confirm .confirm-icon{width:54px;height:54px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#fff0f0;font-size:24px}.conversation-confirm h4{margin:0 0 7px;font-size:18px}
.profile-avatar-item{align-items:center}.mobile-profile-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#d6a84b;color:#111827;font-size:10px}.mobile-profile-avatar img{width:100%;height:100%;object-fit:cover}
@media(max-width:560px){.chat-message-tools{opacity:1}.chat-tool{flex:1;justify-content:center;padding:8px}.conversation-delete-btn small{display:none}.conversation-delete-btn{padding:8px 10px}.avatar-button{cursor:pointer}}

/* 3.5.8 — widoczne akcje rozmowy i stabilny licznik powiadomień */
.chat-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.conversation-delete-btn{visibility:visible!important;opacity:1!important}.notif-btn #unread{min-width:20px;text-align:center}.chat-compose.admin-compose{border-top-color:#d9b866}
@media(max-width:560px){.chat-header{align-items:flex-start;gap:8px}.chat-header-actions{display:flex!important}.conversation-delete-btn{min-width:44px}.conversation-delete-btn b{font-size:10px}.chat-header>div:first-child{min-width:0}.chat-header>div:first-child b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:58vw}}


/* 3.5.12 — mobilny komunikator i podgląd administratora tylko do odczytu */
.chat-mobile-back{display:none;border:0;background:#eef3f9;color:#1f2937;width:40px;height:40px;border-radius:12px;font-size:30px;line-height:1;align-items:center;justify-content:center;flex:0 0 40px;cursor:pointer}
.chat-header-title{display:grid;gap:3px;min-width:0}.chat-header-title b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-readonly{display:flex;align-items:center;gap:12px;padding:14px 18px;border-top:1px solid var(--line);background:#f8fafc;color:#334155}.chat-readonly>span{width:38px;height:38px;border-radius:12px;background:#e8eef7;display:grid;place-items:center;font-size:18px}.chat-readonly div{display:grid;gap:2px}.chat-readonly small{color:var(--muted)}
.chat-compose-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.chat-compose-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.chat-send-btn{display:inline-flex;align-items:center;gap:8px}.chat-send-btn b{font-size:16px}.chat-compose{grid-template-columns:1fr}.chat-compose textarea{border-radius:15px;min-height:48px;max-height:140px;padding:13px 14px;background:#f8fafc}.chat-attach-btn{border-radius:14px;width:48px;height:48px;background:#f8fafc}.chat-file-name:empty{display:none}
@media(max-width:850px){
  .chat-layout{display:block;min-height:0;border-radius:16px;overflow:hidden;background:#fff}
  .chat-layout .chat-sidebar{display:block;border:0;min-height:420px;background:#fff}
  .chat-layout .chat-pane{display:none;min-height:0;max-height:none;height:calc(100dvh - 185px);background:#fff}
  .chat-layout.mobile-chat-open .chat-sidebar{display:none}
  
  .chat-mobile-back{display:flex}
  .chat-sidebar-head{position:sticky;top:0;z-index:2;background:#fff;padding:14px 15px}
  .chat-conversations{max-height:none;overflow:visible}
  .chat-conversation{grid-template-columns:46px minmax(0,1fr) auto;gap:11px;padding:14px 13px;background:#fff;min-height:76px}
  .chat-conversation.active{box-shadow:none;background:#f7f9fc}
  .chat-conversation-main b{font-size:14px}.chat-conversation-main em{font-size:12px;color:#64748b}.chat-conversation-side time{font-size:10px}
  .chat-header{position:sticky;top:0;z-index:5;padding:10px 11px;gap:9px;background:#fff;box-shadow:0 1px 0 var(--line)}
  .chat-header-title{flex:1}.chat-header-title b{font-size:15px}.chat-header-title small{font-size:10px}
  .chat-header-actions{margin-left:auto}.conversation-delete-btn{width:42px;height:42px;min-width:42px;padding:0;border-radius:12px;display:grid;place-items:center}.conversation-delete-btn>span:last-child{display:none}.conversation-delete-btn>span:first-child{font-size:17px}
  .chat-thread{padding:13px 10px 18px;gap:9px;background:#eef2f7;overscroll-behavior:contain}
  .chat-bubble-row{align-items:flex-end;gap:6px}.chat-row-avatar{width:28px;height:28px;flex-basis:28px;font-size:10px}
  .chat-bubble{max-width:84%;padding:9px 11px;border-radius:17px 17px 17px 5px;box-shadow:0 2px 7px rgba(15,23,42,.06)}
  .chat-bubble-row.mine .chat-bubble{border-radius:17px 17px 5px 17px}.conversation-author b{font-size:11px}.conversation-author time{font-size:9px}.chat-bubble p{font-size:14px;line-height:1.38;margin:5px 0}.chat-bubble-foot{font-size:9px}
  .chat-message-tools{margin-top:7px;padding-top:6px;gap:6px}.chat-tool{flex:0 1 auto!important;padding:6px 9px;font-size:10px}.chat-tool.forward{margin-left:auto}
  .chat-compose{position:sticky;bottom:0;z-index:5;padding:9px 10px calc(9px + env(safe-area-inset-bottom));gap:7px;background:#fff;box-shadow:0 -1px 0 var(--line)}
  .chat-compose-input{grid-template-columns:minmax(0,1fr) 46px}.chat-compose textarea{min-height:46px;max-height:110px;padding:12px 13px;border-radius:16px}.chat-attach-btn{width:46px;height:46px;border-radius:14px}
  .chat-compose-bottom{min-height:38px}.chat-file-name{font-size:11px;max-width:60vw}.chat-send-btn{margin-left:auto!important;width:auto!important;min-width:92px;border-radius:13px;padding:10px 14px}
  .chat-readonly{padding:11px 12px calc(11px + env(safe-area-inset-bottom));background:#fff}.chat-readonly>span{width:34px;height:34px}.chat-readonly small{font-size:10px}
}
@media(max-width:430px){.chat-pane{height:calc(100dvh - 160px)!important}.chat-bubble{max-width:88%}.page-head .page-actions{width:100%}.page-head .page-actions .btn{flex:1}}

/* 3.5.12 — poprawka widocznego pola odpowiedzi na mobile */
@media(max-width:850px){
  .chat-layout.mobile-chat-open{
    position:fixed;
    top:64px;
    right:0;
    bottom:0;
    left:0;
    z-index:1200;
    width:100%;
    height:auto;
    min-height:0;
    border:0;
    border-radius:0;
    background:#fff;
    overflow:hidden;
  }
  .chat-layout.mobile-chat-open .chat-pane{
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
    overflow:hidden;
  }
  .chat-layout.mobile-chat-open .chat-thread{
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .chat-layout.mobile-chat-open .chat-compose{
    position:relative;
    bottom:auto;
    flex-shrink:0;
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
  }
}
@media(max-width:430px){
  .chat-layout.mobile-chat-open .chat-pane{height:100%!important}
}

/* 3.5.12 — wyłączenie pull-to-refresh wyłącznie w otwartym czacie */
html.chat-no-pull-refresh,body.chat-no-pull-refresh{overscroll-behavior-y:none!important;}
body.chat-no-pull-refresh{touch-action:pan-x pan-y;}
@media(max-width:850px){
  .chat-layout.mobile-chat-open,.chat-layout.mobile-chat-open .chat-pane,.chat-layout.mobile-chat-open .chat-thread{overscroll-behavior-y:contain!important;}
}


/* 3.5.12 — pewna blokada odświeżania w historii czatu i edytor awatara */
@media(max-width:850px){
  html.chat-no-pull-refresh,body.chat-no-pull-refresh{overscroll-behavior:none!important;overflow:hidden!important;}
  .chat-layout.mobile-chat-open{overscroll-behavior:none!important;touch-action:pan-y;}
  .chat-layout.mobile-chat-open .chat-thread{overscroll-behavior:none!important;touch-action:pan-y;contain:layout paint;}
}
.avatar-crop-form{display:grid;gap:14px}.avatar-crop-stage{position:relative;width:min(300px,78vw);aspect-ratio:1;margin:0 auto;border-radius:22px;overflow:hidden;background:#e9eef5;touch-action:none;cursor:grab;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.avatar-crop-stage.dragging{cursor:grabbing}.avatar-crop-stage canvas{display:block;width:100%;height:100%}.avatar-crop-mask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 80px rgba(10,18,30,.48);pointer-events:none;transform:scale(.78)}.avatar-crop-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:30px;text-align:center;color:#64748b;font-weight:800;pointer-events:none}.avatar-crop-placeholder.hidden{display:none}.avatar-crop-help{text-align:center;color:#64748b;font-size:12px;line-height:1.45}.avatar-zoom-field input[type=range]{width:100%}.user-avatar-img img{object-position:center center}


/* 3.5.16 — mobilne akcje wiadomości zawsze nad pełnoekranowym czatem */
#modal.modal{z-index:6000!important;}
#modal .modal-card{position:relative;z-index:6001;}
body.tomzal-modal-open .chat-layout.mobile-chat-open{pointer-events:none;}
body.tomzal-modal-open #modal{pointer-events:auto;}
.mini-spinner{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .65s linear infinite;vertical-align:-2px}.mini-spinner.dark{width:12px;height:12px}
.chat-tool:disabled,.conversation-delete-btn:disabled{opacity:.65;cursor:wait;transform:none!important}
.message-delete-confirm,.conversation-confirm{text-align:center}.message-delete-confirm .confirm-icon,.conversation-confirm .confirm-icon{width:58px;height:58px;margin:0 auto 12px;border-radius:18px;background:#fff0f0;color:#b42318;display:grid;place-items:center;font-size:25px}.message-delete-confirm h4,.conversation-confirm h4{margin:0 0 7px;font-size:18px}
@media(max-width:850px){
 #modal.modal{top:0!important;right:0!important;bottom:0!important;left:0!important;height:100dvh!important;padding:12px!important;background:rgba(15,23,42,.62)!important;backdrop-filter:blur(5px)}
 #modal .modal-card{max-height:92dvh!important;padding:16px 14px calc(14px + env(safe-area-inset-bottom))!important;box-shadow:0 -18px 60px rgba(0,0,0,.28)!important;overflow:auto!important}
 #modal .modal-head{position:sticky;top:-16px;background:#fff;z-index:3;padding-top:2px}
 #modal .recipient-grid{max-height:34dvh;overflow:auto;-webkit-overflow-scrolling:touch}
 #modal .modal-actions{z-index:4}
 .chat-message-tools{position:relative;z-index:2}
 .chat-tool{touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:38px}
 .conversation-delete-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
}

/* 3.5.20 — stan ładowania rozmowy bez komunikatu wyboru */
.chat-loading-state{min-height:240px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted,#6b7280);background:var(--panel,#fff)}
.chat-loading-state b{font-size:14px;font-weight:700}.chat-loading-spinner{width:28px;height:28px;border:3px solid rgba(148,163,184,.35);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}
@media(max-width:850px){.chat-loading-state{position:absolute;inset:0;min-height:0;z-index:2}}

.chat-load-older{display:block;margin:8px auto 14px;padding:8px 14px;border:1px solid #d8dee8;border-radius:999px;background:#fff;color:#475467;font-weight:700;cursor:pointer}.chat-load-older:disabled{opacity:.6}.chat-bubble.pending{opacity:.72}.chat-bubble-foot .sending{color:#667085}.chat-bubble-foot .send-error{color:#b42318}.update-backups-list{display:grid;gap:8px}.update-backup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.update-backup-row div{display:grid;gap:2px}.update-backup-row small{color:#667085}@media(max-width:700px){.update-backup-row{align-items:flex-start;flex-direction:column}.update-backup-row .btn{width:100%}}


/* CRM DEMO 3.5.29 — szybkie informacje/notatki klienta */
.customer-note-form{max-width:820px;margin:0 auto}.customer-note-intro{display:grid;gap:3px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;margin-bottom:10px}.customer-note-intro b{font-size:16px}.customer-note-intro span{color:var(--muted);font-size:12px}.customer-note-form textarea{resize:vertical;line-height:1.55}.customer-note-form textarea[name="product"]{min-height:130px}.customer-note-form textarea[name="notes"]{min-height:190px}.money-input{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center;border:1px solid #dce3ec;border-radius:12px;background:#fff;overflow:hidden}.money-input:focus-within{border-color:#6d8cb6;box-shadow:0 0 0 4px #dce9f755}.money-input input{border:0!important;box-shadow:none!important;border-radius:0!important}.money-input span{height:100%;display:grid;place-items:center;background:#f4f6f9;border-left:1px solid var(--line);font-weight:800;color:#667085}.customer-note-btn{border-color:#d9c48e;background:#fff8e8;color:#76510b}
@media(max-width:700px){.customer-note-grid{grid-template-columns:1fr}.customer-note-form textarea[name="product"]{min-height:120px}.customer-note-form textarea[name="notes"]{min-height:180px}}


/* CRM DEMO 3.5.31 — pełny podgląd klienta w Sprawach */
.customer-preview-loading{min-height:180px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted)}
.customer-preview{display:grid;gap:18px}.customer-preview-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line)}
.customer-preview-head h2{margin:4px 0 2px}.customer-preview-head p{margin:0;color:var(--muted)}.customer-preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.customer-preview-section{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}.customer-preview-section>h3{margin:0 0 14px;display:flex;align-items:center;gap:8px}
.customer-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.customer-preview-item{padding:12px;background:var(--soft);border-radius:12px;min-width:0}.customer-preview-item.wide{grid-column:1/-1}.customer-preview-item span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.customer-preview-item b{display:block;word-break:break-word}
.customer-preview-text{padding:14px;background:var(--soft);border-radius:12px;margin-top:10px}.customer-preview-text:first-of-type{margin-top:0}.customer-preview-text b{display:block;margin-bottom:7px}.customer-preview-text p{margin:0;white-space:normal;line-height:1.55}
.customer-preview-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.customer-preview-record{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:12px 0;border-bottom:1px solid var(--line)}.customer-preview-record:last-child{border-bottom:0}.customer-preview-record div{display:flex;flex-direction:column}.customer-preview-record span,.customer-preview-record p{font-size:12px;color:var(--muted);margin:2px 0}.customer-preview-record strong{grid-column:2;grid-row:1/3;align-self:center}.customer-preview-empty{color:var(--muted);padding:8px 0}
.customer-preview-history-list{display:grid;gap:10px}.customer-preview-history{display:flex;gap:10px;padding:10px;background:var(--soft);border-radius:12px}.customer-preview-history>span{font-size:20px}.customer-preview-history div{display:grid;gap:2px}.customer-preview-history small{color:var(--muted)}.customer-preview-history p{margin:3px 0 0;color:var(--muted)}
@media(max-width:700px){.customer-preview-head{display:grid}.customer-preview-actions{justify-content:flex-start}.customer-preview-grid,.customer-preview-columns{grid-template-columns:1fr}.customer-preview-item.wide{grid-column:auto}.customer-preview-section{padding:13px}.customer-preview-record{grid-template-columns:1fr}.customer-preview-record strong{grid-column:auto;grid-row:auto}}

/* 3.5.35 — źródło zmiany terminu */
.change-origin-overlay{position:fixed;inset:0;z-index:12050;background:rgba(17,24,39,.58);display:grid;place-items:center;padding:18px;backdrop-filter:blur(4px)}
.change-origin-card{width:min(460px,100%);background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,.28);text-align:center}
.change-origin-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin:0 auto 12px;background:#fff7e6;color:#9a6700;font-size:26px;font-weight:800}
.change-origin-card h3{margin:0 0 8px}.change-origin-card p{margin:0 0 18px;font-size:16px}.change-origin-card small{display:block;margin-top:14px;color:#667085;line-height:1.45}
.change-origin-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:600px){.change-origin-card{padding:20px 16px;border-radius:18px}.change-origin-actions{grid-template-columns:1fr}.change-origin-actions .btn{min-height:48px}}

.archive-prefill-notice{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-bottom:14px;border:1px solid #e3b44f;background:#fff8e7;border-radius:12px}.archive-prefill-notice span{font-size:13px;color:#64748b}.archive-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.archive-photo-thumb{border:1px solid var(--line);background:#fff;border-radius:12px;padding:7px;text-align:left;cursor:pointer}.archive-photo-thumb img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px}.archive-photo-thumb span{display:block;margin-top:6px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}@media(max-width:1366px){.archive-actions{justify-content:stretch}.archive-actions .btn{flex:1 1 calc(50% - 7px)}.archived-customer-preview .customer-preview-actions{display:grid;grid-template-columns:1fr}.archive-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 3.5.47 — akcje w tabelach workflow wyrównane do prawej */
@media(min-width:701px){
  .workflow-card .table th:last-child,
  .workflow-card .table td:last-child{
    width:1%;
    min-width:0;
    white-space:nowrap;
    text-align:right;
  }
  .workflow-card .workflow-actions{
    width:100%;
    min-width:0;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    flex-wrap:nowrap;
    gap:8px;
  }
}

/* 3.5.47: podświetlenie sprawy otwartej z powiadomienia */
.workflow-focus-row{outline:3px solid rgba(214,168,75,.55);outline-offset:-3px;background:rgba(214,168,75,.10)!important;transition:background .25s ease,outline .25s ease}

.completed-payment-summary{display:flex;flex-direction:column;gap:3px;min-width:180px}.completed-payment-summary strong{font-size:14px;color:var(--text)}.completed-payment-summary span{font-size:12px;font-weight:700;color:#8a6110}.completed-payment-summary small{font-size:11px;color:var(--muted);line-height:1.35}


/* CRM DEMO 5.4.42 — CSS module: 20-notebook.css
   Notatnik rysikiem, załączniki i interakcje notatnika.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 3.5.60 — załączniki i pełnoekranowe notatki rysikiem w umowie */
.contract-scope-heading{gap:12px;margin-bottom:7px}.contract-scope-heading>div{display:flex;gap:8px;flex-wrap:wrap}.contract-attach-btn{cursor:pointer}.contract-media-summary{margin-top:10px}.contract-media-count{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.contract-media-thumbs{display:flex;gap:8px;overflow:auto;padding:8px 0}.contract-media-thumbs span{position:relative;flex:0 0 92px;height:72px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.contract-media-thumbs img{width:100%;height:100%;object-fit:cover}.contract-media-thumbs button{position:absolute;right:3px;top:3px;width:24px;height:24px;border:0;border-radius:50%;background:#111827;color:#fff;font-weight:900}.contract-media-thumbs em{position:absolute;left:5px;bottom:4px;background:#111827;color:#fff;border-radius:8px;padding:1px 6px;font-style:normal;font-size:11px}.contract-row-actions{display:flex;gap:7px;justify-content:flex-end}.contract-notebook-layer{position:fixed;inset:0;z-index:10000;background:#eef1f6;display:flex;flex-direction:column}.contract-notebook-top{gap:14px;padding:12px 18px;background:#fff;border-bottom:1px solid #d8dee8;box-shadow:0 3px 12px rgba(15,23,42,.08)}.contract-notebook-top>div:first-child{display:flex;flex-direction:column}.contract-notebook-top>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.contract-notebook-work{grid-template-columns:145px 1fr;gap:14px;padding:14px}.contract-notebook-work aside{gap:8px}.contract-notebook-work aside button{border:2px solid transparent;border-radius:12px;padding:7px;}.contract-notebook-work aside span{background:#f8fafc;border-radius:7px;}.contract-notebook-work aside img{width:100%;height:100%;object-fit:contain}.contract-notebook-work aside b{margin-top:5px;}.contract-notebook-work canvas{box-shadow:0 8px 30px rgba(15,23,42,.18);}
@media(max-width:700px){.contract-scope-heading{align-items:flex-start;flex-direction:column}.contract-notebook-top{align-items:flex-start;flex-direction:column;padding:10px}.contract-notebook-top>div:last-child{width:100%}.contract-notebook-top .btn{flex:1;min-width:0;padding-left:8px;padding-right:8px}.contract-notebook-work{grid-template-columns:1fr;padding:8px}.contract-notebook-work aside{order:2;flex-direction:row;min-height:100px}.contract-notebook-work aside button{flex:0 0 90px}.contract-notebook-work aside span{height:70px}.contract-notebook-work main{order:1}.contract-row-actions{flex-direction:column}}
.contract-panel-media-head{margin-bottom:14px}.contract-panel-media-head p{margin:5px 0 0}.contract-panel-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:13px;max-height:68vh;overflow:auto;padding:2px}.contract-panel-media-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:0;overflow:hidden;text-align:left;cursor:pointer;transition:.18s transform,.18s box-shadow}.contract-panel-media-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,23,42,.12)}.contract-panel-media-card img{display:block;width:100%;height:150px;object-fit:contain;background:#f5f7fb}.contract-panel-media-card span{display:flex;flex-direction:column;padding:10px 12px}.contract-panel-media-card small{margin-top:3px;color:var(--muted)}.contract-panel-media-preview{display:flex;justify-content:center;align-items:center;max-height:72vh;overflow:auto;background:#eef1f6;border-radius:14px;padding:10px}.contract-panel-media-preview img{display:block;max-width:100%;max-height:68vh;object-fit:contain;background:#fff;box-shadow:0 5px 20px rgba(15,23,42,.12)}

/* 3.5.61 — rozbudowane narzędzia rysika */
.contract-notebook-tools{align-items:center;padding:9px 14px;background:#f8fafc;border-bottom:1px solid #d8dee8}.notebook-tool{border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:8px 11px;}.notebook-tool.active{border-color:#172033}.notebook-color,.notebook-width{display:flex;align-items:center;gap:7px;padding:5px 9px;background:#fff;border:1px solid #cbd5e1;border-radius:9px;font-size:12px;font-weight:800}.notebook-color input{height:28px;}.notebook-width input{width:130px}.notebook-width b,.notebook-zoom-value{min-width:42px;text-align:center;font-size:12px}
@media(max-width:700px){.contract-notebook-tools{overflow-x:auto;flex-wrap:nowrap;padding:7px}.notebook-tool,.notebook-color,.notebook-width{flex:0 0 auto}.notebook-width input{width:90px}.contract-notebook-actions{display:flex;width:100%;gap:6px}.contract-notebook-actions .btn{flex:1}}


.contract-notebook-eraser-cursor{position:absolute;z-index:5;border:2px solid #172033;border-radius:50%;background:rgba(255,255,255,.28);box-shadow:0 0 0 1px rgba(255,255,255,.8);pointer-events:none;transform:translate(-50%,-50%)}
.contract-notebook-eraser-cursor[hidden]{display:none}
.notebook-eraser-width{background:#fff4e5;border:1px solid #f0d7a2;border-radius:10px;padding:5px 8px}

/* 3.5.63 — mobilny, ikonowy pasek narzędzi rysika */
.contract-notebook-tools{display:grid;gap:8px}
.notebook-tool-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notebook-tool-icon{font-size:18px;line-height:1;display:grid;place-items:center}
.notebook-size-icon{font-size:17px;line-height:1}
.notebook-size-label{white-space:nowrap}
@media(max-width:700px){
  .contract-notebook-tools{overflow:visible;padding:7px 8px;gap:7px}
  .notebook-main-tools{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;width:100%}
  .notebook-main-tools .notebook-tool,.notebook-main-tools .notebook-color{width:100%;min-width:0;height:42px;padding:5px;border-radius:10px;justify-content:center;display:flex;align-items:center}
  .notebook-main-tools .notebook-tool-text{display:none}
  .notebook-main-tools .notebook-tool-icon{font-size:19px}
  .notebook-main-tools .notebook-color input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
  .notebook-main-tools .notebook-color{position:relative;background:linear-gradient(135deg,#f43f5e,#f59e0b,#22c55e,#3b82f6,#8b5cf6);color:#fff;border-color:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}
  .notebook-main-tools .notebook-color:after{content:"";position:absolute;right:4px;bottom:4px;width:9px;height:9px;border-radius:50%;background:var(--notebook-color,#111827);border:1px solid #fff}
  .notebook-zoom-value{min-width:0;height:42px;display:grid;place-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:10px;font-size:10px;padding:0 2px}
  .notebook-size-tools{display:grid;grid-template-columns:1fr;gap:6px;width:100%}
  .notebook-width{display:grid;grid-template-columns:26px 92px minmax(0,1fr) 44px;gap:6px;width:100%;min-width:0;padding:6px 8px}
  .notebook-width input{width:100%;min-width:0}
  .notebook-width b{min-width:40px}
  .notebook-size-label{font-size:11px}
  .contract-notebook-top{gap:7px}
  .contract-notebook-top>div:first-child span{font-size:11px}
  .contract-notebook-actions{display:grid!important;grid-template-columns:repeat(3,1fr);gap:5px}
  .contract-notebook-actions .btn{min-width:0;padding:8px 5px;font-size:0;min-height:40px}
  .contract-notebook-actions .btn:before{font-size:19px;line-height:1}
  .contract-notebook-actions .btn:nth-child(1):before{content:"🗑"}
  .contract-notebook-actions .btn:nth-child(2):before{content:"＋"}
  .contract-notebook-actions .btn:nth-child(3):before{content:"✓"}
}
@media(max-width:420px){
  .notebook-main-tools{grid-template-columns:repeat(9,minmax(30px,1fr))}
  .notebook-main-tools .notebook-tool,.notebook-main-tools .notebook-color,.notebook-zoom-value{height:38px}
  .notebook-main-tools .notebook-tool-icon{font-size:17px}
  .notebook-width{grid-template-columns:24px 78px minmax(0,1fr) 38px;padding:5px 6px}
  .notebook-size-label{font-size:10px}
}


/* 3.5.64 notebook redesign */
.contract-notebook-layer{background:linear-gradient(180deg,#eef2f8 0%,#e8edf5 100%);color:#172033}
.contract-notebook-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid #d8e0ec;box-shadow:0 8px 30px rgba(15,23,42,.08)}
.contract-notebook-title{display:flex;flex-direction:column;gap:4px}
.contract-notebook-title b{font-size:20px;line-height:1.2}
.contract-notebook-title span{font-size:13px;color:#64748b}
.contract-notebook-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.contract-notebook-actions .btn{display:inline-flex;align-items:center;gap:9px;border-radius:14px;padding:11px 14px;font-weight:800;box-shadow:none}
.notebook-top-btn svg,.notebook-icon-btn svg,.notebook-svg-icon svg{width:18px;height:18px;display:block}
.notebook-icon-btn{width:46px;justify-content:center;padding-left:0!important;padding-right:0!important}
.contract-notebook-tools{display:flex;gap:12px;flex-wrap:wrap;padding:14px 18px;background:rgba(248,250,252,.9);border-bottom:1px solid #d8e0ec}
.notebook-tool-group{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #d8e0ec;border-radius:18px;padding:8px 10px;box-shadow:0 6px 22px rgba(15,23,42,.04)}
.notebook-tool{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 14px;border:0;border-radius:14px;background:transparent;color:#172033;font-weight:800;cursor:pointer;transition:.16s ease}
.notebook-tool:hover,.notebook-color:hover{background:#f3f6fb}
.notebook-tool.active{background:#172033;color:#fff;box-shadow:0 10px 24px rgba(23,32,51,.22)}
.notebook-svg-icon{display:grid;place-items:center}
.notebook-svg-icon svg{width:19px;height:19px}
.notebook-color{display:flex;align-items:center;gap:8px;height:46px;padding:0 12px;border:0;border-radius:14px;background:transparent;font-size:13px;font-weight:800;cursor:pointer}
.notebook-color input{width:34px;height:34px;border:0;background:transparent;padding:0;border-radius:10px;overflow:hidden}
.notebook-zoom-group .notebook-tool{min-width:46px;justify-content:center;padding:0 12px}
.notebook-zoom-value{min-width:56px;text-align:center;font-size:13px;font-weight:800;color:#475569}
.notebook-sliders{flex:1 1 100%;display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:12px;background:transparent;border:0;box-shadow:none;padding:0}
.notebook-width{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #d8e0ec;border-radius:18px;padding:10px 12px;font-size:13px;font-weight:800;box-shadow:0 6px 22px rgba(15,23,42,.04)}
.notebook-size-label{min-width:108px}
.notebook-width input{flex:1;min-width:120px}
.notebook-width b{min-width:52px;text-align:right;color:#172033}
.contract-notebook-work{min-height:0;flex:1;display:grid;grid-template-columns:160px 1fr;gap:16px;padding:16px}
.contract-notebook-work aside{padding:2px;overflow:auto;display:flex;flex-direction:column;gap:10px}
.contract-notebook-work aside button{border:1px solid #d8e0ec;border-radius:18px;background:#fff;padding:10px;text-align:left;box-shadow:0 6px 22px rgba(15,23,42,.04)}
.contract-notebook-work aside button.active{border-color:#d6a84b;box-shadow:0 10px 28px rgba(214,168,75,.22)}
.contract-notebook-work aside span{height:118px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#f8fafc 0%,#eef2f7 100%);border-radius:12px;overflow:hidden;color:#94a3b8}
.contract-notebook-work aside b{display:block;margin-top:7px;font-size:12px}
.contract-notebook-work main{min-width:0;min-height:0;overflow:auto;display:flex;justify-content:center;align-items:flex-start;background:rgba(255,255,255,.4);border:1px solid #d8e0ec;border-radius:24px;padding:14px}
.contract-notebook-canvas-wrap{position:relative;display:flex;justify-content:center;min-width:max-content;padding:4px}
.contract-notebook-work canvas{display:block;max-width:none;width:min(100%,900px);height:auto;background-color:#fff;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 37px,#dbe5f1 38px);border-radius:22px;box-shadow:0 22px 55px rgba(15,23,42,.14);touch-action:none;transition:width .12s ease}
.contract-notebook-tool-cursor{position:absolute;z-index:6;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transition:width .08s ease,height .08s ease;border:2px solid rgba(23,32,51,.9);box-shadow:0 0 0 1px rgba(255,255,255,.85),0 6px 14px rgba(15,23,42,.12)}
.contract-notebook-tool-cursor.is-eraser{background:rgba(255,255,255,.3);border-style:solid}
.contract-notebook-tool-cursor.is-eraser::before{content:'';position:absolute;inset:18%;border:2px dashed rgba(23,32,51,.35);border-radius:50%}
.contract-notebook-tool-cursor.is-pen{background:rgba(255,255,255,.86);border-color:var(--cursor-color,#172033)}
.contract-notebook-tool-cursor.is-pen::before{content:'';position:absolute;left:50%;top:50%;width:34%;height:34%;transform:translate(-50%,-50%);background:var(--cursor-color,#172033);border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.85)}
.contract-notebook-tool-cursor[hidden]{display:none}
@media(max-width:1366px){
  .contract-notebook-top{padding:12px;align-items:flex-start;flex-direction:column}
  .contract-notebook-title b{font-size:18px}
  .contract-notebook-actions{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .contract-notebook-actions .btn{justify-content:center;padding:10px 8px;min-height:44px}
  .contract-notebook-actions .btn span{font-size:0}
  .contract-notebook-actions .btn svg{width:19px;height:19px}
  .contract-notebook-tools{padding:10px;gap:10px}
  .notebook-tool-group{width:100%;padding:7px 8px;justify-content:flex-start;flex-wrap:wrap;border-radius:16px}
  .notebook-tool{height:44px;padding:0 12px;border-radius:12px}
  .notebook-tool-text{display:none}
  .notebook-color{height:44px;padding:0 10px;border-radius:12px}
  .notebook-color .notebook-tool-text{display:none}
  .notebook-zoom-value{min-width:52px}
  .notebook-sliders{grid-template-columns:1fr}
  .contract-notebook-work{grid-template-columns:1fr;padding:10px}
  .contract-notebook-work main{order:1;padding:8px;border-radius:18px}
  .contract-notebook-work aside{order:2;flex-direction:row;min-height:110px;padding-bottom:4px}
  .contract-notebook-work aside button{flex:0 0 92px;padding:8px;border-radius:14px}
  .contract-notebook-work aside span{height:74px}
}
@media(max-width:560px){
  .contract-notebook-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .contract-notebook-actions .btn:nth-child(1){grid-column:1 / span 2}
  .notebook-tool-group{gap:6px}
  .notebook-tool{min-width:44px;justify-content:center;padding:0 10px}
  .notebook-width{padding:9px 10px;gap:8px}
  .notebook-size-label{min-width:84px;font-size:12px}
  .notebook-width b{min-width:44px;font-size:12px}
}


/* 3.5.65 handwriting PDF */
.note-pdf-thumb{display:flex!important;align-items:center!important;justify-content:center!important;flex-direction:column;background:#f8fafc!important}
.contract-pdf-icon{font-weight:900;font-size:18px;color:#b91c1c;border:2px solid #ef4444;border-radius:8px;padding:8px 6px;background:#fff}
.contract-panel-media-card.is-pdf{min-height:180px}
.contract-panel-pdf-preview{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(145deg,#fff,#f1f5f9);border-radius:12px;color:#991b1b}
.contract-panel-pdf-preview b{font-size:28px;border:2px solid #ef4444;border-radius:10px;padding:10px 8px;background:#fff}
.contract-panel-pdf-preview span{font-size:12px;color:#64748b}
.contract-panel-pdf-frame{height:min(72vh,850px);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#f1f5f9}
.contract-panel-pdf-frame iframe{width:100%;height:100%;border:0;background:#fff}


/* 3.5.66 shapes and compact color palette */
.notebook-shape-tools{flex-wrap:wrap}
.notebook-palette{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px}
.notebook-color-swatch{width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:var(--swatch);box-shadow:0 0 0 1px #cbd5e1;cursor:pointer;transition:.15s ease}
.notebook-color-swatch:hover{transform:scale(1.08)}
.notebook-color-swatch.active{box-shadow:0 0 0 3px #d6a84b,0 4px 12px rgba(15,23,42,.16);transform:scale(1.06)}
.notebook-color-swatch[style*="#ffffff"]{background:#fff}
@media(max-width:1366px){.notebook-shape-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.notebook-shape-tools .notebook-tool{width:100%}.notebook-color-group{justify-content:center}.notebook-palette{justify-content:center;width:100%}}


/* 3.5.67 — compact mobile notebook and two-ended arrow */
@media(max-width:1366px){
  
  .contract-notebook-top{min-height:44px;padding:5px 7px!important;gap:5px!important;grid-template-columns:minmax(0,1fr) auto;flex-direction:initial!important}
  .contract-notebook-title{min-width:0;gap:0}
  
  
  .contract-notebook-actions{gap:3px!important}
  .contract-notebook-actions .btn{border-radius:9px!important;}
  
  
  
  .contract-notebook-tools{flex:0 0 auto;display:grid!important;grid-template-columns:1fr!important;gap:3px!important;padding:4px 5px!important;background:rgba(248,250,252,.93)!important;max-height:142px;overflow:hidden}
  .notebook-tool-group{width:100%!important;min-height:31px!important;padding:2px 3px!important;gap:2px!important;border-radius:9px!important;flex-wrap:nowrap!important;justify-content:center!important;box-shadow:none!important}
  .notebook-tool{height:29px!important;min-width:29px!important;width:auto!important;padding:0 7px!important;border-radius:7px!important}
  .notebook-tool-icon svg,.notebook-svg-icon svg{width:14px!important;height:14px!important}
  .notebook-tool-icon{font-size:14px!important}
  .notebook-shape-tools{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .notebook-shape-tools .notebook-tool{width:100%!important;padding:0!important}
  .notebook-color-group{min-height:26px!important}
  .notebook-palette{gap:4px!important;justify-content:center!important;flex-wrap:nowrap!important}
  .notebook-color-swatch{width:19px!important;height:19px!important;min-width:19px!important}
  .notebook-zoom-group{display:flex!important}
  .notebook-zoom-group .notebook-tool{min-width:31px!important}
  .notebook-zoom-value{font-size:10px!important;min-width:38px!important}
  .notebook-sliders{display:grid!important;grid-template-columns:1fr 1fr!important;gap:3px!important;background:transparent!important;border:0!important;padding:0!important}
  .notebook-width{min-width:0!important;height:30px!important;padding:2px 5px!important;gap:4px!important;border-radius:8px!important;box-shadow:none!important}
  .notebook-width .notebook-size-icon{display:none!important}
  .notebook-size-label{min-width:0!important;font-size:9px!important;white-space:nowrap}
  .notebook-width input{min-width:0!important;width:100%!important}
  .notebook-width b{font-size:9px!important;min-width:28px!important}
  .contract-notebook-work{grid-template-rows:minmax(0,1fr) 42px!important;gap:3px!important;padding:3px!important}
  .contract-notebook-work main{border-radius:8px!important;background:#e9eef5!important}
  
  .contract-notebook-work canvas{border-radius:5px!important;box-shadow:0 4px 16px rgba(15,23,42,.12)!important}
  .contract-notebook-work aside{height:42px!important;gap:3px!important;}
  .contract-notebook-work aside button{flex:0 0 38px!important;width:38px!important;height:38px!important;padding:2px!important;border-radius:7px!important;}
  .contract-notebook-work aside span{height:27px!important;border-radius:4px!important}
  .contract-notebook-work aside b{font-size:7px!important;}
}
@media(max-width:430px){
  .contract-notebook-tools{max-height:132px}
  .notebook-tool-group{min-height:28px!important}
  .notebook-tool{height:27px!important;min-width:27px!important}
  .notebook-color-swatch{width:17px!important;height:17px!important;min-width:17px!important}
  .notebook-width{height:27px!important}
  .contract-notebook-work{grid-template-rows:minmax(0,1fr) 38px!important}
  .contract-notebook-work aside{height:38px!important}
  .contract-notebook-work aside button{width:34px!important;height:34px!important;flex-basis:34px!important}
  .contract-notebook-work aside span{height:24px!important}
}


/* 3.5.68 — Samsung-like mobile toolbar with expandable groups */
.notebook-mobile-toolbar,.notebook-mobile-panels{display:none}
.notebook-desktop-tools{display:flex;gap:12px;flex-wrap:wrap;width:100%}
@media(max-width:1366px){
  .contract-notebook-layer{height:100dvh;overflow:hidden;background:linear-gradient(180deg,#edf2f8 0%,#e6ebf3 100%)!important}
  .contract-notebook-top{flex:0 0 auto;padding:6px 8px!important;gap:6px!important;background:rgba(255,255,255,.9)!important}
  .contract-notebook-title b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  
  .contract-notebook-actions{gap:4px!important}
  .contract-notebook-actions .btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;}
  
  .contract-notebook-actions .btn svg{width:15px!important;height:15px!important}
  .contract-notebook-actions .notebook-top-btn:first-child{display:none!important}
  .contract-notebook-tools{padding:6px 8px 4px!important;display:block!important;gap:0!important;max-height:none!important;}
  .notebook-desktop-tools{display:none!important}
  .notebook-mobile-toolbar{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;background:#23262d;border-radius:22px;padding:6px 8px;box-shadow:0 10px 26px rgba(15,23,42,.14)}
  .notebook-mobile-tool{height:40px;min-width:0;border:0;border-radius:16px;background:transparent;color:#f5f7fb;display:grid;place-items:center;cursor:pointer;transition:.15s ease}
  .notebook-mobile-tool .notebook-svg-icon svg{width:18px;height:18px}
  .notebook-mobile-tool:hover,.notebook-mobile-tool.active{background:rgba(255,255,255,.14)}
  .notebook-mobile-panels{display:block!important;margin-top:6px}
  .notebook-mobile-panel{display:none;align-items:center;justify-content:flex-start;gap:8px;background:#23262d;color:#fff;border-radius:20px;padding:8px 10px;box-shadow:0 8px 22px rgba(15,23,42,.14)}
  .notebook-mobile-panel.open{display:flex}
  .notebook-mobile-panel .notebook-tool{height:38px;min-width:38px;padding:0 10px;border:0;border-radius:14px;background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center}
  .notebook-mobile-panel .notebook-tool.active{background:rgba(255,255,255,.16);box-shadow:none}
  .notebook-mobile-panel .notebook-tool-text{display:none!important}
  .notebook-mobile-panel .notebook-tool-icon svg,.notebook-mobile-panel .notebook-svg-icon svg{width:18px;height:18px}
  .notebook-mobile-panel .notebook-palette{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}
  .notebook-mobile-panel .notebook-color-swatch{width:24px!important;height:24px!important;min-width:24px!important;border:2px solid rgba(255,255,255,.75)!important;box-shadow:none!important}
  .notebook-mobile-panel .notebook-color-swatch.active{box-shadow:0 0 0 3px #d6a84b!important;transform:none!important}
  .notebook-mobile-panel .notebook-width{flex:1 1 100%;background:rgba(255,255,255,.08);color:#fff;border:0;box-shadow:none;border-radius:14px;padding:7px 10px}
  .notebook-mobile-panel .notebook-width input{min-width:0;width:100%}
  .notebook-mobile-panel .notebook-width b{color:#fff}
  .notebook-mobile-panel .notebook-size-label{min-width:88px;font-size:11px}
  .notebook-mobile-panel[data-panel="shapes"]{display:none;grid-template-columns:repeat(5,minmax(0,1fr))}
  .notebook-mobile-panel[data-panel="shapes"].open{display:grid}
  .notebook-mobile-panel[data-panel="shapes"] .notebook-tool{width:100%;padding:0}
  .notebook-mobile-panel[data-panel="colors"].open{display:block}
  .notebook-mobile-panel[data-panel="size"].open{display:grid;grid-template-columns:1fr;gap:8px}
  .notebook-mobile-panel[data-panel="view"]{justify-content:center}
  .notebook-mobile-panel[data-panel="view"] .notebook-zoom-value{color:#fff;min-width:54px;font-size:12px}
  .contract-notebook-work{flex:1 1 auto;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:minmax(0,1fr) 54px!important;gap:4px!important;}
  .contract-notebook-work main{width:100%!important;padding:2px!important;border-radius:16px!important;background:#dde5ef!important;border:0!important}
  .contract-notebook-canvas-wrap{width:max-content;min-width:95vw!important;padding:1px!important}
  .contract-notebook-work canvas{width:95vw!important;max-width:95vw!important;border-radius:12px!important;box-shadow:0 8px 22px rgba(15,23,42,.12)!important}
  .contract-notebook-work aside{min-height:0!important;height:54px!important;gap:4px!important;padding:0 2px!important;}
  .contract-notebook-work aside button{flex:0 0 46px!important;width:46px!important;height:46px!important;padding:3px!important;box-shadow:none!important}
  .contract-notebook-work aside span{height:32px!important;border-radius:6px!important}
  .contract-notebook-work aside b{font-size:8px!important;margin-top:1px!important;line-height:1!important}
}
@media(max-width:430px){
  .notebook-mobile-toolbar{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;padding:6px}
  .notebook-mobile-tool{height:38px;border-radius:14px}
  .contract-notebook-work{grid-template-rows:minmax(0,1fr) 50px!important}
  .contract-notebook-work aside{height:50px!important}
  .contract-notebook-work aside button{width:42px!important;height:42px!important;flex-basis:42px!important}
}

/* 3.5.69 — polished mobile notebook layout and safe-area support */
@media(max-width:1366px){
  .contract-notebook-layer{
    inset:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px) 0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    background:#e8edf5!important;
  }
  .contract-notebook-top{
    z-index:30!important;
    flex:0 0 46px!important;
    min-height:46px!important;
    max-height:46px!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    padding:5px 8px!important;
    border-bottom:1px solid #dce3ed!important;
    box-shadow:0 2px 10px rgba(15,23,42,.07)!important;
  }
  .contract-notebook-title{
    overflow:hidden!important;
  }
  .contract-notebook-title b{
    display:block!important;
    max-width:100%!important;
    font-size:12px!important;
    line-height:15px!important;
  }
  .contract-notebook-title span{
    display:block!important;
    font-size:9px!important;
    line-height:12px!important;
  }
  .contract-notebook-actions{
    align-self:center!important;
    height:36px!important;
  }
  .contract-notebook-actions .btn{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    border-radius:10px!important;
  }
  .contract-notebook-tools{
    z-index:25!important;
    box-sizing:border-box!important;
    padding:5px 8px 4px!important;
  }
  .notebook-mobile-toolbar{
    width:100%!important;
    min-height:48px!important;
    box-sizing:border-box!important;
    grid-template-columns:repeat(8,minmax(34px,1fr))!important;
    align-items:center!important;
    gap:5px!important;
    padding:5px 7px!important;
    border:1px solid rgba(255,255,255,.06)!important;
    border-radius:18px!important;
    box-shadow:0 8px 20px rgba(15,23,42,.16)!important;
  }
  .notebook-mobile-tool{
    width:100%!important;
    height:38px!important;
    min-width:0!important;
    min-height:38px!important;
    padding:0!important;
    border-radius:13px!important;
  }
  .notebook-mobile-tool .notebook-svg-icon svg{
    width:17px!important;
    height:17px!important;
  }
  .notebook-mobile-panels{
    z-index:24!important;
    width:100%!important;
    margin-top:5px!important;
  }
  .notebook-mobile-panel{
    width:100%!important;
    min-height:46px!important;
    box-sizing:border-box!important;
    border-radius:16px!important;
    padding:6px 8px!important;
    background:#23262d!important;
    overflow:hidden!important;
  }
  .notebook-mobile-panel:not(.open){display:none!important}
  .notebook-mobile-panel.open{display:flex!important}
  .notebook-mobile-panel[data-panel="shapes"].open{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }
  .notebook-mobile-panel[data-panel="size"].open{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .contract-notebook-work{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:hidden!important;
    grid-template-rows:minmax(0,1fr) 48px!important;
    padding:4px!important;
  }
  .contract-notebook-work main{
    overflow:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .contract-notebook-canvas-wrap{
    min-width:calc(100vw - 10px)!important;
    padding:0!important;
  }
  .contract-notebook-work canvas{
    width:calc(100vw - 10px)!important;
    max-width:calc(100vw - 10px)!important;
    border-radius:10px!important;
  }
  .contract-notebook-work aside{
    height:48px!important;
  }
  .contract-notebook-work aside button{
    width:42px!important;
    height:42px!important;
    flex-basis:42px!important;
  }
}
@media(max-width:430px){
  .contract-notebook-top{
    flex-basis:44px!important;
    min-height:44px!important;
    max-height:44px!important;
  }
  .contract-notebook-title b{font-size:11px!important}
  .contract-notebook-actions .btn{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    min-height:30px!important;
  }
  .notebook-mobile-toolbar{
    min-height:46px!important;
    padding:4px 6px!important;
  }
  .notebook-mobile-tool{
    height:36px!important;
    min-height:36px!important;
  }
}


/* 3.5.70 — final clean mobile notebook header */
@media(max-width:1366px){
  .contract-notebook-layer{
    inset:0!important;
    height:100dvh!important;
    padding-top:env(safe-area-inset-top,0px)!important;
    padding-bottom:env(safe-area-inset-bottom,0px)!important;
    background:#e9eef5!important;
  }
  .contract-notebook-top{
    position:relative!important;
    z-index:40!important;
    display:grid!important;
    gap:10px!important;
    flex:0 0 54px!important;
    min-height:54px!important;
    max-height:54px!important;
    padding:7px 10px!important;
    overflow:hidden!important;
    background:#fff!important;
    border:0!important;
    border-bottom:1px solid #d9e0ea!important;
    box-shadow:none!important;
  }
  .contract-notebook-title{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:1px!important;
  }
  .contract-notebook-title b{
    font-size:13px!important;
    line-height:16px!important;
    font-weight:800!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .contract-notebook-title span{
    line-height:13px!important;
    color:#64748b!important;
  }
  .contract-notebook-actions{
    width:auto!important;
    overflow:visible!important;
  }
  .contract-notebook-actions .btn{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid #d9e0ea!important;
    background:#f7f9fc!important;
    color:#172033!important;
    box-shadow:none!important;
  }
  
  
  
  
  .contract-notebook-actions .notebook-action-add{
    order:2!important;
  }
  .contract-notebook-actions .notebook-action-save{
    order:3!important;
    border-color:#172033!important;
  }
  .contract-notebook-tools{
    flex:0 0 auto!important;
    padding:6px 8px!important;
    margin:0!important;
    background:#fff!important;
    border-bottom:1px solid #d9e0ea!important;
  }
  .notebook-mobile-toolbar{
    padding:6px 8px!important;
    min-height:52px!important;
    box-shadow:0 7px 18px rgba(15,23,42,.16)!important;
  }
  .notebook-mobile-tool{
    height:40px!important;
    border-radius:14px!important;
  }
  .notebook-mobile-panels{margin-top:6px!important}
  .notebook-mobile-panel{border-radius:18px!important}
  .contract-notebook-work{
    padding:5px!important;
    gap:5px!important;
  }
  .contract-notebook-work main{
    background:#e3e9f1!important;
  }
}
@media(max-width:430px){
  .contract-notebook-top{
    grid-template-columns:minmax(0,1fr) auto!important;
    padding:6px 8px!important;
  }
  .contract-notebook-actions{gap:4px!important}
  .contract-notebook-actions .btn{
    width:35px!important;
    height:35px!important;
    min-width:35px!important;
    min-height:35px!important;
    border-radius:10px!important;
  }
  .contract-notebook-title b{font-size:12px!important}
  .notebook-mobile-toolbar{gap:4px!important;padding:6px!important}
}


/* 3.5.71 — cleaner mobile header with lower white bar and visible back button */
@media(max-width:1366px){
  .contract-notebook-layer{padding-top:10px!important;background:linear-gradient(180deg,#0b0b0d 0,#0b0b0d 14px,#eef2f7 14px,#e7edf5 100%)!important}
  .contract-notebook-top{margin:8px 8px 0 8px!important;padding:10px 12px!important;border-radius:16px!important;background:rgba(255,255,255,.98)!important;box-shadow:0 6px 18px rgba(15,23,42,.08)!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
  .contract-notebook-title{padding-right:8px!important}
  .contract-notebook-title b{font-size:14px!important;line-height:1.15!important}
  .contract-notebook-title span{font-size:10px!important;line-height:1.2!important;margin-top:2px!important}
  .contract-notebook-actions{gap:6px!important}
  .contract-notebook-actions .btn{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border-radius:12px!important}
  .contract-notebook-actions .btn svg{width:18px!important;height:18px!important}
  .contract-notebook-actions .btn span{display:none!important}
  .contract-notebook-actions .notebook-action-close,.contract-notebook-actions .notebook-action-clear{display:none!important}
  .contract-notebook-actions .notebook-action-back{display:grid!important;background:#f2f5fa!important;color:#172033!important;border:1px solid #d6deea!important}
  .contract-notebook-actions .notebook-action-add{display:grid!important;background:#f2f5fa!important;color:#172033!important;border:1px solid #d6deea!important}
  .contract-notebook-actions .notebook-action-save{display:grid!important;background:#172033!important;color:#fff!important;border:1px solid #172033!important}
  .contract-notebook-tools{padding:8px 8px 4px!important;margin-top:6px!important;background:transparent!important;border-bottom:0!important}
  .notebook-mobile-toolbar{margin:0 0 2px 0!important;border-radius:20px!important;min-height:54px!important;padding:7px 8px!important;background:#23262d!important;box-shadow:0 8px 20px rgba(15,23,42,.14)!important}
  .contract-notebook-work{padding:6px 5px 5px!important}
  .contract-notebook-work main{border-radius:14px!important}
}
@media(max-width:430px){
  .contract-notebook-layer{padding-top:8px!important;background:linear-gradient(180deg,#0b0b0d 0,#0b0b0d 12px,#eef2f7 12px,#e7edf5 100%)!important}
  .contract-notebook-top{margin:8px 6px 0 6px!important;padding:9px 10px!important;border-radius:14px!important}
  .contract-notebook-title b{font-size:13px!important}
  .contract-notebook-actions{gap:5px!important}
  .contract-notebook-actions .btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  .notebook-mobile-toolbar{padding:7px 7px!important;gap:5px!important;border-radius:18px!important}
  .contract-notebook-tools{padding:7px 6px 4px!important}
}


/* 3.5.72 — visible mobile back button and unified desktop/mobile notebook design */
@media(max-width:1366px){
  .contract-notebook-actions .notebook-action-back{
    min-width:92px!important;
    padding:0 13px!important;
    display:flex!important;
    gap:7px!important;
  }
  .contract-notebook-actions .notebook-action-back .notebook-back-label{
    display:inline!important;
    font-size:12px!important;
    font-weight:800!important;
    white-space:nowrap!important;
  }
}

@media(min-width:1367px){
  .contract-notebook-layer{
    background:linear-gradient(180deg,#eef2f7 0%,#e7edf5 100%)!important;
  }
  .contract-notebook-top{
    margin:14px 16px 0!important;
    padding:12px 16px!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.97)!important;
    border:1px solid #d8e0ec!important;
    box-shadow:0 8px 24px rgba(15,23,42,.07)!important;
  }
  .contract-notebook-title b{font-size:18px!important}
  .contract-notebook-actions .btn{
    height:42px!important;
  }
  .contract-notebook-actions .notebook-action-back{
    display:inline-flex!important;
    align-items:center!important;
    gap:8px!important;
    background:#f2f5fa!important;
    border:1px solid #d6deea!important;
  }
  .contract-notebook-actions .notebook-action-add{
    background:#f2f5fa!important;
    border:1px solid #d6deea!important;
  }
  
  .contract-notebook-tools{
    padding:10px 16px 6px!important;
  }
  .notebook-desktop-tools{display:none!important}
  .notebook-mobile-toolbar{
    display:grid!important;
    grid-template-columns:repeat(8,minmax(0,1fr))!important;
    gap:8px!important;
    max-width:920px!important;
    margin:0 auto!important;
    background:#23262d!important;
    border-radius:24px!important;
    padding:8px 10px!important;
    box-shadow:0 10px 28px rgba(15,23,42,.15)!important;
  }
  .notebook-mobile-tool{
    display:grid!important;
    place-items:center!important;
    height:46px!important;
    border:0!important;
    border-radius:16px!important;
    background:transparent!important;
    color:#f7f9fc!important;
    cursor:pointer!important;
  }
  .notebook-mobile-tool:hover,.notebook-mobile-tool.active{
    background:rgba(255,255,255,.14)!important;
  }
  .notebook-mobile-tool .notebook-svg-icon svg{width:20px!important;height:20px!important}
  .notebook-mobile-panels{
    display:block!important;
    max-width:920px!important;
    margin:8px auto 0!important;
  }
  .notebook-mobile-panel{
    display:none!important;
    align-items:center!important;
    gap:10px!important;
    padding:10px 12px!important;
    background:#23262d!important;
    color:#fff!important;
    border-radius:20px!important;
    box-shadow:0 8px 24px rgba(15,23,42,.14)!important;
  }
  .notebook-mobile-panel.open{display:flex!important}
  .notebook-mobile-panel[data-panel="shapes"].open{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }
  .notebook-mobile-panel[data-panel="colors"].open{display:block!important}
  .notebook-mobile-panel[data-panel="size"].open{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  .notebook-mobile-panel[data-panel="view"].open{justify-content:center!important}
  .notebook-mobile-panel .notebook-tool{
    height:42px!important;
    min-width:42px!important;
    border:0!important;
    border-radius:14px!important;
    background:transparent!important;
    color:#fff!important;
  }
  .notebook-mobile-panel .notebook-tool:hover,.notebook-mobile-panel .notebook-tool.active{
    background:rgba(255,255,255,.15)!important;
  }
  .notebook-mobile-panel .notebook-tool-text{display:none!important}
  .notebook-mobile-panel .notebook-width{
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;
    border:0!important;
    box-shadow:none!important;
  }
  .notebook-mobile-panel .notebook-width b{color:#fff!important}
  .notebook-mobile-panel .notebook-zoom-value{color:#fff!important}
  .contract-notebook-work{
    grid-template-columns:150px 1fr!important;
    gap:14px!important;
    padding:10px 16px 16px!important;
  }
  .contract-notebook-work main{
    border:0!important;
    border-radius:22px!important;
    padding:14px!important;
  }
  .contract-notebook-work canvas{
    border-radius:18px!important;
    box-shadow:0 18px 45px rgba(15,23,42,.14)!important;
  }
}


/* 3.5.73 — clear mobile action icons and visible/clickable page strip */
@media(max-width:1366px){
  .contract-notebook-actions .btn:before{content:none!important;display:none!important}
  .contract-notebook-actions .btn{overflow:hidden!important}
  .contract-notebook-actions .btn svg{display:block!important}
  .contract-notebook-actions .notebook-action-back{
    width:auto!important;min-width:118px!important;height:42px!important;min-height:42px!important;
    padding:0 12px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
  }
  .contract-notebook-actions .notebook-action-back .notebook-back-label,
  .contract-notebook-actions .notebook-action-back span{display:inline!important;font-size:12px!important;font-weight:800!important;white-space:nowrap!important}
  .contract-notebook-actions .notebook-action-back svg{width:18px!important;height:18px!important;flex:0 0 18px!important}
  .contract-notebook-actions .notebook-action-add,
  .contract-notebook-actions .notebook-action-save{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;
  }
  .contract-notebook-actions .notebook-action-add svg,
  .contract-notebook-actions .notebook-action-save svg{width:19px!important;height:19px!important}

  .contract-notebook-work{grid-template-rows:minmax(0,1fr) 86px!important;gap:6px!important}
  .contract-notebook-work aside{
    order:2!important;position:relative!important;z-index:5!important;pointer-events:auto!important;
    height:86px!important;min-height:86px!important;display:flex!important;flex-direction:row!important;align-items:flex-start!important;
    gap:8px!important;padding:4px 4px calc(8px + env(safe-area-inset-bottom, 0px))!important;
    overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin!important;background:transparent!important;
  }
  .contract-notebook-work aside button{
    flex:0 0 68px!important;width:68px!important;height:74px!important;min-width:68px!important;min-height:74px!important;
    display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;
    padding:4px!important;border-radius:12px!important;pointer-events:auto!important;
  }
  .contract-notebook-work aside span{height:46px!important;min-height:46px!important;border-radius:8px!important}
  .contract-notebook-work aside b{display:block!important;font-size:9px!important;line-height:1.15!important;margin-top:4px!important;text-align:center!important}
  .contract-notebook-work aside button.active{border-color:#d6a84b!important;box-shadow:0 6px 18px rgba(214,168,75,.22)!important}
  .contract-notebook-work main{order:1!important;min-height:0!important}
}
@media(max-width:430px){
  .contract-notebook-actions .notebook-action-back{min-width:110px!important;height:40px!important;min-height:40px!important;padding:0 10px!important}
  .contract-notebook-actions .notebook-action-back span{font-size:11px!important}
  .contract-notebook-actions .notebook-action-add,
  .contract-notebook-actions .notebook-action-save{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
  .contract-notebook-work{grid-template-rows:minmax(0,1fr) 82px!important}
  .contract-notebook-work aside{height:82px!important;min-height:82px!important;gap:6px!important}
  .contract-notebook-work aside button{flex-basis:62px!important;width:62px!important;height:70px!important;min-width:62px!important;min-height:70px!important}
  .contract-notebook-work aside span{height:42px!important;min-height:42px!important}
  .contract-notebook-work aside b{font-size:8px!important}
}


/* 3.5.76 — mobile notebook top bar lower from the top edge */
@media(max-width:1366px){
  .contract-notebook-layer{
    padding-top:calc(env(safe-area-inset-top, 0px) + 22px)!important;
    background:linear-gradient(180deg,#0b0b0d 0,#0b0b0d 18px,#eef2f7 18px,#e7edf5 100%)!important;
  }
  .contract-notebook-top{
    margin:14px 8px 0 8px!important;
  }
}
@media(max-width:430px){
  .contract-notebook-layer{
    padding-top:calc(env(safe-area-inset-top, 0px) + 18px)!important;
    background:linear-gradient(180deg,#0b0b0d 0,#0b0b0d 16px,#eef2f7 16px,#e7edf5 100%)!important;
  }
  .contract-notebook-top{
    margin:12px 6px 0 6px!important;
  }
}


/* 3.5.77 — lift mobile header ~15px and add exit icon button */
@media(max-width:1366px){
  .contract-notebook-layer{
    padding-top:calc(env(safe-area-inset-top, 0px) + 14px)!important;
    background:linear-gradient(180deg,#0b0b0d 0,#0b0b0d 16px,#eef2f7 16px,#e7edf5 100%)!important;
  }
  .contract-notebook-top{margin:7px 8px 0 8px!important}
  .contract-notebook-actions .notebook-action-exit{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;
    display:grid!important;place-items:center!important;background:#f2f5fa!important;color:#172033!important;border:1px solid #d6deea!important;
  }
  .contract-notebook-actions .notebook-action-exit span{display:none!important}
  .contract-notebook-actions .notebook-action-exit svg{width:19px!important;height:19px!important}
}
@media(max-width:430px){
  .contract-notebook-layer{
    padding-top:calc(env(safe-area-inset-top, 0px) + 12px)!important;
    background:linear-gradient(180deg,#0b0b0d 0,#0b0b0d 14px,#eef2f7 14px,#e7edf5 100%)!important;
  }
  .contract-notebook-top{margin:3px 6px 0 6px!important}
  .contract-notebook-actions .notebook-action-exit{
    width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
  }
}
@media(min-width:1367px){
  .contract-notebook-actions .notebook-action-exit{
    background:#f2f5fa!important;color:#172033!important;border:1px solid #d6deea!important;
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;
    display:inline-grid!important;place-items:center!important;
  }
  .contract-notebook-actions .notebook-action-exit span{display:none!important}
  .contract-notebook-actions .notebook-action-exit svg{width:19px!important;height:19px!important}
}


/* 3.5.78 — professional desktop notebook layout; mobile unchanged */
@media(min-width:1367px){
  .contract-notebook-layer{
    background:linear-gradient(180deg,#edf2f7 0%,#e6ecf4 100%)!important;
    padding:0!important;
  }
  .contract-notebook-top{
    margin:18px 20px 0!important;
    padding:16px 18px!important;
    border-radius:20px!important;
    background:rgba(255,255,255,.98)!important;
    border:1px solid #d8e1ec!important;
    box-shadow:0 10px 30px rgba(15,23,42,.08)!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:18px!important;
  }
  .contract-notebook-title{gap:4px!important}
  .contract-notebook-title b{font-size:20px!important;line-height:1.2!important}
  .contract-notebook-title span{font-size:13px!important;color:#64748b!important}
  .contract-notebook-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important}
  .contract-notebook-actions .btn{
    height:44px!important;
    min-height:44px!important;
    border-radius:13px!important;
    padding:0 14px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:auto!important;
    min-width:auto!important;
  }
  .contract-notebook-actions .btn span{display:inline!important;font-size:13px!important;font-weight:800!important;white-space:nowrap!important}
  .contract-notebook-actions .btn svg{width:18px!important;height:18px!important}
  .contract-notebook-actions .notebook-action-back{
    background:#f3f6fa!important;color:#172033!important;border:1px solid #d7e0eb!important;
  }
  .contract-notebook-actions .notebook-action-add{
    background:#f3f6fa!important;color:#172033!important;border:1px solid #d7e0eb!important;
  }
  .contract-notebook-actions .notebook-action-exit{
    background:#fff8e8!important;color:#7c5a10!important;border:1px solid #ead39a!important;
  }
  .contract-notebook-actions .notebook-action-exit span{display:inline!important}
  .contract-notebook-actions .notebook-action-save{
    background:#172033!important;color:#fff!important;border:1px solid #172033!important;
  }

  .contract-notebook-tools{
    padding:12px 20px 8px!important;
    background:transparent!important;
    border-bottom:0!important;
  }
  .notebook-mobile-toolbar,
  .notebook-mobile-panels{display:none!important}
  .notebook-desktop-tools{
    display:grid!important;
    grid-template-columns:auto auto auto auto!important;
    grid-template-areas:
      "draw shapes color history"
      "zoom sliders sliders sliders"!important;
    gap:10px!important;
    max-width:1400px!important;
    margin:0 auto!important;
    width:100%!important;
    align-items:center!important;
  }
  .notebook-desktop-tools>.notebook-tool-group{
    background:#fff!important;
    border:1px solid #d8e1ec!important;
    border-radius:18px!important;
    padding:8px 10px!important;
    box-shadow:0 8px 22px rgba(15,23,42,.05)!important;
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    width:auto!important;
  }
  .notebook-desktop-tools>.notebook-tool-group:nth-child(1){grid-area:draw}
  .notebook-desktop-tools>.notebook-tool-group:nth-child(2){grid-area:shapes}
  .notebook-desktop-tools>.notebook-tool-group:nth-child(3){grid-area:color}
  .notebook-desktop-tools>.notebook-tool-group:nth-child(4){grid-area:history}
  .notebook-desktop-tools>.notebook-tool-group:nth-child(5){grid-area:zoom}
  .notebook-desktop-tools>.notebook-tool-group:nth-child(6){grid-area:sliders}
  .notebook-desktop-tools .notebook-tool{
    height:42px!important;
    min-width:42px!important;
    padding:0 12px!important;
    border-radius:13px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    background:transparent!important;
    color:#172033!important;
    border:0!important;
  }
  .notebook-desktop-tools .notebook-tool:hover{background:#f3f6fa!important}
  .notebook-desktop-tools .notebook-tool.active{
    background:#172033!important;color:#fff!important;box-shadow:0 8px 18px rgba(23,32,51,.18)!important;
  }
  .notebook-desktop-tools .notebook-tool-text{display:inline!important;font-size:12px!important;font-weight:800!important}
  .notebook-desktop-tools .notebook-tool-icon svg,
  .notebook-desktop-tools .notebook-svg-icon svg{width:18px!important;height:18px!important}
  .notebook-desktop-tools .notebook-palette{display:flex!important;gap:7px!important;flex-wrap:nowrap!important}
  .notebook-desktop-tools .notebook-color-swatch{width:25px!important;height:25px!important;min-width:25px!important}
  .notebook-desktop-tools .notebook-zoom-value{font-size:12px!important;min-width:48px!important}
  .notebook-desktop-tools .notebook-sliders{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    padding:0!important;
  }
  .notebook-desktop-tools .notebook-width{
    height:46px!important;
    border-radius:14px!important;
    padding:8px 12px!important;
    background:#fff!important;
    border:1px solid #d8e1ec!important;
    box-shadow:none!important;
  }
  .notebook-desktop-tools .notebook-size-label{min-width:110px!important;font-size:12px!important}
  .notebook-desktop-tools .notebook-width input{min-width:180px!important;flex:1!important}

  .contract-notebook-work{
    flex:1 1 auto!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:190px minmax(0,1fr)!important;
    gap:16px!important;
    padding:10px 20px 20px!important;
  }
  .contract-notebook-work aside{
    order:1!important;
    height:auto!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:2px 4px 2px 2px!important;
    background:transparent!important;
  }
  .contract-notebook-work aside button{
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    flex:0 0 auto!important;
    display:flex!important;
    flex-direction:column!important;
    padding:9px!important;
    border-radius:16px!important;
    background:#fff!important;
    border:1px solid #d8e1ec!important;
    box-shadow:0 7px 20px rgba(15,23,42,.05)!important;
    cursor:pointer!important;
  }
  .contract-notebook-work aside button:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.08)!important}
  .contract-notebook-work aside button.active{border-color:#d6a84b!important;box-shadow:0 0 0 2px rgba(214,168,75,.18),0 10px 24px rgba(15,23,42,.07)!important}
  .contract-notebook-work aside span{height:130px!important;min-height:130px!important;border-radius:11px!important;background:#f7f9fc!important}
  .contract-notebook-work aside b{display:block!important;font-size:12px!important;text-align:center!important;margin-top:7px!important}
  .contract-notebook-work main{
    order:2!important;
    min-width:0!important;
    min-height:0!important;
    display:flex!important;
    justify-content:center!important;
    align-items:flex-start!important;
    overflow:auto!important;
    background:#dfe6ef!important;
    border:1px solid #d5dee9!important;
    border-radius:24px!important;
    padding:18px!important;
  }
  .contract-notebook-canvas-wrap{padding:6px!important}
  .contract-notebook-work canvas{
    border-radius:16px!important;
    box-shadow:0 22px 50px rgba(15,23,42,.16)!important;
  }
}


/* 3.5.79 — remove duplicated desktop back button */
@media(min-width:1367px){
  .contract-notebook-actions .notebook-action-back{display:none!important}
}


/* 3.5.81 — clean undo/redo icons and solid mobile sticky modal footer */
@media(max-width:850px){
  #modal.modal{
    padding:12px 8px 0!important;
    align-items:flex-end!important;
  }
  #modal .modal-card{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-height:calc(100dvh - 24px - env(safe-area-inset-top, 0px))!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:22px 22px 0 0!important;
    background:#fff!important;
  }
  #modal .modal-head{
    flex:0 0 auto!important;
    position:relative!important;
    top:auto!important;
    margin:0!important;
    padding:14px 14px 12px!important;
    background:#fff!important;
    border-bottom:1px solid var(--line)!important;
    z-index:5!important;
  }
  #modal #modalBody{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:0 14px!important;
    background:#fff!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #modal #modalBody>form,
  #modal #modalBody>.grid2,
  #modal #modalBody>.crm-confirm,
  #modal #modalBody>.confirm-box{
    min-height:100%!important;
  }
  #modal .modal-actions:not(.confirm-box .modal-actions){
    position:sticky!important;
    bottom:0!important;
    z-index:20!important;
    margin:18px -14px 0!important;
    padding:12px 14px calc(14px + env(safe-area-inset-bottom, 0px))!important;
    background:#fff!important;
    border-top:1px solid var(--line)!important;
    box-shadow:0 -10px 24px rgba(15,23,42,.10)!important;
    isolation:isolate!important;
  }
  #modal .modal-actions:not(.confirm-box .modal-actions)::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:calc(-1 * env(safe-area-inset-bottom, 0px));
    height:calc(env(safe-area-inset-bottom, 0px) + 2px);
    background:#fff;
    z-index:-1;
    pointer-events:none;
  }
  #modal .modal-actions .btn{
    min-height:46px!important;
  }
  #modal .confirm-box .modal-actions,
  #modal .crm-confirm .modal-actions{
    position:static!important;
    margin:18px 0 0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }
}
@media(max-width:430px){
  #modal #modalBody{padding-left:10px!important;padding-right:10px!important}
  #modal .modal-actions:not(.confirm-box .modal-actions){
    margin-left:-10px!important;
    margin-right:-10px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
}


/* 3.5.82 — compact confirmation popups keep actions visible */
@media(max-width:850px){
  #modal.modal-compact{
    align-items:center!important;
    padding:18px 12px calc(18px + env(safe-area-inset-bottom, 0px))!important;
  }
  #modal.modal-compact .modal-card{
    width:min(520px,100%)!important;
    max-height:calc(100dvh - 36px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  #modal.modal-compact #modalBody{
    flex:0 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    padding:14px!important;
  }
  #modal.modal-compact #modalBody>.confirm-box,
  #modal.modal-compact #modalBody>.crm-confirm{
    min-height:0!important;
    display:block!important;
  }
  #modal.modal-compact .confirm-box .modal-actions,
  #modal.modal-compact .crm-confirm .modal-actions{
    position:sticky!important;
    bottom:0!important;
    z-index:5!important;
    margin:18px -14px -14px!important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom, 0px))!important;
    background:#fff!important;
    border-top:1px solid var(--line)!important;
    box-shadow:0 -8px 18px rgba(15,23,42,.08)!important;
  }
  #modal.modal-compact .confirm-box .modal-actions .btn,
  #modal.modal-compact .crm-confirm .modal-actions .btn{
    flex:1 1 0!important;
    min-width:0!important;
  }
}
@media(max-width:430px){
  #modal.modal-compact{padding-left:10px!important;padding-right:10px!important}
  #modal.modal-compact #modalBody{padding:12px!important}
  #modal.modal-compact .confirm-box .modal-actions,
  #modal.modal-compact .crm-confirm .modal-actions{
    margin-left:-12px!important;
    margin-right:-12px!important;
    margin-bottom:-12px!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
}


/* 3.5.83 — pull-to-refresh only on normal CRM pages */
html.overlay-no-pull-refresh,body.overlay-no-pull-refresh{
  overscroll-behavior:none!important;
  overscroll-behavior-y:none!important;
}
body.overlay-no-pull-refresh{
  overflow:hidden!important;
  touch-action:pan-x pan-y;
}
body.overlay-no-pull-refresh #modalBody,
body.overlay-no-pull-refresh .mobile-select-options,
body.overlay-no-pull-refresh .mobile-datetime-content,
body.overlay-no-pull-refresh .contract-notebook-work main,
body.overlay-no-pull-refresh .contract-notebook-work aside,
body.overlay-no-pull-refresh .mobile-menu-card{
  overscroll-behavior:contain!important;
}


/* 3.5.84 — contract handwriting PDF popup higher and reliably clickable on mobile */
@media(max-width:850px){
  #modal.modal-contract-media{
    align-items:flex-start!important;
    padding:calc(env(safe-area-inset-top, 0px) + 42px) 10px calc(16px + env(safe-area-inset-bottom, 0px))!important;
  }
  #modal.modal-contract-media .modal-card{
    width:100%!important;
    max-height:calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 64px)!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  #modal.modal-contract-media #modalBody{
    padding:12px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
  }
  #modal.modal-contract-media .contract-panel-media-head{
    margin-bottom:10px!important;
  }
  #modal.modal-contract-media .contract-panel-media-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    max-height:none!important;
    overflow:visible!important;
    padding:0 0 8px!important;
  }
  #modal.modal-contract-media .contract-panel-media-card{
    position:relative!important;
    z-index:2!important;
    min-height:0!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:108px minmax(0,1fr)!important;
    align-items:stretch!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    cursor:pointer!important;
    border-radius:16px!important;
  }
  #modal.modal-contract-media .contract-panel-media-card.is-pdf{
    min-height:112px!important;
  }
  #modal.modal-contract-media .contract-panel-pdf-preview{
    height:112px!important;
    min-height:112px!important;
    border-radius:15px 0 0 15px!important;
  }
  #modal.modal-contract-media .contract-panel-pdf-preview b{
    font-size:21px!important;
    padding:7px 6px!important;
  }
  #modal.modal-contract-media .contract-panel-pdf-preview span{
    display:none!important;
  }
  #modal.modal-contract-media .contract-panel-media-card>span{
    justify-content:center!important;
    padding:14px!important;
  }
  #modal.modal-contract-media .contract-panel-media-card>span b{
    font-size:15px!important;
  }
  #modal.modal-contract-media .contract-panel-media-card>span small{
    font-size:12px!important;
    line-height:1.35!important;
  }
}
@media(max-width:430px){
  #modal.modal-contract-media{
    padding-top:calc(env(safe-area-inset-top, 0px) + 30px)!important;
  }
  #modal.modal-contract-media .modal-card{
    max-height:calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 48px)!important;
  }
  #modal.modal-contract-media .contract-panel-media-card{
    grid-template-columns:92px minmax(0,1fr)!important;
  }
  #modal.modal-contract-media .contract-panel-media-card.is-pdf,
  #modal.modal-contract-media .contract-panel-pdf-preview{
    min-height:98px!important;height:98px!important;
  }
}


/* 3.5.85 — lower attachment sheet and in-app handwriting preview */
@media(max-width:850px){
  #modal.modal-contract-media{
    align-items:flex-end!important;
    padding:12px 10px calc(14px + env(safe-area-inset-bottom, 0px))!important;
  }
  #modal.modal-contract-media .modal-card{
    max-height:min(74dvh,680px)!important;
    border-radius:22px 22px 18px 18px!important;
  }
}
@media(max-width:430px){
  #modal.modal-contract-media{
    padding:10px 8px calc(10px + env(safe-area-inset-bottom, 0px))!important;
  }
  #modal.modal-contract-media .modal-card{
    max-height:72dvh!important;
  }
}
.contract-pdf-viewer-layer{
  position:fixed;inset:0;z-index:12050;background:#e9eef5;display:flex;flex-direction:column;overflow:hidden;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
.contract-pdf-viewer-top{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff;
  border-bottom:1px solid #d8e0ec;box-shadow:0 4px 16px rgba(15,23,42,.08);
}
.contract-pdf-viewer-top>div{display:flex;flex-direction:column;min-width:0}
.contract-pdf-viewer-top b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-pdf-viewer-top span{font-size:12px;color:#64748b}
.contract-pdf-viewer-top button{width:42px;height:42px;min-width:42px;padding:0;display:grid;place-items:center}
.contract-pdf-viewer-pages{
  flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px;display:flex;flex-direction:column;gap:14px;
}
.contract-pdf-viewer-pages section{display:flex;flex-direction:column;gap:6px;align-items:center}
.contract-pdf-viewer-pages small{align-self:flex-start;color:#64748b;font-weight:700}
.contract-pdf-viewer-pages img{display:block;width:min(100%,900px);height:auto;background:#fff;border-radius:8px;box-shadow:0 5px 18px rgba(15,23,42,.14)}
@media(max-width:600px){
  .contract-pdf-viewer-top{padding:9px 10px}
  .contract-pdf-viewer-pages{padding:8px;gap:10px}
  .contract-pdf-viewer-pages img{border-radius:4px}
}


/* 3.5.86 — bidirectional touch scrolling in in-app PDF viewer */
.contract-pdf-viewer-pages{
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  overscroll-behavior-y:contain!important;
}
.contract-pdf-viewer-pages section,
.contract-pdf-viewer-pages img{touch-action:pan-y!important;}


/* 3.5.88 — dedicated materials workflow, visually consistent with existing CRM */
.materials-page-head{align-items:flex-start}.material-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}.material-filter{min-width:0;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;text-align:left;cursor:pointer;color:var(--text)}.material-filter b{display:block;font-size:22px;line-height:1}.material-filter span{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.material-filter.active{border-color:#d6a84b;box-shadow:0 0 0 2px rgba(214,168,75,.15)}.materials-list{display:grid;gap:12px}.material-card{background:#fff;border:1px solid var(--line);border-left:5px solid #94a3b8;border-radius:16px;padding:16px}.material-card.material-warning{border-left-color:#d6a84b}.material-card.material-info{border-left-color:#3b82f6}.material-card.material-violet{border-left-color:#8b5cf6}.material-card.material-success{border-left-color:#16a34a}.material-card.material-danger{border-left-color:#dc2626}.material-main{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(220px,1fr) minmax(220px,.9fr);gap:18px;align-items:center}.material-client{display:flex;gap:11px;align-items:flex-start}.material-client h4{margin:0 0 4px;font-size:16px}.material-client p,.material-contract span{margin:0;color:var(--muted);font-size:13px}.material-status-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:#94a3b8;flex:0 0 auto}.material-warning .material-status-dot{background:#d6a84b}.material-info .material-status-dot{background:#3b82f6}.material-violet .material-status-dot{background:#8b5cf6}.material-success .material-status-dot{background:#16a34a}.material-danger .material-status-dot{background:#dc2626}.material-contract{display:flex;flex-direction:column;gap:3px}.material-contract small,.material-state small{font-size:11px;color:var(--muted)}.material-state{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.material-badge{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;background:#eef2f7}.material-badge.warning{background:#fff5d9;color:#7c5700}.material-badge.info{background:#eaf2ff;color:#174ea6}.material-badge.violet{background:#f1ebff;color:#5b21b6}.material-badge.success{background:#e9f9ee;color:#166534}.material-badge.danger{background:#feecec;color:#991b1b}.material-note{margin-top:13px;padding:10px 12px;background:#f7f9fc;border-radius:11px;font-size:13px}.material-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
@media(max-width:1100px){.material-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.material-main{grid-template-columns:1fr 1fr}.material-state{grid-column:1/-1}}
@media(max-width:700px){.material-filters{display:flex;overflow-x:auto;padding-bottom:4px}.material-filter{flex:0 0 128px}.material-card{padding:13px}.material-main{gap:12px}.material-state{grid-column:auto}.material-actions{display:grid;grid-template-columns:1fr}.material-actions .btn{width:100%}.materials-page-head .btn{width:100%}}


/* 3.5.92 — uporządkowany pulpit bez dublowania informacji */
.accent-green .stat-icon{background:var(--green-soft);color:var(--green)}
.dashboard-welcome{margin-bottom:16px}
.dashboard-section-title{margin-top:20px}
.dashboard-attention{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px 18px;box-shadow:var(--shadow)}
.dashboard-attention-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
.dashboard-attention-head h3{margin:3px 0 0;font-size:19px}
.dashboard-attention-all{border:0;background:transparent;color:#53647b;font-weight:750;cursor:pointer;padding:8px}
.dashboard-attention-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}
.dashboard-attention-list button{display:grid;grid-template-columns:38px 1fr 20px;align-items:center;gap:10px;min-width:0;border:1px solid #e5eaf1;background:#f8fafc;border-radius:14px;padding:11px 12px;text-align:left;cursor:pointer;color:var(--ink)}
.dashboard-attention-list button:hover{background:#fff;border-color:#cad4e1;transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.06)}
.dashboard-attention-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#fff;border:1px solid #e7ebf1;font-size:17px}
.dashboard-attention-list button>span:nth-child(2){display:grid;min-width:0}
.dashboard-attention-list b{font-size:18px;line-height:1.1}
.dashboard-attention-list small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-attention-list i{font-style:normal;font-size:22px;color:#8b98aa;text-align:right}
.dashboard-clear{display:flex;align-items:center;gap:12px;background:#f3fbf7;border:1px solid #d6f0e2;border-radius:17px;padding:14px 16px}
.dashboard-clear>span{width:38px;height:38px;border-radius:12px;background:#dff6e9;color:#087a50;display:grid;place-items:center;font-size:19px;font-weight:900}
.dashboard-clear>div{display:grid}.dashboard-clear small{color:#537063;margin-top:2px}
.dashboard-overview .stat{min-height:132px}
.dashboard-overview .stat button{margin-top:2px}
@media(max-width:700px){
 .dashboard-attention{padding:13px;border-radius:15px}
 .dashboard-attention-head{align-items:flex-start;margin-bottom:10px}
 .dashboard-attention-head h3{font-size:17px}
 .dashboard-attention-all{font-size:12px;padding:4px 0}
 .dashboard-attention-list{grid-template-columns:1fr 1fr;gap:8px}
 .dashboard-attention-list button{grid-template-columns:32px 1fr;padding:9px;gap:8px}
 .dashboard-attention-icon{width:32px;height:32px;font-size:14px}
 .dashboard-attention-list i{display:none}
 .dashboard-attention-list b{font-size:16px}
 .dashboard-attention-list small{font-size:11px;white-space:normal;line-height:1.25}
 .dashboard-overview{grid-template-columns:1fr 1fr!important}
 .dashboard-overview .stat{min-height:118px}
}
@media(max-width:420px){
 .dashboard-attention-list{grid-template-columns:1fr}
 .dashboard-overview{grid-template-columns:1fr 1fr!important}
}

/* 3.5.94 — measurement owner in materials and owner analytics */
.material-main{grid-template-columns:minmax(210px,1.15fr) minmax(210px,1fr) minmax(180px,.85fr) minmax(210px,.9fr)}
.material-measurement{display:flex;flex-direction:column;gap:4px;min-width:0}
.material-measurement small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.material-measurement b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.material-measurement span{font-size:12px;color:var(--muted)}
.statistics-head{align-items:flex-start}
.statistics-period{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.statistics-note{margin-bottom:18px;padding:12px 14px;border:1px solid #ead8a8;background:#fff9e9;border-radius:13px;color:#6f5416;font-size:13px}
.statistics-section-title{display:flex;justify-content:space-between;align-items:flex-end;margin:22px 0 11px}
.statistics-section-title h3{margin:3px 0 0}
.statistics-section-title p{margin:5px 0 0;color:var(--muted);font-size:13px}
.statistics-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.statistics-metric{min-height:132px;display:flex;flex-direction:column;align-items:flex-start}
.statistics-metric strong{font-size:25px;line-height:1.15;margin:9px 0 8px}
.statistics-metric span{font-size:12px;color:var(--muted)}
.statistics-grid{margin-top:16px;align-items:start}
.statistics-panel{height:100%}
.statistics-panel h3{margin:4px 0 14px}
.statistics-months{display:grid;gap:2px}
.statistics-month-row{display:grid;grid-template-columns:100px 1fr;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.statistics-month-row:last-child{border-bottom:0}
.statistics-month-row>div{display:flex;flex-direction:column;gap:3px}
.statistics-month-row small{color:var(--muted);font-size:11px}
.statistics-month-values{text-align:right;align-items:flex-end}
.statistics-bar{display:block;width:100%;height:7px;border-radius:999px;background:#edf1f6;overflow:hidden;margin-top:5px}
.statistics-bar i{display:block;height:100%;border-radius:inherit;background:#d6a84b}
.statistics-kpis{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.statistics-kpis>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.statistics-kpis span{font-size:12px;color:var(--muted)}
.statistics-kpis b{font-size:19px}
.statistics-kpi-wide{grid-column:1/-1}
.statistics-staff-table{padding:0;overflow:hidden}
.statistics-staff-table .tablewrap{margin:0}
.statistics-staff-table td{vertical-align:middle}
.statistics-staff-table td>b,.statistics-staff-table td>small{display:block}
.statistics-staff-table td>small{margin-top:3px;color:var(--muted);font-size:11px}
.statistics-person{display:flex;align-items:center;gap:10px;min-width:170px}
.statistics-person>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#f0f3f8;font-weight:800;color:#64748b}
.statistics-person>div{display:flex;flex-direction:column}
.statistics-person small{color:var(--muted);font-size:11px}
.statistics-task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}
.statistics-task-grid>div{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.statistics-task-grid span{font-size:13px}.statistics-task-grid small{font-size:11px;color:var(--muted)}
@media(max-width:1200px){
 .material-main{grid-template-columns:1fr 1fr}.material-state{grid-column:auto}
 .statistics-metrics{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
 .material-main{grid-template-columns:1fr}.material-measurement{padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
 .statistics-head{gap:12px}.statistics-period{width:100%;justify-content:flex-start}.statistics-period .btn{flex:1}
 .statistics-metrics{grid-template-columns:1fr 1fr;gap:9px}
 .statistics-metric{min-height:116px;padding:13px}.statistics-metric strong{font-size:19px}
 .statistics-grid{grid-template-columns:1fr}
 .statistics-staff-table .tablewrap{overflow-x:auto}
 .statistics-staff-table table{min-width:820px}
 .statistics-month-row{grid-template-columns:78px 1fr}
 .statistics-kpis{grid-template-columns:1fr 1fr}
}
@media(max-width:420px){.statistics-metrics{grid-template-columns:1fr}.statistics-kpis{grid-template-columns:1fr}.statistics-kpi-wide{grid-column:auto}}


/* 3.5.96 — independent employee ranking period */
.statistics-staff-heading{align-items:flex-end!important;gap:16px!important}
.statistics-staff-period{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;gap:6px!important}
@media(max-width:700px){.statistics-staff-heading{align-items:flex-start!important;flex-direction:column!important}.statistics-staff-period{width:100%!important;justify-content:flex-start!important}.statistics-staff-period .btn{flex:1 1 calc(33.333% - 6px)!important;min-width:88px!important}}

/* 3.5.98 — one AJAX period selector for all statistics */
.statistics-loading{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.statistics-loading span{font-size:13px;color:var(--muted)}
.statistics-active-period{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;margin:2px 0 18px;padding:12px 15px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.statistics-active-period span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.statistics-active-period b{font-size:15px}
.statistics-active-period small{grid-column:1/-1;color:var(--muted)}
@media(max-width:700px){
 .statistics-head .statistics-period{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .statistics-head .statistics-period .btn{width:100%!important}
 .statistics-active-period{grid-template-columns:1fr}
 .statistics-active-period small{grid-column:auto}
}


/* 3.6.2 — stable desktop sidebar user panel */
@media(min-width:1367px){
  .side{
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  .side .app-brand{flex:0 0 auto}
  .side nav{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-right:3px!important;
    padding-bottom:10px!important;
    scrollbar-width:thin;
  }
  .side-user{
    position:static!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    margin-top:10px!important;
  }
  .side-user .avatar,
  .side-user .avatar-button{
    flex:0 0 40px!important;
    width:40px!important;
    min-width:40px!important;
  }
  .side-user-info{
    min-width:0!important;
    overflow:hidden!important;
  }
  .side-user-info b,
  .side-user-info span{
    display:block!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .side-user .icon-btn{
    flex:0 0 36px!important;
    width:36px!important;
    min-width:36px!important;
    margin-left:auto!important;
  }
}
@media(min-width:1367px) and (max-height:720px){
  .side{padding-top:12px!important;padding-bottom:10px!important}
  .app-brand{padding-bottom:8px!important}
  .nav-section-title{margin-top:10px!important;margin-bottom:5px!important}
  .nav{padding-top:8px!important;padding-bottom:8px!important}
  .side-user{padding:9px!important;margin-top:6px!important}
  .side-user-info span{display:none!important}
}

/* 3.6.5 — stały prowadzący klienta w tabelach procesu */
.workflow-lead{display:block;color:#172033}.workflow-row td:nth-child(3){min-width:170px}@media(max-width:1366px){.workflow-row td:nth-child(3){min-width:0}.workflow-lead{font-size:13px}}

/* 3.6.9 — czytelna kolumna prowadzącego we wszystkich tabelach procesu */
.workflow-table .workflow-lead-heading{
  min-width:190px;
  background:#f4f7fb;
  color:#687991;
}
.workflow-table .workflow-lead-cell{
  min-width:190px;
  background:#fbfcfe;
}
.workflow-lead-card{
  display:grid;
  gap:3px;
  padding:2px 0;
}
.workflow-lead-card .workflow-lead{
  font-size:14px;
  line-height:1.3;
  color:#122033;
}
.workflow-lead-card span{
  font-size:12px;
  color:#6b778c;
}
.workflow-table tbody tr:hover .workflow-lead-cell{
  background:#f7f9fc;
}
@media(min-width:701px){
  .workflow-tablewrap{overflow:auto}
  .workflow-table{min-width:820px!important}
  .workflow-table th:nth-child(3),
  .workflow-table td:nth-child(3){
    border-left:1px solid #e5eaf1;
    border-right:1px solid #e5eaf1;
  }
}
@media(max-width:700px){
  .workflow-table .workflow-lead-cell{
    display:block!important;
    min-width:0!important;
    margin:6px -4px 2px!important;
    padding:10px 12px!important;
    border-top:1px solid #e5eaf1!important;
    border-bottom:1px solid #e5eaf1!important;
    background:#f7f9fc!important;
  }
  .workflow-table .workflow-lead-cell:before{
    content:attr(data-label);
    display:block;
    margin-bottom:6px;
    font-size:10px;
    line-height:1;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#7b889b;
  }
  .workflow-lead-card .workflow-lead{font-size:15px}
}


/* 3.6.11 — hide appointment date/time content in workflow tables */
.workflow-term-empty{min-width:0!important;width:0!important;padding-left:0!important;padding-right:0!important;border-left:0!important;border-right:0!important}
@media(max-width:1366px){.workflow-term-empty{display:none!important}}


/* 3.6.13 — workflow tables fit desktop cards without horizontal scrollbar */
@media(min-width:1367px){
  .workflow-grid{
    align-items:start;
  }
  .workflow-card .tablewrap,
  .workflow-card .workflow-tablewrap{
    overflow-x:hidden;
  }
  .workflow-card .table,
  .workflow-card .workflow-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed;
  }
  .workflow-card .table th,
  .workflow-card .table td,
  .workflow-card .workflow-table th,
  .workflow-card .workflow-table td{
    padding:12px 12px;
  }
  .workflow-card .table th:nth-child(1),
  .workflow-card .table td:nth-child(1),
  .workflow-card .workflow-table th:nth-child(1),
  .workflow-card .workflow-table td:nth-child(1){
    width:27%;
  }
  .workflow-card .table th:nth-child(2),
  .workflow-card .table td:nth-child(2),
  .workflow-card .workflow-table th:nth-child(2),
  .workflow-card .workflow-table td:nth-child(2){
    width:31%;
  }
  .workflow-card .table th:nth-child(3),
  .workflow-card .table td:nth-child(3),
  .workflow-card .workflow-table th:nth-child(3),
  .workflow-card .workflow-table td:nth-child(3){
    width:22%;
  }
  .workflow-card .table th:last-child,
  .workflow-card .table td:last-child,
  .workflow-card .workflow-table th:last-child,
  .workflow-card .workflow-table td:last-child{
    width:20%;
    min-width:170px;
  }
  .workflow-card .table td:nth-child(1),
  .workflow-card .table td:nth-child(2),
  .workflow-card .workflow-table td:nth-child(1),
  .workflow-card .workflow-table td:nth-child(2),
  .workflow-card .workflow-table .workflow-lead-cell{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .workflow-card .workflow-actions{
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:8px;
  }
  .workflow-card .workflow-actions .btn{
    min-width:116px;
    padding:10px 12px;
  }
}
@media(min-width:1367px) and (max-width:1320px){
  .workflow-card .table th:nth-child(1),
  .workflow-card .table td:nth-child(1),
  .workflow-card .workflow-table th:nth-child(1),
  .workflow-card .workflow-table td:nth-child(1){
    width:25%;
  }
  .workflow-card .table th:nth-child(2),
  .workflow-card .table td:nth-child(2),
  .workflow-card .workflow-table th:nth-child(2),
  .workflow-card .workflow-table td:nth-child(2){
    width:28%;
  }
  .workflow-card .table th:nth-child(3),
  .workflow-card .table td:nth-child(3),
  .workflow-card .workflow-table th:nth-child(3),
  .workflow-card .workflow-table td:nth-child(3){
    width:22%;
  }
  .workflow-card .table th:last-child,
  .workflow-card .table td:last-child,
  .workflow-card .workflow-table th:last-child,
  .workflow-card .workflow-table td:last-child{
    width:25%;
    min-width:188px;
  }
  .workflow-card .workflow-actions .btn{
    min-width:104px;
    padding:9px 10px;
  }
}


/* 3.6.14 — compact desktop workflow columns and faster-feeling actions */
@media(min-width:1367px){
  .workflow-card .table th:nth-child(1),
  .workflow-card .table td:nth-child(1),
  .workflow-card .workflow-table th:nth-child(1),
  .workflow-card .workflow-table td:nth-child(1){width:22%!important}
  .workflow-card .table th:nth-child(2),
  .workflow-card .table td:nth-child(2),
  .workflow-card .workflow-table th:nth-child(2),
  .workflow-card .workflow-table td:nth-child(2){width:25%!important}
  .workflow-card .table th:nth-child(3),
  .workflow-card .table td:nth-child(3),
  .workflow-card .workflow-table th:nth-child(3),
  .workflow-card .workflow-table td:nth-child(3){width:27%!important}
  .workflow-card .table th:last-child,
  .workflow-card .table td:last-child,
  .workflow-card .workflow-table th:last-child,
  .workflow-card .workflow-table td:last-child{width:26%!important;min-width:160px!important}
  .workflow-client-cell .small{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .workflow-product-clamp{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    line-height:1.45;
    max-height:2.9em;
    color:#26364b;
  }
  .workflow-card .workflow-actions{
    flex-wrap:nowrap!important;
    gap:6px!important;
  }
  .workflow-card .workflow-actions .btn{
    min-width:0!important;
    min-height:36px!important;
    padding:7px 10px!important;
    border-radius:10px!important;
    font-size:12px!important;
    white-space:nowrap!important;
  }
}
@media(min-width:1367px) and (max-width:1250px){
  .workflow-card .workflow-actions{flex-wrap:wrap!important}
  .workflow-card .workflow-actions .btn{flex:1 1 auto}
}


/* 3.6.15 — completed actions always visible */
@media(min-width:1367px){
  .completed-workflow-card .table th:last-child,
  .completed-workflow-card .table td:last-child{
    width:240px!important;
    min-width:240px!important;
  }
  .completed-workflow-card .workflow-actions{
    justify-content:flex-start!important;
    align-items:center!important;
    flex-wrap:wrap!important;
  }
  .completed-workflow-card .workflow-actions .btn{
    min-width:84px!important;
    min-height:34px!important;
    padding:6px 9px!important;
    font-size:12px!important;
    line-height:1.1!important;
    border-radius:10px!important;
  }
  .completed-workflow-card .workflow-actions .quick-paid-btn{
    min-width:110px!important;
    font-weight:800!important;
  }
}
@media(min-width:1367px) and (max-width:1280px){
  .completed-workflow-card .table th:last-child,
  .completed-workflow-card .table td:last-child{
    width:220px!important;
    min-width:220px!important;
  }
  .completed-workflow-card .workflow-actions .btn{
    min-width:78px!important;
    padding:6px 8px!important;
  }
  .completed-workflow-card .workflow-actions .quick-paid-btn{
    min-width:104px!important;
  }
}


/* 3.6.16 — tidy completed action buttons in one row */
@media(min-width:1367px){
  .completed-workflow-card .table th:last-child,
  .completed-workflow-card .table td:last-child{
    width:255px!important;
    min-width:255px!important;
  }
  .completed-workflow-card .workflow-actions{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }
  .completed-workflow-card .workflow-actions .btn,
  .completed-workflow-card .workflow-actions .quick-paid-btn{
    width:100%!important;
    min-width:0!important;
    min-height:36px!important;
    padding:7px 8px!important;
    margin:0!important;
    border-radius:10px!important;
    font-size:11.5px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
}
@media(min-width:1367px) and (max-width:1280px){
  .completed-workflow-card .table th:last-child,
  .completed-workflow-card .table td:last-child{
    width:245px!important;
    min-width:245px!important;
  }
  .completed-workflow-card .workflow-actions .btn,
  .completed-workflow-card .workflow-actions .quick-paid-btn{
    font-size:11px!important;
    padding:7px 6px!important;
  }
}


/* 3.6.17 — completed table uses the same lead presentation */
@media(min-width:1367px){
  .completed-workflow-table th:nth-child(1),
  .completed-workflow-table td:nth-child(1){width:21%!important}
  .completed-workflow-table th:nth-child(2),
  .completed-workflow-table td:nth-child(2){width:31%!important}
  .completed-workflow-table th:nth-child(3),
  .completed-workflow-table td:nth-child(3){width:20%!important;min-width:150px!important}
  .completed-workflow-table th:last-child,
  .completed-workflow-table td:last-child{width:28%!important;min-width:250px!important}
}


/* 3.6.18 — fix text overflow in completed lead column */
.workflow-lead-card,
.workflow-lead-card .workflow-lead,
.workflow-lead-card span{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.workflow-lead-card span{
  display:block;
  margin-top:2px;
  line-height:1.3;
}
@media(min-width:1367px){
  .completed-workflow-table th:nth-child(2),
  .completed-workflow-table td:nth-child(2){width:27%!important}
  .completed-workflow-table th:nth-child(3),
  .completed-workflow-table td:nth-child(3){width:24%!important;min-width:180px!important}
  .completed-workflow-table td:nth-child(3){vertical-align:top}
  .completed-workflow-table .workflow-lead-cell{padding-right:14px!important}
  .completed-workflow-table .workflow-lead-card{gap:4px!important}
}


/* 3.6.19 — payment summary must stay inside its column */
.completed-workflow-table td:nth-child(2),
.completed-payment-summary,
.completed-payment-summary strong,
.completed-payment-summary span,
.completed-payment-summary small{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.completed-payment-summary{
  width:100%!important;
  overflow:hidden!important;
}
.completed-payment-summary strong,
.completed-payment-summary span,
.completed-payment-summary small{
  display:block!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  hyphens:auto!important;
}
.completed-payment-summary small{
  line-height:1.4!important;
}
@media(min-width:1367px){
  .completed-workflow-table{
    table-layout:fixed!important;
    width:100%!important;
  }
  .completed-workflow-table td:nth-child(2){
    overflow:hidden!important;
    padding-right:14px!important;
  }
}


/* 3.6.24 — admin module settings */
.form-switch-row{display:flex;align-items:center;gap:9px;font-weight:800;white-space:nowrap}.form-switch-row input{width:22px;height:22px;accent-color:#122033}


/* 3.6.25 — visible administrator module settings */
.crm-modules-card{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr);gap:22px;align-items:center;margin-bottom:15px}
.crm-modules-copy h3{margin:3px 0 4px}.crm-modules-copy p{margin:0;color:var(--muted)}
.crm-module-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.crm-module-row>div{display:grid;gap:3px}.crm-module-row span{font-size:12px;color:var(--muted)}
@media(max-width:1366px){.crm-modules-card{grid-template-columns:1fr;gap:13px}.crm-module-row{align-items:flex-start;flex-direction:column}.crm-module-row .btn{width:100%}}


/* 3.6.27 — role-aware completed actions */
@media(min-width:1367px){
  .completed-workflow-card .workflow-actions:has(.paid-installation-btn){grid-template-columns:minmax(76px,.7fr) minmax(150px,1.3fr)!important}
  .completed-workflow-card .paid-installation-btn{white-space:normal!important;line-height:1.2!important}
}

/* CRM DEMO 5.4.42 — CSS module: 30-contracts.css
   Edytor umowy, produkty, podpisy i podstawowe widoki dokumentów.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 3.6.29 - edytowalny szablon umowy FIRMA DEMO */
.contract-editor-note{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;padding:14px 16px;border:1px solid #dfc27d;border-radius:14px;background:#fff9ea;color:#5d4614}.contract-editor-note span{font-size:13px;color:#735b25}#contractForm textarea[name="general_terms"]{min-height:320px;font-family:Arial,sans-serif;line-height:1.45}

/* 3.6.32 — produkty i wymiary umowy */
.contract-products-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:18px 0 10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.contract-products-head span{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.contract-products-rows{gap:10px}
.contract-product-row{display:grid;grid-template-columns:minmax(210px,1.6fr) repeat(3,minmax(95px,.65fr)) minmax(190px,1.2fr) auto;gap:9px;padding:12px;border:1px solid var(--line);border-radius:14px;}
.contract-product-row .field{margin:0}.contract-product-remove{margin-bottom:1px}.receipt-confirm-box{padding:16px;margin-bottom:14px;border:1px solid #e2b94b;background:#fff8e6;border-radius:14px}
@media(max-width:1000px){.contract-product-row{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:1/-1}.contract-product-remove{grid-column:1/-1}}
.contract-product-name-wrap{display:flex;align-items:center}.contract-product-name-wrap input{flex:1;min-width:0}.contract-product-suggest{width:44px;min-width:44px;padding:0;font-size:20px}.contract-suggestion-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.contract-suggestion-list .btn{text-align:left;justify-content:flex-start;min-height:48px}


/* 3.6.35 — uproszczony, intuicyjny panel produktów */
.contract-scope-field{margin-top:8px}
.contract-scope-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.contract-scope-heading>label{font-size:20px;font-weight:800;color:var(--text)}
.contract-scope-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.contract-scope-actions .btn{min-height:44px;border-radius:12px;font-weight:750}
.contract-products-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.contract-products-rows{display:grid;gap:12px}
.contract-product-row{grid-template-columns:minmax(250px,1.7fr) minmax(110px,.65fr) minmax(135px,.75fr) minmax(78px,.45fr) minmax(230px,1.3fr) 48px;gap:12px;align-items:end;padding:14px 14px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff}
.contract-product-row:last-child{border-bottom:0}
.contract-product-row .field label{font-size:12px;font-weight:800;color:var(--text);margin-bottom:7px}
.contract-product-row input{min-height:46px;border-radius:12px;background:#fff}
.contract-product-name-wrap{gap:8px}
.contract-product-suggest{width:46px;min-width:46px;height:46px;border-radius:12px;font-size:0;position:relative}
.contract-product-suggest:after{content:'☰';font-size:21px;line-height:1}
.contract-product-remove{width:46px;min-width:46px;height:46px;padding:0;border-radius:12px;font-size:0;margin-bottom:0}
.contract-product-remove:after{content:'🗑';font-size:18px}
.contract-add-product{display:flex;margin:18px auto 2px;min-width:190px;justify-content:center;border-radius:12px;min-height:46px;font-weight:800}
.contract-media-summary{margin-top:12px;padding:10px 4px 0;color:var(--muted);font-weight:650}
@media(max-width:1100px){.contract-product-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:1/-1}.contract-product-remove{grid-column:1/-1;width:100%;font-size:14px}.contract-product-remove:after{content:''}.contract-product-remove{height:auto;min-height:42px}.contract-scope-heading{align-items:flex-start}}
@media(max-width:640px){.contract-scope-heading{flex-direction:column}.contract-scope-actions{width:100%}.contract-scope-actions .btn{flex:1}.contract-products-card{padding:10px}.contract-product-row{grid-template-columns:1fr}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:auto}.contract-product-remove{grid-column:auto}}

/* 3.6.37 — szeroki, responsywny edytor umowy oraz stabilne szybkie wybory */
#modal.modal-contract-editor{padding:18px!important}
#modal.modal-contract-editor .modal-card{width:min(1480px,calc(100vw - 36px))!important;max-width:1480px!important;max-height:calc(100dvh - 36px)!important;padding:0!important;}
#modal.modal-contract-editor .modal-head{padding:18px 22px;border-bottom:1px solid var(--line);background:#fff}
#modal.modal-contract-editor #modalBody{padding:18px 22px 0!important;overflow:auto!important;background:#f7f9fc}
.contract-editor-form{display:grid;gap:16px}
.contract-form-section{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(15,23,42,.045)}
.contract-section-title{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.contract-section-title>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--gold);color:#172033;font-weight:900;flex:none}
.contract-section-title h3{margin:0;font-size:18px}.contract-section-title small{display:block;color:var(--muted);margin-top:2px}
.contract-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}.contract-form-grid .field{margin:5px 0}.contract-form-grid .full{grid-column:1/-1}.contract-customer-source{padding:12px;border-radius:13px;background:#f7f9fc;border:1px dashed #cad4e2}
.contract-products-section{overflow:visible}.contract-scope-heading{margin:0 0 14px}
.contract-product-name-wrap{position:relative}.contract-suggestion-popover{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:70;padding:12px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 48px rgba(15,23,42,.18)}
.contract-suggestion-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.contract-suggestion-popover-head .icon-btn{width:34px;height:34px}
.contract-suggestion-list{max-height:260px;overflow:auto;grid-template-columns:repeat(3,minmax(0,1fr))}.contract-suggestion-list .btn{min-height:44px;padding:9px 11px}
.contract-money-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.contract-money-grid .field{margin:4px 0}.contract-payment-field{max-width:360px}
.contract-terms-details{border:1px solid var(--line);border-radius:14px;background:#fbfcfe;margin:14px 0}.contract-terms-details summary{cursor:pointer;padding:14px 16px;font-weight:800}.contract-terms-details[open] summary{border-bottom:1px solid var(--line)}.contract-terms-details .field{margin:0;padding:12px}
.contract-signature-field canvas{width:100%;height:190px;border:1px solid #cfd8e5;border-radius:14px;background:#fff;touch-action:none}.contract-clear-signature{justify-self:start;margin-top:2px}
#modal.modal-contract-editor .modal-actions{position:sticky;bottom:0;z-index:30;margin:0 -22px;padding:13px 22px calc(13px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line);box-shadow:0 -10px 25px rgba(15,23,42,.08)}
@media(max-width:1150px){
 #modal.modal-contract-editor{padding:10px!important}.contract-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-product-row{grid-template-columns:minmax(230px,1.5fr) repeat(3,minmax(90px,.65fr)) minmax(190px,1.2fr) 46px;gap:9px;padding:12px}.contract-suggestion-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
 #modal.modal-contract-editor{padding:0!important;align-items:flex-end!important}
 #modal.modal-contract-editor .modal-card{width:100%!important;max-width:none!important;max-height:calc(100dvh - env(safe-area-inset-top,0px))!important;border-radius:22px 22px 0 0!important}
 #modal.modal-contract-editor .modal-head{padding:13px 14px 11px!important}
 #modal.modal-contract-editor #modalBody{padding:12px 12px 0!important;background:#f5f7fb!important}
 .contract-editor-form{gap:10px}.contract-form-section{padding:13px;border-radius:15px}.contract-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.contract-form-grid .field{margin:4px 0}.contract-section-title small{font-size:11px}
 .contract-scope-heading{align-items:stretch!important}.contract-scope-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.contract-scope-actions .btn{width:100%}
 .contract-product-row{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important;padding:12px!important;border:1px solid var(--line)!important;border-radius:14px!important;margin-bottom:10px}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:1/-1!important}.contract-product-row .field:nth-child(2),.contract-product-row .field:nth-child(3){grid-column:span 2}.contract-product-row .field:nth-child(4){grid-column:span 2}.contract-product-remove{grid-column:span 2!important;width:100%!important;font-size:14px!important;min-height:46px!important}.contract-product-remove:after{content:''!important}.contract-add-product{width:100%;margin-top:10px}
 .contract-suggestion-popover{position:fixed;left:10px;right:10px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px));max-height:62dvh;overflow:auto}.contract-suggestion-list{grid-template-columns:1fr}
 .contract-money-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.contract-money-grid .field label{font-size:11px}.contract-payment-field{max-width:none}
 #modal.modal-contract-editor .modal-actions{margin:0 -12px!important;padding-left:12px!important;padding-right:12px!important}
}
@media(max-width:560px){
 .contract-form-grid{grid-template-columns:1fr}.contract-form-grid .full{grid-column:auto}.contract-form-section{padding:11px}.contract-section-title h3{font-size:16px}
 .contract-product-row{grid-template-columns:1fr 1fr!important}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:1/-1!important}.contract-product-row .field:nth-child(2),.contract-product-row .field:nth-child(3),.contract-product-row .field:nth-child(4),.contract-product-remove{grid-column:auto!important}.contract-product-remove{font-size:0!important}.contract-product-remove:after{content:'🗑'!important;font-size:18px!important}
 .contract-money-grid{grid-template-columns:1fr}.contract-scope-actions{grid-template-columns:1fr}.contract-signature-field canvas{height:160px}
}

/* 3.6.37 — poprawiona szerokość i przewijanie edytora umowy */
#modal.modal-contract-editor{
  padding:16px!important;
}
#modal.modal-contract-editor .modal-card{
  width:min(1120px,calc(100vw - 32px))!important;
  max-width:1120px!important;
  height:auto!important;
}
#modal.modal-contract-editor .modal-head{
  position:relative!important;
  top:auto!important;
}
#modal.modal-contract-editor #modalBody{
  max-height:none!important;
  touch-action:pan-y!important;
  scrollbar-gutter:stable;
}
#modal.modal-contract-editor .contract-editor-form{
  min-width:0!important;
  padding-bottom:1px!important;
}

@media (max-width:1200px) and (min-width:851px){
  #modal.modal-contract-editor{padding:12px!important}
  #modal.modal-contract-editor .modal-card{
    width:min(960px,calc(100vw - 24px))!important;
    max-width:960px!important;
    max-height:calc(100dvh - 24px)!important;
  }
}

@media (max-width:850px){
  #modal.modal-contract-editor{
    padding:8px!important;
    align-items:center!important;
  }
  #modal.modal-contract-editor .modal-card{
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    height:calc(100dvh - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px) - 16px)!important;
    max-height:calc(100dvh - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px) - 16px)!important;
    border-radius:18px!important;
  }
  #modal.modal-contract-editor #modalBody{
    padding-bottom:0!important;
  }
}

@media (max-width:560px){
  #modal.modal-contract-editor{padding:4px!important}
  #modal.modal-contract-editor .modal-card{
    width:calc(100vw - 8px)!important;
    height:calc(100dvh - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px) - 8px)!important;
    max-height:calc(100dvh - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px) - 8px)!important;
    border-radius:14px!important;
  }
}


/* 3.6.42 — końcowa stabilizacja edytora umowy po audycie */
#modal.modal-contract-editor{overflow:hidden!important}
#modal.modal-contract-editor .modal-card{width:min(1080px,calc(100vw - 32px))!important;max-width:1080px!important;display:flex!important;flex-direction:column!important;max-height:calc(100dvh - 32px)!important;overflow:hidden!important}
#modal.modal-contract-editor .modal-head{flex:0 0 auto!important}
#modal.modal-contract-editor #modalBody{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important}
#modal.modal-contract-editor .contract-suggestion-popover{max-width:min(720px,calc(100vw - 48px));z-index:200}
#modal.modal-contract-editor input,#modal.modal-contract-editor select,#modal.modal-contract-editor textarea,#modal.modal-contract-editor button{font-size:16px}
@media(max-width:1366px){#modal.modal-contract-editor{padding:8px!important}#modal.modal-contract-editor .modal-card{width:calc(100vw - 16px)!important;height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}.contract-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.contract-product-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:1/-1!important}.contract-add-product{position:sticky;bottom:74px;z-index:18;box-shadow:0 8px 20px rgba(15,23,42,.18)}}
@media(max-width:600px){#modal.modal-contract-editor{padding:0!important}#modal.modal-contract-editor .modal-card{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.contract-form-grid,.contract-money-grid{grid-template-columns:1fr!important}.contract-product-row{grid-template-columns:1fr 1fr!important}.contract-product-row .product-name,.contract-product-row .product-notes{grid-column:1/-1!important}.contract-scope-actions{grid-template-columns:1fr 1fr!important}.contract-suggestion-popover{position:fixed!important;left:8px!important;right:8px!important;bottom:82px!important;top:auto!important;max-height:60dvh!important}}


/* 3.6.42 — pełnoekranowe umowy i potwierdzenie odbioru na tabletach */
@media (min-width:601px) and (max-width:1100px), (min-width:601px) and (pointer:coarse) {
  #modal.modal-contract-editor,
  #modal.modal-contract-receipt{
    padding:0!important;
    align-items:stretch!important;
  }
  #modal.modal-contract-editor .modal-card,
  #modal.modal-contract-receipt .modal-card{
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  #modal.modal-contract-editor .modal-head,
  #modal.modal-contract-receipt .modal-head{
    flex:0 0 auto!important;
    padding-top:calc(14px + env(safe-area-inset-top))!important;
  }
  #modal.modal-contract-editor #modalBody,
  #modal.modal-contract-receipt #modalBody{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  }
  #modal.modal-contract-receipt #contractReceiptForm{
    min-height:100%;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  #modal.modal-contract-receipt #contractReceiptSignature{
    flex:1 1 360px;
    min-height:320px;
    max-height:58dvh;
  }
  #modal.modal-contract-receipt .modal-actions{
    margin-top:auto;
    position:sticky;
    bottom:0;
    background:#fff;
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
  }
}

/* 3.6.43 — profesjonalny tryb klienta i podpis pełnoekranowy */
.contract-client-sign-entry{padding:16px;border:1px solid #d9e1ec;border-radius:16px;background:#f8fafc}
.contract-signature-status{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa}
.contract-signature-status.signed{background:#ecfdf5;border-color:#a7f3d0}.contract-signature-status small{color:var(--muted)}
.contract-client-review-btn{min-height:50px;width:100%}
.client-contract-review-layer{position:fixed;inset:0;z-index:100000;background:rgba(15,23,42,.58);color:#172033;overflow:hidden;touch-action:pan-y;padding:16px;display:flex;align-items:center;justify-content:center}
.client-review-shell{width:min(1120px,100%);height:min(920px,calc(100dvh - 32px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#eef2f7;border-radius:20px;overflow:hidden;box-shadow:0 26px 80px rgba(2,6,23,.35)}
.client-review-shell>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:#fff;border-bottom:1px solid #dce3ec;box-shadow:0 3px 14px rgba(15,23,42,.07)}
.client-review-shell>header span{font-size:12px;font-weight:800;letter-spacing:.08em;color:#9a6a00;text-transform:uppercase}.client-review-shell>header h2{margin:2px 0 0;font-size:22px}
.client-review-close,.client-sign-close{width:46px;height:46px;border:0;border-radius:50%;background:#f1f5f9;font-size:28px;line-height:1;cursor:pointer}
.client-review-shell>main{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px;display:grid;gap:16px;align-content:start}
.client-review-card{width:min(900px,100%);margin:auto;background:#fff;border:1px solid #dbe3ed;border-radius:18px;padding:18px;box-shadow:0 12px 32px rgba(15,23,42,.08)}
.client-review-band{padding:10px 14px;margin:-18px -18px 16px;background:#a97000;color:#fff;text-align:center;font-weight:900;letter-spacing:.03em;border-radius:18px 18px 0 0}
.client-review-grid{display:grid;grid-template-columns:minmax(170px,.45fr) minmax(0,1fr);border:1px solid #dbe3ed;border-radius:12px;overflow:hidden}.client-review-grid>b,.client-review-grid>span{padding:10px 12px;border-bottom:1px solid #e5eaf1}.client-review-grid>b{background:#f8fafc}.client-review-grid>*:nth-last-child(-n+2){border-bottom:0}
.client-review-card h3{margin:18px 0 9px}.client-review-products{display:grid;gap:8px}.client-review-product{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 12px;border:1px solid #e0e6ee;border-radius:10px;background:#fbfcfe}.client-review-product small{grid-column:1/-1;color:#475569}.client-review-product span{font-weight:800}
.client-review-money{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.client-review-money span{padding:11px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;text-align:center;display:flex;flex-direction:column;gap:3px}
.client-review-general>div{font-size:14px;line-height:1.55}.client-review-terms-short{margin-top:14px}.client-review-terms-short p{margin:5px 0}.client-review-shell>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce3ec;box-shadow:0 -4px 16px rgba(15,23,42,.08)}.client-review-shell>footer>div{display:flex;flex-direction:column}.client-review-shell>footer small{color:#64748b}
.receipt-review main{display:flex;align-items:center}.receipt-client-statement{margin-top:20px;padding:22px;border:2px solid #d3a13e;border-radius:14px;background:#fffaf0;font-size:20px;font-weight:900;line-height:1.45;text-align:center}.client-review-note{text-align:center;color:#64748b}
.client-sign-screen{width:min(1120px,100%);height:min(760px,calc(100dvh - 32px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f1f5f9;border-radius:20px;overflow:hidden;box-shadow:0 26px 80px rgba(2,6,23,.35)}.client-sign-screen>header{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:#172033;color:#fff}.client-sign-screen>header span{font-size:12px;opacity:.75;text-transform:uppercase;letter-spacing:.08em}.client-sign-screen>header h2{margin:1px 0;font-size:20px}.client-sign-screen .client-sign-close{background:rgba(255,255,255,.14);color:#fff}
.client-sign-statement{padding:8px 18px;background:#fff7e6;border-bottom:1px solid #f0d9a7;text-align:center;font-weight:800}
.client-sign-screen>main{min-height:0;padding:10px 14px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:7px}.client-sign-hint{text-align:center;font-weight:800;color:#475569}.client-sign-screen canvas{display:block;width:100%;height:100%;min-height:200px;background:#fff;border:3px solid #d3a13e;border-radius:18px;box-shadow:inset 0 0 0 1px #fff,0 8px 28px rgba(15,23,42,.12);touch-action:none}.client-orientation-hint{display:none;text-align:center;color:#9a6700;font-weight:700}
.client-sign-screen>footer{display:flex;justify-content:center;gap:12px;padding:9px 14px calc(9px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce3ec}.client-sign-screen>footer .btn{min-width:180px;min-height:48px}
@media (orientation:portrait) and (max-width:1366px){.client-orientation-hint{display:block}.client-sign-screen canvas{min-height:42dvh}.client-sign-statement{font-size:13px}.client-sign-screen>header h2{font-size:17px}}
@media(max-width:650px){.client-review-shell>header{padding:10px 12px}.client-review-shell>header h2{font-size:18px}.client-review-shell>main{padding:10px}.client-review-card{padding:13px;border-radius:13px}.client-review-band{margin:-13px -13px 12px;border-radius:13px 13px 0 0}.client-review-grid{grid-template-columns:1fr}.client-review-grid>b{padding-bottom:3px;border-bottom:0}.client-review-grid>span{padding-top:3px}.client-review-grid>*:nth-last-child(-n+2){border-bottom:initial}.client-review-grid>*:last-child{border-bottom:0}.client-review-money{grid-template-columns:1fr}.client-review-shell>footer{padding:9px 10px calc(9px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch}.client-review-shell>footer>div{display:none}.client-review-shell>footer .btn{width:100%;min-height:48px}.receipt-client-statement{font-size:17px;padding:16px}.client-sign-screen>footer .btn{min-width:0;flex:1}.client-sign-screen>main{padding:7px}.client-sign-hint{font-size:13px}}
@media (orientation:landscape) and (max-height:600px){.client-sign-screen{grid-template-rows:auto minmax(0,1fr) auto}.client-sign-statement{position:absolute;left:50%;top:8px;transform:translateX(-50%);max-width:55%;z-index:2;border-radius:9px;padding:5px 12px;font-size:12px}.client-sign-screen>header{padding:7px 12px}.client-sign-screen>header h2{font-size:17px}.client-sign-screen>main{padding:6px 10px}.client-sign-hint{font-size:12px}.client-sign-screen>footer{padding:6px 10px calc(6px + env(safe-area-inset-bottom))}.client-sign-screen>footer .btn{min-height:42px}.client-sign-screen canvas{min-height:0}}


/* 3.6.44 — poprawiony widok komputerowy i pełny ekran tylko na urządzeniach dotykowych */
@media (max-width:1100px), (pointer:coarse){
  .client-contract-review-layer{padding:0;align-items:stretch;justify-content:stretch;background:#eef2f7}
  .client-review-shell,.client-sign-screen{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0;box-shadow:none}
}
@media (min-width:1101px) and (pointer:fine){
  .client-review-shell>main{padding:22px 26px}
  .client-review-card{width:min(940px,100%)}
  .client-sign-screen>main{padding:16px 22px}
}

/* 3.6.47 — stabilny, responsywny układ tabeli produktów w oknie umowy */
.contract-products-card{
  container-type:inline-size;
  container-name:contract-products;
  overflow:visible;
}
.contract-product-row{
  min-width:0;
}
.contract-product-row .field,
.contract-product-row .contract-product-name-wrap,
.contract-product-row input{
  min-width:0;
  max-width:100%;
}

/* Gdy karta nie ma wystarczającej szerokości, pozycja układa się w dwa czytelne rzędy. */
@container contract-products (max-width:1050px){
  .contract-product-row{
    display:grid!important;
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    gap:12px!important;
    align-items:end!important;
    padding:14px!important;
    border:1px solid var(--line)!important;
    border-radius:15px!important;
    margin-bottom:12px!important;
    background:#fff!important;
  }
  .contract-product-row .product-name{grid-column:span 6!important}
  .contract-product-row .field:nth-child(2){grid-column:span 3!important}
  .contract-product-row .field:nth-child(3){grid-column:span 3!important}
  .contract-product-row .field:nth-child(4){grid-column:span 2!important}
  .contract-product-row .product-notes{grid-column:span 8!important}
  .contract-product-row .contract-product-remove{
    grid-column:span 2!important;
    width:100%!important;
    min-width:0!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    font-size:14px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
  }
  .contract-product-row .contract-product-remove:after{content:'🗑'!important;font-size:16px!important}
}

@container contract-products (max-width:680px){
  .contract-products-card{padding:9px!important}
  .contract-product-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    padding:12px!important;
  }
  .contract-product-row .product-name,
  .contract-product-row .product-notes{grid-column:1/-1!important}
  .contract-product-row .field:nth-child(2),
  .contract-product-row .field:nth-child(3),
  .contract-product-row .field:nth-child(4),
  .contract-product-row .contract-product-remove{grid-column:auto!important}
  .contract-product-row .contract-product-remove{font-size:0!important}
  .contract-product-row .contract-product-remove:after{content:'🗑'!important;font-size:18px!important}
  .contract-add-product{width:100%!important;min-height:48px!important}
}

/* Czytelniejsze akcje i odstępy w sekcji produktów. */
.contract-scope-heading{gap:12px!important}
.contract-scope-actions{flex-wrap:wrap!important}
.contract-products-card .contract-add-product{display:flex;margin:16px auto 2px;justify-content:center}
.contract-media-summary{padding:14px 4px 0!important}


/* 3.6.47 — czytelna ikona podpowiedzi i tablet w układzie aplikacji mobilnej */
.contract-product-suggest{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  font-size:0!important;
  line-height:0!important;
}
.contract-product-suggest:after{content:none!important;display:none!important}
.contract-product-suggest svg{
  width:23px;
  height:23px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contract-product-suggest svg circle{fill:currentColor;stroke:none}

/* Tablet dotykowy: ten sam prosty, pionowy układ co na telefonie, lecz większe elementy. */
@media (min-width:601px) and (max-width:1100px) and (pointer:coarse){
  #modal.modal-contract-editor .modal-card{
    width:100vw!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:100dvh!important;
    border-radius:0!important;
  }
  #modal.modal-contract-editor .modal-body{
    padding:18px 20px 110px!important;
    -webkit-overflow-scrolling:touch;
  }
  .contract-form-grid,
  .contract-money-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .contract-form-section{
    padding:18px!important;
    border-radius:18px!important;
  }
  .contract-scope-heading{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .contract-scope-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
    gap:12px!important;
  }
  .contract-scope-actions .btn,
  .contract-scope-actions label.btn{
    min-height:58px!important;
    font-size:16px!important;
    justify-content:center!important;
  }
  .contract-products-card{
    padding:12px!important;
    border-radius:18px!important;
  }
  .contract-product-row{
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:16px!important;
    border:1px solid var(--line)!important;
    border-radius:16px!important;
    margin-bottom:14px!important;
  }
  .contract-product-row .product-name,
  .contract-product-row .product-notes,
  .contract-product-row .field:nth-child(2),
  .contract-product-row .field:nth-child(3),
  .contract-product-row .field:nth-child(4),
  .contract-product-row .contract-product-remove{
    grid-column:1/-1!important;
  }
  .contract-product-row input{
    min-height:56px!important;
    font-size:17px!important;
    border-radius:14px!important;
  }
  .contract-product-name-wrap{gap:10px!important}
  .contract-product-suggest{
    width:56px!important;
    min-width:56px!important;
    height:56px!important;
    border-radius:14px!important;
  }
  .contract-product-suggest svg{width:26px;height:26px}
  .contract-product-remove{
    width:100%!important;
    min-height:54px!important;
    font-size:16px!important;
  }
  .contract-product-remove:after{content:'🗑'!important;font-size:18px!important}
  .contract-add-product{
    width:100%!important;
    min-height:58px!important;
    font-size:17px!important;
    border-radius:14px!important;
  }
  .contract-suggestion-popover{
    position:fixed!important;
    left:16px!important;
    right:16px!important;
    top:auto!important;
    bottom:18px!important;
    max-height:72dvh!important;
    overflow:auto!important;
    border-radius:20px!important;
    padding:16px!important;
    z-index:10020!important;
  }
  .contract-suggestion-list{
    grid-template-columns:1fr!important;
  }
  .contract-suggestion-list .btn{
    min-height:56px!important;
    font-size:16px!important;
  }
}

/* 3.6.47 — iPad Air/Pro jak aplikacja mobilna, bez zasłaniającego paska zapisu */
@media (max-width:1366px) and (pointer:coarse), (max-width:1366px) and (hover:none){
  #modal.modal-contract-editor{
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }
  #modal.modal-contract-editor .modal-card{
    width:100vw!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:0!important;
  }
  #modal.modal-contract-editor .modal-head{
    padding:calc(14px + env(safe-area-inset-top,0px)) 18px 14px!important;
    background:linear-gradient(180deg,#101c2f,#0c1728)!important;
    color:#fff!important;
    border-bottom:0!important;
    margin:0!important;
  }
  #modal.modal-contract-editor .modal-head .icon-btn{
    background:rgba(255,255,255,.12)!important;
    border-color:rgba(255,255,255,.16)!important;
    color:#fff!important;
  }
  #modal.modal-contract-editor #modalBody,
  #modal.modal-contract-editor .modal-body{
    padding:16px 18px calc(24px + env(safe-area-inset-bottom,0px))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  #modal.modal-contract-editor .contract-form-grid,
  #modal.modal-contract-editor .contract-money-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  #modal.modal-contract-editor .contract-form-section{
    padding:18px!important;
    border-radius:18px!important;
  }
  #modal.modal-contract-editor .field input,
  #modal.modal-contract-editor .field select,
  #modal.modal-contract-editor .field textarea{
    min-height:56px!important;
    font-size:17px!important;
    border-radius:14px!important;
  }
  #modal.modal-contract-editor .field textarea{min-height:110px!important}
  #modal.modal-contract-editor .btn{
    min-height:54px!important;
    font-size:16px!important;
  }
  #modal.modal-contract-editor .contract-scope-actions{
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }
  #modal.modal-contract-editor .contract-product-row{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  #modal.modal-contract-editor .contract-product-row>*{
    grid-column:1/-1!important;
  }
  #modal.modal-contract-editor .contract-product-suggest{
    width:58px!important;
    min-width:58px!important;
    height:58px!important;
  }
  #modal.modal-contract-editor .contract-add-product{
    position:static!important;
    bottom:auto!important;
    width:100%!important;
    min-height:58px!important;
    margin:16px 0 0!important;
    box-shadow:none!important;
  }
  #modal.modal-contract-editor .modal-actions{
    position:static!important;
    bottom:auto!important;
    z-index:auto!important;
    margin:18px 0 0!important;
    padding:18px 0 2px!important;
    background:transparent!important;
    border-top:1px solid var(--line)!important;
    box-shadow:none!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }
  #modal.modal-contract-editor .modal-actions .btn{
    width:100%!important;
    min-height:58px!important;
  }

  .client-contract-review-layer{
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    background:#eef2f7!important;
  }
  .client-review-shell,.client-sign-screen{
    width:100vw!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .client-review-shell>header,
  .client-sign-screen>header{
    padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px!important;
    background:linear-gradient(180deg,#101c2f,#0c1728)!important;
    color:#fff!important;
    border-bottom:0!important;
    box-shadow:none!important;
  }
  .client-review-shell>header span{color:#e3b64d!important}
  .client-review-shell>header h2,.client-sign-screen>header h2{color:#fff!important}
  .client-review-shell>header .icon-btn,
  .client-review-shell>header .client-review-close,
  .client-sign-screen>header .client-sign-close{
    background:rgba(255,255,255,.12)!important;
    border-color:rgba(255,255,255,.16)!important;
    color:#fff!important;
  }
  .client-review-shell>main{padding:14px!important}
  .client-review-shell>footer{padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px))!important}
  .client-sign-statement{
    padding:5px 12px!important;
    min-height:0!important;
    font-size:12px!important;
    line-height:1.25!important;
    font-weight:750!important;
  }
  .client-sign-screen>main{padding:8px 10px!important;gap:6px!important}
  .client-sign-screen>footer{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important}
}

@media (min-width:900px) and (max-width:1366px) and (pointer:coarse), (min-width:900px) and (max-width:1366px) and (hover:none){
  #modal.modal-contract-editor #modalBody,
  #modal.modal-contract-editor .modal-body{padding-left:28px!important;padding-right:28px!important}
  #modal.modal-contract-editor .contract-editor-form{max-width:980px!important;width:100%!important;margin:0 auto!important}
  #modal.modal-contract-editor .contract-form-section{padding:22px!important}
  #modal.modal-contract-editor .field input,
  #modal.modal-contract-editor .field select{min-height:60px!important;font-size:18px!important}
  #modal.modal-contract-editor .btn{min-height:58px!important;font-size:17px!important}
  .client-review-shell>main{padding:20px 28px!important}
  .client-review-card{max-width:980px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
  .client-sign-statement{font-size:13px!important;padding:6px 16px!important}
}


/* 3.6.49 — stabilny podpis po obrocie i brak przyklejonych przycisków umowy */
#modal.modal-contract-editor .modal-actions,
#modal.modal-contract-editor form>.modal-actions,
#modal.modal-contract-editor .contract-editor-form>.modal-actions{
  position:static!important;
  inset:auto!important;
  bottom:auto!important;
  top:auto!important;
  transform:none!important;
  z-index:auto!important;
  margin:20px 0 0!important;
  padding:18px 0 calc(8px + env(safe-area-inset-bottom,0px))!important;
  background:transparent!important;
  border-top:1px solid var(--line)!important;
  box-shadow:none!important;
}
#modal.modal-contract-editor .modal-card,
#modal.modal-contract-editor #modalBody,
#modal.modal-contract-editor .modal-body{
  overflow-anchor:none;
}
.client-sign-screen{min-width:0;min-height:0}
.client-sign-screen>main{overflow:hidden}
.client-sign-screen canvas{width:100%!important;height:100%!important;min-width:0;min-height:150px;overscroll-behavior:none;touch-action:none!important;user-select:none;-webkit-user-select:none}
.client-sign-screen>footer{position:static!important;inset:auto!important;transform:none!important;box-shadow:none!important}
@media (orientation:landscape) and (max-height:700px){
  .client-sign-screen{grid-template-rows:auto auto minmax(0,1fr) auto!important}
  .client-sign-statement{position:static!important;left:auto!important;top:auto!important;transform:none!important;max-width:none!important;margin:0!important;border-radius:0!important;padding:4px 12px!important;font-size:11px!important;line-height:1.2!important}
  .client-sign-screen>header{padding:calc(6px + env(safe-area-inset-top,0px)) 12px 6px!important}
  .client-sign-screen>header h2{font-size:16px!important}
  .client-sign-screen>main{padding:5px 8px!important;gap:4px!important}
  .client-sign-hint,.client-orientation-hint{font-size:11px!important;line-height:1.2!important}
  .client-sign-screen>footer{padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px))!important}
  .client-sign-screen>footer .btn{min-height:40px!important}
  .client-sign-screen canvas{min-height:0!important}
}
\n\n/* 3.6.49 — stabilne pole podpisu w pionie bez samoczynnego powiększania */
.client-contract-review-layer.is-signing,
.client-sign-screen{
  overscroll-behavior:none!important;
}
.client-sign-screen>main{
  min-height:0!important;
  overflow:hidden!important;
}
.client-sign-screen canvas{
  display:block!important;
  box-sizing:border-box!important;
  flex:none!important;
  max-width:100%!important;
  max-height:100%!important;
}
@media (orientation:portrait) and (max-width:1366px){
  .client-sign-screen{
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
  }
  .client-sign-screen>main{
    display:grid!important;
    grid-template-rows:auto minmax(260px,1fr) auto!important;
  }
  .client-sign-screen canvas{
    width:100%!important;
    height:auto!important;
    min-height:260px!important;
    max-height:calc(100dvh - 230px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
    align-self:stretch!important;
  }
}
@media (orientation:portrait) and (max-width:600px){
  .client-sign-screen>main{
    grid-template-rows:auto minmax(220px,1fr) auto!important;
  }
  .client-sign-screen canvas{
    min-height:220px!important;
    max-height:calc(100dvh - 218px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
  }
}

/* 3.6.51 — widoczne przyciski podpisu po obrocie telefonu i tabletu */
.client-contract-review-layer.is-signing{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0!important;
}
.client-contract-review-layer.is-signing .client-sign-screen{
  border-radius:0!important;
  display:grid!important;
}


.client-contract-review-layer.is-signing .client-sign-screen>footer{
  z-index:20!important;
}
@supports not (height:100svh){
  .client-contract-review-layer.is-signing .client-sign-screen{
    height:100vh!important;
    max-height:100vh!important;
  }
}
@media (orientation:landscape) and (max-height:700px){
  .client-contract-review-layer.is-signing .client-sign-screen{
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>header{
    padding:calc(4px + env(safe-area-inset-top,0px)) 10px 4px!important;
    min-height:42px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>header span{
    display:none!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>header h2{
    margin:0!important;
    font-size:15px!important;
    line-height:1.15!important;
  }
  .client-contract-review-layer.is-signing .client-sign-statement{
    padding:3px 10px!important;
    font-size:10px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>main{
    grid-template-rows:minmax(0,1fr)!important;
    padding:4px 8px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-hint,
  .client-contract-review-layer.is-signing .client-orientation-hint{
    display:none!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen canvas{
    min-height:0!important;
    height:100%!important;
    max-height:none!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>footer{
    min-height:50px!important;
    padding:4px max(8px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))!important;
    gap:8px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>footer .btn{
    min-height:42px!important;
    height:42px!important;
    padding:7px 14px!important;
    font-size:14px!important;
    line-height:1!important;
  }
}

/* 3.6.52 — dopracowany mobile, szkice i stabilny podpis */
#modal.modal-contract-editor .contract-end-actions,
#modal.modal-contract-editor .modal-actions,
#modal.modal-contract-editor .contract-add-product{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  box-shadow:none!important;
}
#modal.modal-contract-editor .contract-end-actions{
  margin-top:18px!important;
  border-radius:16px!important;
}
@media (max-width:1366px) and (pointer:coarse){
  #modal.modal-contract-editor .contract-editor-form{padding-bottom:18px!important}
  #modal.modal-contract-editor .contract-end-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;padding:14px!important;background:#fff!important;border:1px solid #e2e8f0!important}
  #modal.modal-contract-editor .contract-end-actions .btn{width:100%!important;min-height:54px!important}
}
@media (max-width:600px){
  #modal.modal-contract-editor .contract-end-actions{grid-template-columns:1fr!important}
}
.client-contract-review-layer.is-signing{
  height:100svh!important;
  max-height:100svh!important;
}
.client-contract-review-layer.is-signing .client-sign-screen{
  height:100svh!important;
  max-height:100svh!important;
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>main{
  overflow:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>footer{
  z-index:30!important;
}
@media (orientation:landscape) and (max-height:740px){
  .client-contract-review-layer.is-signing .client-sign-screen{
    grid-template-rows:auto auto minmax(130px,1fr) auto!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>header{min-height:38px!important;padding:4px 10px!important}
  .client-contract-review-layer.is-signing .client-sign-statement{position:static!important;transform:none!important;max-width:none!important;margin:0!important;padding:4px 10px!important;font-size:11px!important;line-height:1.2!important;white-space:normal!important}
  .client-contract-review-layer.is-signing .client-sign-screen>main{display:block!important;padding:5px 8px!important}
  .client-contract-review-layer.is-signing .client-sign-hint,.client-contract-review-layer.is-signing .client-orientation-hint{display:none!important}
  .client-contract-review-layer.is-signing .client-sign-screen canvas{height:calc(100svh - 145px)!important;min-height:130px!important;max-height:260px!important}
  .client-contract-review-layer.is-signing .client-sign-screen>footer{min-height:50px!important;padding:4px max(8px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))!important}
  .client-contract-review-layer.is-signing .client-sign-screen>footer .btn{min-height:42px!important;height:auto!important}
}

/* 3.6.53 — ekran podpisu dopasowany do faktycznego obszaru widocznego przeglądarki/WebView */
.client-contract-review-layer.is-signing{
  top:var(--signature-vv-top,0px)!important;
  left:var(--signature-vv-left,0px)!important;
  width:var(--signature-vv-width,100vw)!important;
  height:var(--signature-vv-height,100dvh)!important;
  max-width:var(--signature-vv-width,100vw)!important;
  max-height:var(--signature-vv-height,100dvh)!important;
  bottom:auto!important;
  right:auto!important;
  overflow:hidden!important;
}
.client-contract-review-layer.is-signing .client-sign-screen{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>header,
.client-contract-review-layer.is-signing .client-sign-statement,
.client-contract-review-layer.is-signing .client-sign-screen>footer{
  flex:0 0 auto!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>main{
  flex:1 1 auto!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
}
.client-contract-review-layer.is-signing .client-sign-screen canvas{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:90px!important;
  max-height:none!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>footer{
  position:relative!important;
  bottom:auto!important;
  min-height:56px!important;
  padding:6px max(10px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px))!important;
  background:#fff!important;
  border-top:1px solid #dce3ec!important;
  z-index:100!important;
}
@media (orientation:landscape) and (max-height:760px){
  .client-contract-review-layer.is-signing .client-sign-screen>header{
    min-height:36px!important;
    padding:4px 10px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>header span{display:none!important}
  .client-contract-review-layer.is-signing .client-sign-screen>header h2{font-size:15px!important;line-height:1.1!important}
  .client-contract-review-layer.is-signing .client-sign-statement{
    padding:3px 10px!important;
    font-size:10px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>main{padding:4px 8px!important}
  .client-contract-review-layer.is-signing .client-sign-hint,
  .client-contract-review-layer.is-signing .client-orientation-hint{display:none!important}
  .client-contract-review-layer.is-signing .client-sign-screen canvas{min-height:80px!important}
  .client-contract-review-layer.is-signing .client-sign-screen>footer{
    min-height:54px!important;
    padding:5px max(10px,env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px))!important;
    gap:8px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>footer .btn{
    min-height:42px!important;
    height:42px!important;
    font-size:14px!important;
    padding:7px 12px!important;
  }
}

/* 3.6.56 — podpis mobilny: pole maks. 60% ekranu i niezawodny dostęp do akcji */
.client-contract-review-layer.is-signing .client-sign-screen{
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>main{
  flex:0 0 auto!important;
  min-height:0!important;
  overflow:visible!important;
  padding:6px 10px!important;
}
.client-contract-review-layer.is-signing .client-sign-screen canvas{
  display:block!important;
  flex:none!important;
  width:100%!important;
  height:59svh!important;
  max-height:59svh!important;
  min-height:180px!important;
  box-sizing:border-box!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>footer{
  flex:0 0 auto!important;
  position:static!important;
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  margin:0!important;
  padding:8px max(10px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px))!important;
}
.client-contract-review-layer.is-signing .client-sign-screen>footer .btn{
  min-height:48px!important;
  white-space:normal!important;
}
@media (orientation:landscape){
  .client-contract-review-layer.is-signing .client-sign-screen canvas{
    height:59svh!important;
    max-height:59svh!important;
    min-height:110px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>header{
    min-height:38px!important;
    padding:4px 10px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-statement{
    padding:4px 10px!important;
    font-size:11px!important;
    line-height:1.2!important;
  }
  .client-contract-review-layer.is-signing .client-sign-hint,
  .client-contract-review-layer.is-signing .client-orientation-hint{display:none!important}
}
@media (orientation:landscape) and (max-height:430px){
  .client-contract-review-layer.is-signing .client-sign-screen canvas{
    height:52svh!important;
    max-height:52svh!important;
    min-height:90px!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>footer{padding-top:5px!important;padding-bottom:max(5px,env(safe-area-inset-bottom,0px))!important}
  .client-contract-review-layer.is-signing .client-sign-screen>footer .btn{min-height:42px!important;height:42px!important}
}

/* 3.6.56 — niezawodny zapis podpisu na urządzeniach mobilnych */
.client-sign-screen footer{display:block!important;flex:0 0 auto!important;padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important;background:#fff!important;border-top:1px solid #d8dee8!important;position:relative!important;inset:auto!important;z-index:5!important}
.client-sign-actions{grid-template-columns:minmax(110px,.7fr) minmax(190px,1.3fr);gap:10px;}
.client-sign-actions .btn{min-height:50px!important;width:100%!important;touch-action:manipulation!important}
.client-sign-save-status{min-height:0;margin:0 0 7px;text-align:center;font-size:13px;color:#475467}
.client-sign-save-status:empty{display:none}
.client-sign-save-status.loading{color:#8a5b00}
.client-sign-save-status.success{color:#067647}
.client-sign-save-status.error{color:#b42318;background:#fff1f0;border:1px solid #fecdca;border-radius:9px;padding:7px 9px}
@media (max-width:1366px) and (pointer:coarse){.client-sign-screen footer{position:relative!important;bottom:auto!important}.client-sign-actions .btn{min-height:54px!important;font-size:16px!important}}
@media (orientation:landscape) and (max-height:600px) and (pointer:coarse){.client-sign-screen main{min-height:0!important;overflow:auto!important}.client-sign-screen canvas{height:59svh!important;max-height:59svh!important;min-height:180px!important}.client-sign-screen footer{padding-top:7px!important;padding-bottom:calc(7px + env(safe-area-inset-bottom))!important}.client-sign-actions .btn{min-height:46px!important}}
@media (max-width:480px){.client-sign-actions{grid-template-columns:1fr 1.55fr;gap:8px}.client-sign-actions .btn{font-size:14px!important;padding-inline:8px!important}}

/* 3.6.65 — szybki wybór terminu realizacji */
.contract-realization-field{align-self:start}
.contract-term-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
.contract-term-option{min-height:40px;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:#243044;font:700 13px/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer;transition:.15s ease}
.contract-term-option:hover{border-color:#c5a24b;background:#fffaf0}
.contract-term-option.active{border-color:#c99d27;background:#e8bf55;color:#1f2937;box-shadow:0 0 0 2px rgba(201,157,39,.13)}
@media (max-width:1366px) and (pointer:coarse){.contract-term-option{min-height:52px;font-size:16px;border-radius:13px}.contract-term-quick{gap:10px}}
@media (max-width:480px){.contract-term-quick{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 3.6.65 — kompaktowy wybór terminu jak podpowiedzi produktu */
.contract-term-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:8px;align-items:stretch;position:relative}
.contract-term-input-wrap>input{min-width:0}
.contract-term-picker{position:relative;margin:0}
.contract-term-picker>summary{list-style:none;width:48px;height:100%;min-height:44px;border:1px solid #c99d27;border-radius:11px;background:#e8bf55;color:#252b36;display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box}
.contract-term-picker>summary::-webkit-details-marker{display:none}
.contract-term-picker>summary svg{width:24px;height:24px}
.contract-term-picker[open]>summary{box-shadow:0 0 0 3px rgba(201,157,39,.18)}
.contract-term-menu{position:absolute;z-index:260;right:0;top:calc(100% + 8px);width:min(280px,calc(100vw - 32px));padding:8px;background:#fff;border:1px solid #dfe4ec;border-radius:14px;box-shadow:0 18px 48px rgba(15,23,42,.2);display:grid;gap:5px}
.contract-term-menu button{border:0;background:#fff;border-radius:10px;padding:11px 12px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:#172033}
.contract-term-menu button:hover,.contract-term-menu button:focus{background:#fff7e4;outline:none}
.contract-term-menu button b{font-size:14px}.contract-term-menu button span{font-size:11px;color:#697386}
@media (max-width:1366px) and (pointer:coarse){.contract-term-input-wrap{grid-template-columns:minmax(0,1fr) 58px;gap:10px}.contract-term-picker>summary{width:58px;min-height:56px;border-radius:14px}.contract-term-picker>summary svg{width:28px;height:28px}.contract-term-menu{position:fixed;left:50%;right:auto;top:50%;bottom:auto;width:min(360px,calc(100vw - 28px));max-height:min(70dvh,520px);overflow:auto;transform:translate(-50%,-50%);margin:0;padding:10px;border-radius:18px}.contract-term-menu button{min-height:58px;padding:12px 14px}.contract-term-menu button b{font-size:17px}.contract-term-menu button span{font-size:13px}}

/* 3.6.75 — komunikaty zawsze nad modalami, podpisami i popupami */
.toast{
  z-index:2147483647!important;
  pointer-events:none!important;
  isolation:isolate;
  max-width:min(420px,calc(100vw - 28px));
}
@media (max-width:1366px){
  .toast{
    right:14px!important;
    left:14px!important;
    width:auto!important;
    bottom:calc(var(--tomzal-safe-bottom) + 14px)!important;
  }
}


/* 3.6.78 — mobilny podgląd umów i PDF dopasowany do ekranu */
@media (max-width: 850px){
  .contract-panel-pdf-frame,
  #modal .contract-panel-pdf-frame{
    width:100%!important;
    max-width:100%!important;
    height:calc(100dvh - 190px)!important;
    min-height:420px;
    margin:0!important;
    overflow:hidden!important;
    border-radius:12px!important;
  }
  .contract-panel-pdf-frame iframe,
  #modal .contract-panel-pdf-frame iframe{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    border:0!important;
  }
  .contract-panel-media-preview,
  #modal .contract-panel-media-preview{
    width:100%!important;
    max-width:100%!important;
    padding:6px!important;
    overflow:auto!important;
  }
  .contract-panel-media-preview img,
  #modal .contract-panel-media-preview img{
    width:auto!important;
    max-width:100%!important;
    height:auto!important;
    max-height:calc(100dvh - 210px)!important;
  }
}
@media (max-width:430px){
  .contract-panel-pdf-frame,
  #modal .contract-panel-pdf-frame{
    height:calc(100dvh - 160px)!important;
    min-height:360px;
  }
}

/* 3.6.79 — mobilne usuwanie powiadomień */
@media(max-width:1366px),(pointer:coarse){
 .notif-row{position:relative!important;overflow:visible!important}
 .notif-row .notif-button{position:relative;z-index:1;touch-action:manipulation}
 .notif-row .danger-icon{position:relative!important;z-index:4!important;pointer-events:auto!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
 .notif-row .danger-icon:active{transform:scale(.94);background:#ffe1e1}
}


/* 3.6.83 — przewijany formularz klienta bez sticky actions */
.customer-form-modal{min-width:0;display:flex;flex-direction:column;gap:0}
.customer-form-modal>.grid2{flex:0 0 auto}
@media(max-width:850px){
  #modal #modalBody:has(.customer-form-modal){
    display:block!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    min-height:0!important;
    padding-bottom:0!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #modal .customer-form-modal{
    min-height:0!important;
    padding-bottom:0!important;
  }
  #modal .customer-form-modal>.grid2{
    padding-top:12px!important;
    padding-bottom:16px!important;
  }
  #modal .customer-form-actions{
    position:static!important;
    bottom:auto!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    z-index:auto!important;
    margin:10px 0 0!important;
    padding:12px 0 calc(14px + env(safe-area-inset-bottom,0px))!important;
    background:transparent!important;
    border-top:1px solid var(--line)!important;
    box-shadow:none!important;
  }
  #modal .customer-form-actions .btn{width:100%!important;min-width:0!important}
}
@media(max-width:430px){
  #modal .customer-form-actions{grid-template-columns:1fr!important}
}


/* 3.6.83 — akcje formularza klienta wewnątrz gridu, bez paska sticky */
#modal .customer-form-modal>.grid2>.customer-form-actions{
  grid-column:1 / -1!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  float:none!important;
  width:auto!important;
  max-width:none!important;
  align-self:stretch!important;
}
@media(max-width:850px){
  #modal .customer-form-modal>.grid2>.customer-form-actions{
    order:999!important;
    margin:8px 0 0!important;
    padding:14px 0 calc(12px + env(safe-area-inset-bottom,0px))!important;
  }
}
.contract-pdf-choice{padding:4px}.contract-pdf-choice>p{margin:0 0 16px;line-height:1.5}.contract-pdf-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contract-pdf-choice-grid .btn{min-height:110px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;gap:7px;padding:18px}.contract-pdf-choice-grid .btn b{font-size:16px}.contract-pdf-choice-grid .btn span{font-size:12px;line-height:1.4;opacity:.85}@media(max-width:650px){.contract-pdf-choice-grid{grid-template-columns:1fr}.contract-pdf-choice-grid .btn{min-height:92px}}


/* 3.7.18 — wybór wariantu PDF zawsze mieści się na ekranie mobilnym */
#modal.modal-contract-pdf-choice{padding:12px!important;align-items:center!important;overflow:hidden!important}
#modal.modal-contract-pdf-choice .modal-card{display:flex!important;flex-direction:column!important;width:min(560px,calc(100vw - 24px))!important;max-height:calc(100dvh - 44px)!important;overflow:hidden!important;transform:translateY(25px)!important}
#modal.modal-contract-pdf-choice .modal-head{flex:0 0 auto!important}
#modal.modal-contract-pdf-choice #modalBody{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))!important}
#modal.modal-contract-pdf-choice .contract-pdf-choice{min-height:0!important}
#modal.modal-contract-pdf-choice .contract-pdf-choice-grid{align-content:start!important}
@media(max-width:650px){
 #modal.modal-contract-pdf-choice{padding:8px!important;align-items:center!important}
 #modal.modal-contract-pdf-choice .modal-card{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 40px)!important;margin:0 auto!important;transform:translateY(25px)!important}
 #modal.modal-contract-pdf-choice #modalBody{padding:14px!important;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))!important}
 #modal.modal-contract-pdf-choice .contract-pdf-choice>p{margin-bottom:12px!important}
 #modal.modal-contract-pdf-choice .contract-pdf-choice-grid{grid-template-columns:1fr!important;gap:10px!important}
 #modal.modal-contract-pdf-choice .contract-pdf-choice-grid .btn{min-height:78px!important;padding:14px 16px!important;width:100%!important;flex:none!important}
}
@media(max-width:380px), (max-height:620px){
 #modal.modal-contract-pdf-choice .contract-pdf-choice-grid .btn{min-height:68px!important;padding:11px 14px!important}
 #modal.modal-contract-pdf-choice .contract-pdf-choice-grid .btn b{font-size:15px!important}
 #modal.modal-contract-pdf-choice .contract-pdf-choice-grid .btn span{font-size:11px!important}
}


/* 3.7.21 — stabilny podgląd umowy wewnątrz aplikacji mobilnej */
body.contract-inapp-preview-open{touch-action:auto}
.contract-inapp-preview{position:fixed;inset:0;z-index:100000;background:#e5e7eb;display:flex;flex-direction:column;animation:contractPreviewIn .16s ease-out}
.contract-inapp-preview.closing{opacity:0;transform:translateY(8px);transition:.16s ease}
.contract-inapp-preview-bar{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:#172033;color:#fff;box-shadow:0 2px 14px rgba(0,0,0,.2)}
.contract-inapp-preview-bar>div{min-width:0;flex:1}.contract-inapp-preview-bar b{display:block;font-size:15px}.contract-inapp-preview-bar small{display:block;margin-top:2px;color:#cbd5e1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-inapp-preview-bar .btn{flex:0 0 auto;min-height:42px;padding:9px 15px;background:#fff!important;color:#111827!important;border:0!important}
.contract-inapp-preview-body{flex:1 1 auto;min-height:0;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}
.contract-inapp-preview-body iframe{display:block;width:100%;height:100%;border:0;background:#eee}
@keyframes contractPreviewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:700px){
 #modal.modal-contract-pdf-choice .modal-card{transform:translateY(25px)!important}
}


/* 3.7.22 — blokada pull-to-refresh w pełnoekranowym podglądzie umowy */
html.overlay-no-pull-refresh:has(.contract-inapp-preview),
body.overlay-no-pull-refresh.contract-inapp-preview-open{
  overscroll-behavior:none!important;
  overscroll-behavior-y:none!important;
  overflow:hidden!important;
}
.contract-inapp-preview,
.contract-inapp-preview-body,
.contract-inapp-preview-body iframe{
  overscroll-behavior:none!important;
  overscroll-behavior-y:none!important;
}



/* GPS / geofencing — panel administratora */
.gps-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em}.gps-ok{background:#dcfce7;color:#166534}.gps-bad{background:#fee2e2;color:#991b1b}.statistics-panel td small{display:block;margin-top:3px;color:var(--muted,#64748b)}#gpsAdminPanel select{width:100%;margin-top:8px}#gpsTestResult{margin-top:12px}

.gps-map-link{display:inline-flex!important;padding:6px 10px!important;font-size:12px!important;white-space:nowrap;text-decoration:none}.statistics-panel td:nth-child(6){min-width:210px}


/* 3.7.28 — spójny, premium formularz „Nowa rozmowa” */
#modal.modal-message-compose{
  background:rgba(15,23,42,.55)!important;
  backdrop-filter:blur(7px);
}
#modal.modal-message-compose .modal-card{
  width:min(640px,calc(100vw - 36px));
  max-width:640px;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.28);
  border-radius:22px;
  background:#fff;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
}
#modal.modal-message-compose .modal-head{
  padding:18px 20px;
  margin:0;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
}
#modal.modal-message-compose .modal-head h3{font-size:18px;letter-spacing:-.01em}
#modal.modal-message-compose #modalBody{padding:0}
.message-compose-form{display:flex;flex-direction:column;min-width:0}
.message-compose-intro{
  display:flex;align-items:center;gap:13px;
  margin:20px 20px 0;padding:15px 16px;
  border:1px solid #dce8fb;border-radius:16px;
  background:linear-gradient(135deg,#f3f8ff,#f8fbff);
}
.message-compose-icon{
  width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;
  border-radius:13px;background:#e4efff;color:#1769d2;font-size:20px;
}
.message-compose-intro>div{display:grid;gap:3px}.message-compose-intro b{font-size:14px}.message-compose-intro small{color:var(--muted);line-height:1.35}
.message-compose-grid{display:grid;grid-template-columns:1fr;gap:15px;padding:20px}
.message-compose-form .field{display:grid;gap:7px}.message-compose-form .field label{font-size:12px;font-weight:800;color:#334155}
.message-compose-form select,.message-compose-form input,.message-compose-form textarea{
  width:100%;box-sizing:border-box;border:1px solid #cfd8e5;border-radius:13px;
  background:#fff;color:#0f172a;padding:12px 13px;font:inherit;outline:none;
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.message-compose-form select,.message-compose-form input{min-height:48px}
.message-compose-form textarea{min-height:150px;resize:vertical;line-height:1.45}
.message-compose-form select:focus,.message-compose-form input:focus,.message-compose-form textarea:focus{
  border-color:#5b9cff;box-shadow:0 0 0 4px rgba(64,135,255,.13);background:#fff;
}
#modal.modal-message-compose .message-compose-actions{
  display:flex;justify-content:flex-end;gap:10px;margin:0;padding:15px 20px 18px;
  border-top:1px solid var(--line);background:#f8fafc;box-shadow:none;
}
#modal.modal-message-compose .message-compose-actions .btn{min-width:112px;min-height:44px;border-radius:12px}
#modal.modal-message-compose .message-compose-actions .btn.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px}
#modal.modal-message-compose .message-compose-actions .btn.primary b{font-size:14px}
@media(max-width:850px){
  #modal.modal-message-compose{padding:10px 8px 0!important;align-items:flex-end!important}
  #modal.modal-message-compose .modal-card{
    width:100%!important;max-width:none!important;max-height:calc(100dvh - 10px)!important;
    border-radius:22px 22px 0 0!important;display:flex!important;flex-direction:column!important;
  }
  #modal.modal-message-compose .modal-head{padding:15px 16px!important}
  #modal.modal-message-compose #modalBody{padding:0!important;overflow-y:auto!important}
  .message-compose-intro{margin:15px 14px 0;padding:13px}
  .message-compose-grid{padding:16px 14px;gap:13px}
  .message-compose-form textarea{min-height:180px;resize:none}
  #modal.modal-message-compose .message-compose-actions{
    position:sticky!important;bottom:0!important;display:grid!important;grid-template-columns:1fr 1fr!important;
    margin:0!important;padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px))!important;
    background:#fff!important;border-top:1px solid var(--line)!important;box-shadow:0 -10px 25px rgba(15,23,42,.09)!important;
  }
  #modal.modal-message-compose .message-compose-actions .btn{width:100%;min-width:0;min-height:48px}
}
@media(max-width:430px){
  .message-compose-intro small{font-size:11px}.message-compose-icon{width:38px;height:38px;flex-basis:38px}
  .message-compose-grid{padding-left:12px;padding-right:12px}
  #modal.modal-message-compose .message-compose-actions{padding-left:12px!important;padding-right:12px!important}
}


/* 3.7.29 — nowa rozmowa w panelu wiadomości, bez popupu */
.message-compose-inline-shell{display:flex;flex-direction:column;min-height:100%;background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%)}
.message-compose-inline-head{padding:16px 18px;background:#fff}
.message-compose-inline-head .chat-mobile-back{display:none}
.message-compose-inline{display:flex;flex-direction:column;flex:1;background:transparent}
.message-compose-inline .message-compose-grid{padding-top:18px;padding-bottom:18px}
.message-compose-inline .message-compose-intro{margin:18px 18px 0}
.message-compose-inline-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 18px 18px;border-top:1px solid var(--line);background:#fff;margin-top:auto}
.message-compose-inline-actions .btn{min-width:112px;min-height:46px;border-radius:12px}
.message-compose-inline-actions .btn.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.message-compose-inline-actions .btn.primary b{font-size:14px}
.message-compose-cancel-top{display:inline-flex}
@media(max-width:850px){
  .message-compose-inline-shell{height:100%}
  .message-compose-inline-head{padding:13px 14px}
  .message-compose-inline-head .chat-mobile-back{display:inline-flex}
  .message-compose-inline-head .message-compose-cancel-top{display:none}
  .message-compose-inline .message-compose-intro{margin:14px 14px 0}
  .message-compose-inline .message-compose-grid{padding:16px 14px 18px}
  .message-compose-inline textarea{min-height:220px;resize:none}
  .message-compose-inline-actions{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 25px rgba(15,23,42,.09)}
  .message-compose-inline-actions .btn{width:100%;min-width:0;min-height:48px}
}
@media(max-width:430px){
  .message-compose-inline .message-compose-grid{padding-left:12px;padding-right:12px}
  .message-compose-inline-actions{padding-left:12px;padding-right:12px}
}


/* 3.7.31 — załączniki w nowej rozmowie */
.message-new-attachment{display:flex;align-items:center;gap:12px;min-height:48px}
.message-new-attach-btn{width:auto!important;min-width:142px;height:46px!important;padding:0 14px;gap:8px;font-size:14px!important;font-weight:800;color:#172033;background:#f8fafc!important}
.message-new-attach-btn span{white-space:nowrap}
.message-new-file-name{max-width:min(420px,55vw);font-size:13px}
.message-attachment-hint{color:var(--muted);font-size:11px;line-height:1.35}
@media(max-width:560px){
 .message-new-attachment{align-items:flex-start;flex-direction:column;gap:8px}
 .message-new-attach-btn{width:100%!important}
 .message-new-file-name{max-width:100%;white-space:normal;overflow-wrap:anywhere}
}


/* 3.7.32 — przyciski nowej rozmowy zawsze widoczne */
#chatPane:has(.message-compose-inline-shell){overflow:hidden!important;min-height:0!important}
.message-compose-inline-shell{height:100%;min-height:0;overflow:hidden}
.message-compose-inline{height:100%;min-height:0;overflow:hidden}
.message-compose-inline .message-compose-grid{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:22px}
.message-compose-inline-actions{position:relative;z-index:8;flex:0 0 auto;margin-top:0!important;box-shadow:0 -8px 24px rgba(15,23,42,.08)}
@media(max-width:850px){
  .message-compose-inline-shell{height:100%!important;max-height:100%!important}
  .message-compose-inline{height:100%!important;max-height:100%!important}
  .message-compose-inline .message-compose-grid{padding-bottom:24px!important}
  .message-compose-inline-actions{position:relative!important;bottom:auto!important;flex:0 0 auto!important;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))!important}
}

/* 3.7.35: licznik nowych wiadomości w nawigacji */
.nav{position:relative}.messages-unread-badge{margin-left:auto;display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;font-style:normal;font-weight:900;line-height:1;box-shadow:0 2px 7px rgba(0,0,0,.24)}.nav.active .messages-unread-badge{box-shadow:0 0 0 2px rgba(255,255,255,.16),0 2px 7px rgba(0,0,0,.24)}.mobile-menu-item{position:relative}.mobile-menu-item .mobile-menu-badge{margin-left:auto}.messages-unread-badge.hidden{display:none!important}

/* CRM DEMO 3.7.37 — estetyczne potwierdzenie usuwania rozmowy */
.conversation-confirm{padding:4px 2px 2px}.conversation-confirm p{margin:0 auto 8px;max-width:360px;color:#475467;line-height:1.5}.conversation-confirm .small{font-size:12px;color:#98a2b3}.conversation-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.conversation-confirm-actions .btn{min-height:46px;justify-content:center}.conversation-confirm-actions .btn.danger{background:#b42318;color:#fff;border-color:#b42318}.conversation-confirm-actions .btn.danger:active{background:#912018}
@media(max-width:850px){#modal.modal-compact{align-items:flex-end!important;padding:0!important}#modal.modal-compact .modal-card{border-radius:24px 24px 0 0!important;padding:18px 16px calc(16px + env(safe-area-inset-bottom))!important;max-height:none!important}#modal.modal-compact .modal-head{padding:0 0 10px!important;top:0!important}#modal.modal-compact .modal-head h3{font-size:17px}.conversation-confirm .confirm-icon{width:64px;height:64px;border-radius:20px;font-size:28px}.conversation-confirm h4{font-size:20px}.conversation-confirm-actions{grid-template-columns:1fr}.conversation-confirm-actions .btn{width:100%;min-height:52px;font-size:15px}.conversation-confirm-actions .btn.danger{order:-1}}


/* 3.7.38 — delikatna kratka w notatniku rysika */
.contract-notebook-work canvas{background-color:#fff!important;background-image:none!important}
.contract-notebook-work canvas.notebook-bg-grid{background-image:linear-gradient(rgba(111,151,190,.20) 1px,transparent 1px),linear-gradient(90deg,rgba(111,151,190,.20) 1px,transparent 1px)!important;background-size:4.1667% 3.125%!important;background-position:0 0!important}
.contract-notebook-work canvas.notebook-bg-plain{background-image:none!important}
.notebook-action-grid.active{background:#e8f1fb!important;border-color:#9bbbd7!important;color:#17324d!important}
.notebook-grid-icon{font-size:20px;line-height:1;display:grid;place-items:center}
@media(max-width:700px){.contract-notebook-actions{grid-template-columns:repeat(4,1fr)!important}.contract-notebook-actions .notebook-action-grid{display:grid!important}.contract-notebook-actions .notebook-action-grid span:last-child{display:none!important}}

/* 3.7.39 — visible mobile icon for notebook grid background */
@media(max-width:1366px){
  .contract-notebook-actions .notebook-action-grid{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    background:#f2f5fa!important;
    color:#172033!important;
    border:1px solid #d6deea!important;
    overflow:hidden!important;
  }
  .contract-notebook-actions .notebook-action-grid .notebook-grid-icon{
    display:block!important;
    font-size:19px!important;
    line-height:1!important;
    font-weight:900!important;
  }
  .contract-notebook-actions .notebook-action-grid span:not(.notebook-grid-icon){
    display:none!important;
  }
  .contract-notebook-actions .notebook-action-grid.active{
    background:#172033!important;
    color:#ffffff!important;
    border-color:#172033!important;
  }
}
@media(max-width:430px){
  .contract-notebook-actions .notebook-action-grid{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
  }
  .contract-notebook-actions .notebook-action-grid .notebook-grid-icon{
    font-size:18px!important;
  }
}

/* 3.7.40 — simplified GPS panel, fixed mobile view panel and logical notebook actions */
.gps-advanced-details{margin-top:16px;padding:0!important;overflow:hidden}
.gps-advanced-details>summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;flex-direction:column;gap:4px;font-weight:900}
.gps-advanced-details>summary::-webkit-details-marker{display:none}
.gps-advanced-details>summary:after{content:'Rozwiń';align-self:flex-start;margin-top:7px;font-size:12px;color:#64748b}
.gps-advanced-details[open]>summary:after{content:'Zwiń'}
.gps-advanced-details>summary small{font-weight:500;color:#64748b}
.gps-advanced-content{padding:0 14px 14px;display:grid;gap:14px}
.gps-advanced-content>.card{margin:0;box-shadow:none}
@media(max-width:1366px){
  .notebook-mobile-panels{max-height:none!important}
  .notebook-mobile-panel[data-panel="view"].open{
    display:flex!important;position:relative!important;z-index:50!important;min-height:52px!important;
    overflow:visible!important;gap:10px!important;
  }
  .contract-notebook-tools:has(.notebook-mobile-panel[data-panel="view"].open){max-height:none!important;overflow:visible!important}
  .contract-notebook-actions{display:flex!important;align-items:center!important;flex-wrap:nowrap!important}
  .contract-notebook-actions .notebook-action-back{order:1!important}
  .contract-notebook-actions .notebook-action-grid{order:2!important}
  .contract-notebook-actions .notebook-action-add{order:3!important}
  .contract-notebook-actions .notebook-action-save{order:4!important}
  .contract-notebook-actions .notebook-action-exit{display:none!important}
}
@media(min-width:1367px){
  .contract-notebook-actions .notebook-action-back{order:1!important}
  .contract-notebook-actions .notebook-action-grid{order:2!important}
  .contract-notebook-actions .notebook-action-add{order:3!important}
  .contract-notebook-actions .notebook-action-save{order:4!important}
  .contract-notebook-actions .notebook-action-exit{display:none!important}
}

/* 3.7.41 — mobile notebook view panel: clickable, no white box */
@media(max-width:1366px){
  .contract-notebook-tools{
    position:relative!important;
    z-index:120!important;
    overflow:visible!important;
    pointer-events:auto!important;
  }
  .notebook-mobile-panels{
    position:relative!important;
    z-index:130!important;
    overflow:visible!important;
    pointer-events:auto!important;
  }
  .notebook-mobile-panel[data-panel="view"]{
    position:relative!important;
    z-index:140!important;
    width:auto!important;
    max-width:max-content!important;
    min-height:0!important;
    margin:6px auto 0!important;
    padding:5px!important;
    gap:4px!important;
    border:0!important;
    border-radius:16px!important;
    background:#23262d!important;
    color:#fff!important;
    box-shadow:0 8px 18px rgba(15,23,42,.20)!important;
    overflow:visible!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .notebook-mobile-panel[data-panel="view"].open{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .notebook-mobile-panel[data-panel="view"] .notebook-tool{
    position:relative!important;
    z-index:141!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    padding:0!important;
    margin:0!important;
    display:grid!important;
    place-items:center!important;
    border:0!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.10)!important;
    color:#fff!important;
    box-shadow:none!important;
    opacity:1!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  .notebook-mobile-panel[data-panel="view"] .notebook-tool:active{
    background:rgba(255,255,255,.24)!important;
    transform:scale(.96)!important;
  }
  .notebook-mobile-panel[data-panel="view"] .notebook-tool-icon{
    display:grid!important;
    place-items:center!important;
    font-size:24px!important;
    line-height:1!important;
    pointer-events:none!important;
  }
  .notebook-mobile-panel[data-panel="view"] .notebook-svg-icon svg{
    width:20px!important;
    height:20px!important;
    pointer-events:none!important;
  }
  .notebook-mobile-panel[data-panel="view"] .notebook-zoom-value{
    min-width:58px!important;
    padding:0 5px!important;
    color:#fff!important;
    background:transparent!important;
    font-size:13px!important;
    font-weight:900!important;
    text-align:center!important;
    pointer-events:none!important;
  }
  .contract-notebook-work{
    position:relative!important;
    z-index:1!important;
  }
  .contract-notebook-work main,
  .contract-notebook-canvas-wrap,
  #contractNotebookCanvas{
    z-index:1!important;
  }
}

/* 3.7.42 — mobile notebook zoom must override fixed 95vw canvas width */
@media(max-width:1366px){
  .contract-notebook-canvas-wrap{
    max-width:none!important;
    flex:0 0 auto!important;
  }
  #contractNotebookCanvas{
    max-width:none!important;
    flex:0 0 auto!important;
    transform:none!important;
  }
  .contract-notebook-work main{
    justify-content:flex-start!important;
  }
}

/* 3.7.43 — mobile notebook panels close outside + universal close button */
.contract-notebook-actions .notebook-action-close{
  background:#fff!important;
  color:#b42318!important;
  border:1px solid #efc7c3!important;
}
.contract-notebook-actions .notebook-action-close:hover{
  background:#fff4f2!important;
}
@media(max-width:1366px){
  .contract-notebook-actions .notebook-action-close{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;
    padding:0!important;display:grid!important;place-items:center!important;border-radius:12px!important;
  }
  .contract-notebook-actions .notebook-action-close span{display:none!important}
  .contract-notebook-actions .notebook-action-close svg{display:block!important;width:19px!important;height:19px!important}
}
@media(max-width:430px){
  .contract-notebook-actions .notebook-action-close{
    width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
  }
}

/* 3.7.44 — landscape notebook: vertical hideable toolbar on the left */
.notebook-landscape-handle{display:none}
@media (orientation:landscape) and (max-width:1400px){
  
  .contract-notebook-top{
    flex:0 0 auto!important;
    min-height:48px!important;
    padding:5px 8px!important;
    margin:4px 6px 0!important;
    border-radius:13px!important;
  }
  .contract-notebook-title b{font-size:13px!important}
  
  .contract-notebook-actions{flex-wrap:nowrap!important}
  .contract-notebook-actions .btn{
    width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;
  }
  .contract-notebook-actions .btn span{display:none!important}
  .contract-notebook-actions .notebook-action-back{width:36px!important;min-width:36px!important}
  .contract-notebook-actions .notebook-action-back .notebook-back-label{display:none!important}

  .contract-notebook-tools{
    position:fixed!important;
    z-index:10040!important;
    left:0!important;
    top:50%!important;
    width:64px!important;
    max-height:calc(100svh - 76px)!important;
    padding:7px 7px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    border-radius:0 20px 20px 0!important;
    background:rgba(35,38,45,.98)!important;
    box-shadow:0 14px 34px rgba(15,23,42,.28)!important;
    transform:translate(-56px,-50%)!important;
    transition:transform .22s ease!important;
    overflow:visible!important;
  }
  .contract-notebook-tools.landscape-tools-open{transform:translate(0,-50%)!important}
  .notebook-landscape-handle{
    display:grid!important;
    place-items:center!important;
    position:absolute!important;
    right:-27px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:28px!important;
    height:58px!important;
    padding:0!important;
    border:0!important;
    border-radius:0 13px 13px 0!important;
    background:#23262d!important;
    color:#fff!important;
    box-shadow:8px 7px 18px rgba(15,23,42,.22)!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
  }
  .notebook-landscape-handle span{font-size:25px!important;line-height:1!important;font-weight:800!important}
  .notebook-mobile-toolbar{
    grid-template-columns:none!important;
    gap:5px!important;
    width:50px!important;
    max-height:calc(100svh - 98px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:4px!important;
    border-radius:15px!important;
    scrollbar-width:none!important;
  }
  .notebook-mobile-toolbar::-webkit-scrollbar{display:none!important}
  .notebook-mobile-tool{
    width:42px!important;
    min-width:42px!important;
  }
  .notebook-mobile-tool .notebook-svg-icon svg{width:19px!important;height:19px!important}
  .notebook-mobile-panels{
    position:absolute!important;
    left:66px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:max-content!important;
    max-width:min(340px,calc(100vw - 100px))!important;
    z-index:10042!important;
  }
  .notebook-mobile-panel.open{
    margin:0!important;
    border-radius:16px!important;
    box-shadow:0 14px 34px rgba(15,23,42,.26)!important;
  }
  .contract-notebook-work{
    flex:1 1 auto!important;
    grid-template-rows:minmax(0,1fr) 58px!important;
    padding:4px 5px 4px 34px!important;
    gap:4px!important;
  }
  .contract-notebook-work main{border-radius:12px!important;padding:2px!important}
  .contract-notebook-work aside{height:58px!important;min-height:58px!important}
  .contract-notebook-work aside button{height:52px!important;min-height:52px!important;width:54px!important;flex-basis:54px!important}
  .contract-notebook-work aside span{height:32px!important;min-height:32px!important}
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .contract-notebook-top{min-height:42px!important;padding:3px 6px!important;margin-top:2px!important}
  .contract-notebook-title b{font-size:11px!important}
  .contract-notebook-actions .btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
  .contract-notebook-tools{width:58px!important;transform:translate(-50px,-50%)!important;padding:5px!important}
  .contract-notebook-tools.landscape-tools-open{transform:translate(0,-50%)!important}
  .notebook-mobile-toolbar{width:46px!important;gap:3px!important;padding:2px!important}
  .notebook-mobile-tool{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;flex-basis:38px!important}
  .notebook-landscape-handle{right:-25px!important;width:26px!important;height:52px!important}
  .contract-notebook-work{grid-template-rows:minmax(0,1fr) 46px!important;padding-left:30px!important}
  .contract-notebook-work aside{height:46px!important;min-height:46px!important}
  .contract-notebook-work aside button{height:42px!important;min-height:42px!important;width:46px!important;flex-basis:46px!important}
  .contract-notebook-work aside span{height:25px!important;min-height:25px!important}
}

/* CRM DEMO 5.4.42 — CSS module: 40-landscape.css
   Dedykowane reguły landscape dla telefonu/tabletu.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 3.7.45 — landscape uses only the dark side toolbar; side submenus work at tablet/desktop widths */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-tools .notebook-desktop-tools{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  .contract-notebook-tools .notebook-mobile-toolbar{
    display:flex!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .contract-notebook-tools .notebook-mobile-panels{
    display:block!important;
    visibility:visible!important;
    pointer-events:none!important;
    overflow:visible!important;
  }
  .contract-notebook-tools .notebook-mobile-panel{
    display:none!important;
    position:relative!important;
    z-index:10050!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .contract-notebook-tools .notebook-mobile-panel.open{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  .contract-notebook-tools .notebook-mobile-panel[data-panel="shapes"].open{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(44px,1fr))!important;
    gap:7px!important;
    padding:9px!important;
    background:#fff!important;
  }
  .contract-notebook-tools .notebook-mobile-panel[data-panel="colors"].open,
  .contract-notebook-tools .notebook-mobile-panel[data-panel="size"].open,
  .contract-notebook-tools .notebook-mobile-panel[data-panel="view"].open{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    padding:9px!important;
  }
  .contract-notebook-tools .notebook-mobile-panel .notebook-tool,
  .contract-notebook-tools .notebook-mobile-panel button,
  .contract-notebook-tools .notebook-mobile-panel input,
  .contract-notebook-tools .notebook-mobile-panel label{
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
}

/* 3.7.46 — landscape submenus overlay the page and never move the canvas */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-work{
    padding-left:5px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels{
    left:72px!important;
    z-index:10150!important;
    max-width:min(430px,calc(100vw - 90px))!important;
    display:block!important;
    visibility:visible!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    position:relative!important;
    inset:auto!important;
    width:max-content!important;
    max-width:min(430px,calc(100vw - 90px))!important;
    max-height:calc(100svh - 24px)!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    box-shadow:0 18px 42px rgba(15,23,42,.34)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel.open{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    grid-template-columns:repeat(3,minmax(52px,1fr))!important;
    gap:8px!important;
    padding:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    grid-template-columns:minmax(240px,1fr)!important;
    gap:9px!important;
    padding:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open{
    padding:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{
    justify-content:center!important;
    gap:8px!important;
    padding:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-width{
    min-width:240px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels button,
  .notebook-mobile-panels.notebook-landscape-panels input,
  .notebook-mobile-panels.notebook-landscape-panels label{
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .contract-notebook-work{padding-left:5px!important}
  .notebook-mobile-panels.notebook-landscape-panels{
    left:66px!important;
    max-width:calc(100vw - 78px)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    grid-template-columns:repeat(5,minmax(44px,1fr))!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    grid-template-columns:minmax(220px,1fr)!important;
  }
}

/* 3.7.47 — clean landscape side-tool popovers */
@media (orientation:landscape) and (max-width:1400px){
  .notebook-mobile-panels.notebook-landscape-panels{
    max-width:calc(100vw - 82px)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    padding:8px!important;
    background:#252932!important;
    border:1px solid rgba(255,255,255,.11)!important;
    border-radius:15px!important;
    box-shadow:0 16px 38px rgba(15,23,42,.34)!important;
  }

  /* Kształty — jeden zwarty rząd ikon */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    gap:6px!important;
    width:max-content!important;
    max-width:calc(100vw - 88px)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;
    background:rgba(255,255,255,.07)!important;
    border:1px solid rgba(255,255,255,.10)!important;border-radius:11px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool.active{
    background:#fff!important;color:#172033!important;border-color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] svg{width:19px!important;height:19px!important}

  /* Kolory — bez dodatkowej białej ramki */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open{width:max-content!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-palette{gap:7px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-color-swatch{
    width:30px!important;height:30px!important;min-width:30px!important;
  }

  /* Grubość — dwa zwarte wiersze, żadnych białych pól i wysuniętych suwaków */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    gap:7px!important;
    width:min(390px,calc(100vw - 88px))!important;
    min-width:0!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-width{max-width:none!important;height:42px!important;padding:6px 9px!important;grid-template-columns:22px 105px minmax(90px,1fr) 38px!important;gap:7px!important;border-radius:11px!important;
  }
  
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-label{font-size:11px!important;line-height:1.1!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]{
    display:block!important;max-width:none!important;padding:0!important;box-shadow:none!important;accent-color:#2684ff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] b{min-width:0!important;font-size:11px!important;
  }

  /* Widok — pojedynczy, równy pasek */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{
    display:grid!important;grid-template-columns:42px 54px 42px 42px!important;gap:6px!important;width:max-content!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;
    display:grid!important;place-items:center!important;background:rgba(255,255,255,.07)!important;color:#fff!important;
    border:1px solid rgba(255,255,255,.10)!important;border-radius:11px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-zoom-value{width:54px!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:min(360px,calc(100vw - 82px))!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-width{
    grid-template-columns:20px 94px minmax(80px,1fr) 34px!important;height:40px!important;padding:5px 8px!important;
  }
}

/* 3.7.48 — page thumbnails on the right in landscape notebook mode */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-work{
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(0,1fr)!important;
    padding-right:5px!important;
  }
  .contract-notebook-work main{
    grid-column:1!important;
    grid-row:1!important;
    order:1!important;
    width:100%!important;
  }
  .contract-notebook-work aside{
    right:6px!important;
    top:6px!important;
    bottom:6px!important;
    z-index:10030!important;
    width:62px!important;
    padding:5px!important;
    gap:6px!important;
    background:rgba(238,242,247,.94)!important;
    border:1px solid rgba(203,213,225,.9)!important;
    border-radius:14px!important;
    box-shadow:0 10px 26px rgba(15,23,42,.15)!important;
    backdrop-filter:blur(8px)!important;
    -webkit-backdrop-filter:blur(8px)!important;
  }
  .contract-notebook-work aside button{
    flex:0 0 auto!important;
    width:50px!important;
    height:58px!important;
    min-width:50px!important;
    min-height:58px!important;
    padding:4px!important;
    border-radius:10px!important;
  }
  .contract-notebook-work aside span{
    width:100%!important;
    height:36px!important;
    min-height:36px!important;
    border-radius:6px!important;
  }
  .contract-notebook-work aside b{
    display:block!important;
    margin-top:3px!important;
    font-size:8px!important;
    line-height:1!important;
    text-align:center!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .contract-notebook-work aside{
    right:4px!important;
    top:4px!important;
    bottom:4px!important;
    width:54px!important;
    padding:4px!important;
    gap:4px!important;
    border-radius:12px!important;
  }
  .contract-notebook-work aside button{
    width:44px!important;
    height:50px!important;
    min-width:44px!important;
    min-height:50px!important;
  }
  .contract-notebook-work aside span{
    height:30px!important;
    min-height:30px!important;
  }
  .contract-notebook-work aside b{font-size:7px!important}
}

/* 3.7.49 — vertical dark landscape notebook submenus */
@media (orientation:landscape) and (max-width:1400px){
  .notebook-mobile-panels.notebook-landscape-panels{
    max-width:min(320px,calc(100vw - 150px))!important;
    z-index:10080!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    min-width:74px!important;
    max-width:min(280px,calc(100vw - 160px))!important;
    background:rgba(21,26,34,.97)!important;
    box-shadow:0 16px 42px rgba(0,0,0,.34)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
    overflow:visible!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel.open{
    align-items:stretch!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    width:74px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    min-height:54px!important;
    background:rgba(255,255,255,.08)!important;
    border:1px solid rgba(255,255,255,.11)!important;
    border-radius:14px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool.active,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool.active{
    background:#2b8cff!important;
    color:#fff!important;
    border-color:#2b8cff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] svg,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] svg{
    width:20px!important;height:20px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open{
    width:72px!important;
  }
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-color-swatch{
    box-shadow:none!important;
  }
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:min(250px,calc(100vw - 160px))!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-width{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:8px!important;
    background:rgba(255,255,255,.08)!important;
    border-radius:14px!important;
  }
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon svg{
    width:18px!important;height:18px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-label{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    white-space:normal!important;
  }
  
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{
    width:74px!important;
    align-items:center!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-zoom-value{
    width:auto!important;
    min-width:0!important;
    margin:2px 0!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .notebook-mobile-panels.notebook-landscape-panels{left:58px!important;max-width:min(250px,calc(100vw - 140px))!important}
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{width:min(230px,calc(100vw - 145px))!important}
}

/* 3.7.50 — visible grid icon in landscape notebook header */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-actions .notebook-action-grid{
    display:grid!important;
    place-items:center!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
    padding:0!important;
    overflow:visible!important;
    background:#f2f5fa!important;
    color:#172033!important;
    border:1px solid #d6deea!important;
    border-radius:12px!important;
  }
  .contract-notebook-actions .notebook-action-grid .notebook-grid-icon{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    font-size:20px!important;
    line-height:1!important;
    font-weight:900!important;
    color:currentColor!important;
    transform:none!important;
  }
  .contract-notebook-actions .notebook-action-grid span:not(.notebook-grid-icon){
    display:none!important;
  }
  .contract-notebook-actions .notebook-action-grid.active{
    background:#172033!important;
    color:#fff!important;
    border-color:#172033!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .contract-notebook-actions .notebook-action-grid{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
  }
  .contract-notebook-actions .notebook-action-grid .notebook-grid-icon{
    font-size:18px!important;
  }
}

/* 3.7.51 — landscape notebook popovers unified like color palette */
@media (orientation:landscape) and (max-width:1400px){
  .notebook-mobile-panels.notebook-landscape-panels{
    left:68px!important;
    z-index:10090!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    background:rgba(19,24,33,.98)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:18px!important;
    box-shadow:0 16px 40px rgba(0,0,0,.34)!important;
    padding:10px!important;
    overflow:hidden!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel.open{
    flex-direction:column!important;
    align-items:center!important;
    gap:8px!important;
  }

  /* same visual language as colors */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{
    width:74px!important;
    min-width:74px!important;
    max-width:74px!important;
  }

  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    padding:0!important;
    margin:0 auto!important;
    display:grid!important;
    place-items:center!important;
    border-radius:50%!important;
    border:2px solid rgba(255,255,255,.18)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    box-shadow:none!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool.active,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool.active{
    border-color:#ffffff!important;
    box-shadow:0 0 0 2px rgba(43,140,255,.95)!important;
    background:rgba(255,255,255,.1)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] svg,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] svg{
    width:18px!important;height:18px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-palette{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:8px!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-color-swatch{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    border-radius:50%!important;
    border:2px solid rgba(255,255,255,.25)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-color-swatch.active{
    border-color:#fff!important;
    box-shadow:0 0 0 2px rgba(43,140,255,.95)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-zoom-value{
    display:block!important;
    width:100%!important;
    text-align:center!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:800!important;
    margin:0!important;
  }

  /* size panel — compact dark cards, no broken layout */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:min(230px,calc(100vw - 160px))!important;
    min-width:210px!important;
    max-width:230px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-width{
    grid-template-columns:18px 1fr auto!important;
    gap:6px 8px!important;
    padding:10px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    background:rgba(255,255,255,.06)!important;
    box-shadow:none!important;
    color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon{
    width:18px!important;height:18px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon svg{
    width:16px!important;height:16px!important;
  }
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]{
    accent-color:#2b8cff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] b{
    color:#fff!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{
    width:68px!important;min-width:68px!important;max-width:68px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"] .notebook-tool{
    width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"] .notebook-color-swatch{
    width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:min(210px,calc(100vw - 145px))!important;min-width:190px!important;max-width:210px!important;
  }
}

/* 3.7.52 — total redesign of landscape shapes and size panels */
@media (orientation:landscape) and (max-width:1400px){
  .notebook-mobile-panels.notebook-landscape-panels{
    left:70px!important;
    z-index:10100!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    background:linear-gradient(180deg,rgba(22,28,38,.98),rgba(18,24,33,.98))!important;
    border-radius:20px!important;
    box-shadow:0 18px 44px rgba(0,0,0,.38)!important;
    padding:12px!important;
  }
  

  /* SHAPES — slim clean vertical chooser */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    width:82px!important;
    min-width:82px!important;
    max-width:82px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    padding:0!important;
    margin:0!important;
    display:grid!important;
    place-items:center!important;
    border-radius:14px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    box-shadow:none!important;
    transition:transform .16s ease, background .16s ease, border-color .16s ease!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool:hover,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool:focus-visible{
    background:rgba(255,255,255,.11)!important;
    border-color:rgba(255,255,255,.22)!important;
    transform:translateY(-1px)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool.active{
    background:linear-gradient(180deg,#2d8cff,#1f6ff1)!important;
    border-color:rgba(255,255,255,.4)!important;
    box-shadow:0 0 0 2px rgba(255,255,255,.14),0 10px 22px rgba(31,111,241,.35)!important;
    color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool svg{
    width:19px!important;
    height:19px!important;
  }

  /* SIZE — clean card with two compact blocks */
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:240px!important;
    min-width:240px!important;
    max-width:240px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-width{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:11px 12px!important;
    display:grid!important;
    grid-template-columns:20px 1fr auto!important;
    grid-template-areas:
      "icon label value"
      "slider slider slider"!important;
    row-gap:8px!important;
    column-gap:8px!important;
    align-items:center!important;
    border-radius:16px!important;
    border:1px solid rgba(255,255,255,.11)!important;
    background:rgba(255,255,255,.07)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon{
    grid-area:icon!important;
    width:20px!important;
    height:20px!important;
    display:grid!important;
    place-items:center!important;
    color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon svg{
    width:17px!important;
    height:17px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-label{
    grid-area:label!important;
    display:block!important;
    min-width:0!important;
    margin:0!important;
    font-size:12px!important;
    line-height:1.2!important;
    font-weight:800!important;
    letter-spacing:.01em!important;
    color:#fff!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] b{
    grid-area:value!important;
    display:block!important;
    min-width:38px!important;
    margin:0!important;
    text-align:right!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:800!important;
    color:#dce7ff!important;
    white-space:nowrap!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]{
    grid-area:slider!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    accent-color:#2d8cff!important;
    background:transparent!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]::-webkit-slider-runnable-track{
    height:6px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.22)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none!important;
    appearance:none!important;
    margin-top:-5px!important;
    width:16px!important;
    height:16px!important;
    border-radius:50%!important;
    border:0!important;
    background:#2d8cff!important;
    box-shadow:0 2px 8px rgba(45,140,255,.45)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]::-moz-range-track{
    height:6px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.22)!important;
    border:0!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]::-moz-range-thumb{
    width:16px!important;
    height:16px!important;
    border-radius:50%!important;
    border:0!important;
    background:#2d8cff!important;
    box-shadow:0 2px 8px rgba(45,140,255,.45)!important;
  }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px){
  .notebook-mobile-panels.notebook-landscape-panels{left:60px!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    width:74px!important;min-width:74px!important;max-width:74px!important;gap:8px!important;padding:10px 9px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool{
    width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:220px!important;min-width:220px!important;max-width:220px!important;
  }
}

/* 3.7.53 — landscape phone: visible shapes submenu and true landscape page */
@media (orientation:landscape) and (max-width:1000px) and (pointer:coarse){
  .contract-notebook-layer{overflow:hidden!important}
  .contract-notebook-work{
    padding:2px 3px 2px 28px!important;
    gap:3px!important;
    grid-template-rows:minmax(0,1fr) 44px!important;
  }
  .contract-notebook-work main{
    border-radius:10px!important;
  }
  .contract-notebook-canvas-wrap{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  #contractNotebookCanvas{
    max-width:none!important;
    width:auto!important;
    height:auto!important;
    border-radius:10px!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels{
    position:fixed!important;
    left:62px!important;
    z-index:10220!important;
    width:auto!important;
    max-width:calc(100vw - 120px)!important;
    pointer-events:none!important;
    overflow:visible!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    display:none!important;
    pointer-events:auto!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel.open{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    flex-direction:column!important;
    align-items:center!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool{
    display:grid!important;
    place-items:center!important;
    padding:0!important;
  }
  .contract-notebook-work aside{
    right:3px!important;
    top:3px!important;
    bottom:3px!important;
    width:50px!important;
    padding:4px!important;
    gap:4px!important;
  }
  .contract-notebook-work aside button{
    width:40px!important;
    min-width:40px!important;
    height:46px!important;
    min-height:46px!important;
  }
  .contract-notebook-work aside span{
    height:28px!important;
    min-height:28px!important;
  }
}

/* 3.7.54 — landscape phone full-size canvas and dark shapes submenu */
@media (orientation:landscape) and (max-width:1000px) and (pointer:coarse){
  .contract-notebook-top{
    min-height:40px!important;
    padding:3px 6px!important;
    margin:2px 4px 0!important;
    border-radius:11px!important;
  }
  .contract-notebook-title b{font-size:12px!important}
  .contract-notebook-title span{font-size:9px!important}
  .contract-notebook-work{
    padding:0 2px 0 26px!important;
    gap:2px!important;
    grid-template-rows:minmax(0,1fr) 42px!important;
  }
  .contract-notebook-work main{
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    border-radius:8px!important;
    overflow:auto!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    background:transparent!important;
  }
  .contract-notebook-canvas-wrap{
    padding:0!important;
    margin:0 auto!important;
    width:max-content!important;
    min-width:0!important;
    min-height:0!important;
  }
  #contractNotebookCanvas{
    aspect-ratio:297 / 210!important;
    border-radius:8px!important;
    box-shadow:0 6px 18px rgba(15,23,42,.14)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels{
    left:60px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    z-index:10240!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    width:76px!important;
    min-width:76px!important;
    max-width:76px!important;
    padding:10px!important;
    gap:8px!important;
    background:linear-gradient(180deg,rgba(22,28,38,.98),rgba(18,24,33,.98))!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:18px!important;
    box-shadow:0 18px 40px rgba(0,0,0,.36)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    border-radius:14px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    background:rgba(255,255,255,.06)!important;
    color:#ffffff!important;
    box-shadow:none!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool.active{
    background:linear-gradient(180deg,#2d8cff,#1f6ff1)!important;
    border-color:rgba(255,255,255,.38)!important;
    color:#fff!important;
    box-shadow:0 0 0 2px rgba(255,255,255,.14),0 10px 20px rgba(31,111,241,.34)!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"] .notebook-tool svg{
    width:18px!important;
    height:18px!important;
  }
  .contract-notebook-work aside{
    right:2px!important;
    top:2px!important;
    bottom:2px!important;
    width:46px!important;
    padding:3px!important;
    gap:3px!important;
  }
  .contract-notebook-work aside button{
    width:38px!important;
    min-width:38px!important;
    height:42px!important;
    min-height:42px!important;
    flex-basis:38px!important;
  }
  .contract-notebook-work aside span{
    height:26px!important;
    min-height:26px!important;
  }
}


/* 3.7.55 — definitive notebook layout for phones/tablets in landscape.
   This block intentionally wins over legacy notebook media rules. */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-layer{
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr)!important;
    grid-template-rows:44px minmax(0,1fr)!important;
    background:#e8edf4!important;
  }
  .contract-notebook-top{
    grid-column:1 / -1!important;
    grid-row:1!important;
    width:auto!important;
    min-width:0!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    margin:0!important;
    padding:4px 7px!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:0 1px 0 #d7dee8!important;
    background:#fff!important;
    overflow:hidden!important;
    z-index:50!important;
  }
  .contract-notebook-title b{font-size:12px!important;line-height:15px!important}
  .contract-notebook-title span{font-size:9px!important;line-height:11px!important}
  .contract-notebook-actions{height:34px!important;gap:4px!important}
  .contract-notebook-actions .btn,
  .contract-notebook-actions .notebook-action-exit,
  .contract-notebook-actions .notebook-action-add,
  .contract-notebook-actions .notebook-action-save{
    width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
    padding:0!important;border-radius:11px!important;
  }
  .contract-notebook-actions .notebook-action-back{display:none!important}

  .contract-notebook-tools{
    grid-column:1!important;
    grid-row:2!important;
    width:58px!important;
    min-width:58px!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:5px!important;
    border:0!important;
    background:#23262d!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:40!important;
    box-sizing:border-box!important;
  }
  .notebook-desktop-tools{display:none!important}
  .notebook-mobile-toolbar{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:2px!important;
    gap:4px!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:transparent!important;
  }
  .notebook-mobile-tool{
    flex:0 0 42px!important;
    width:44px!important;height:42px!important;min-width:44px!important;min-height:42px!important;
    padding:0!important;border-radius:13px!important;color:#fff!important;
  }
  .notebook-mobile-tool.active{background:rgba(255,255,255,.16)!important}

  .contract-notebook-work{
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:3px 50px 3px 3px!important;
    display:block!important;
    position:relative!important;
    box-sizing:border-box!important;
  }
  .contract-notebook-work main{
    position:absolute!important;
    inset:3px 50px 3px 3px!important;
    width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;
    margin:0!important;padding:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:8px!important;background:#dfe6ee!important;
  }
  .contract-notebook-canvas-wrap{
    width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;
  }
  #contractNotebookCanvas{
    width:auto!important;
    height:min(calc(100dvh - 50px), 100%)!important;
    max-width:calc(100vw - 116px)!important;
    max-height:calc(100dvh - 50px)!important;
    aspect-ratio:297 / 210!important;
    object-fit:contain!important;
    border-radius:7px!important;
    box-shadow:0 5px 16px rgba(15,23,42,.16)!important;
  }
  .contract-notebook-work aside{
    position:absolute!important;left:auto!important;
    width:44px!important;height:auto!important;min-height:0!important;
    margin:0!important;gap:4px!important;
    display:flex!important;flex-direction:column!important;align-items:stretch!important;
    overflow-x:hidden!important;overflow-y:auto!important;
    background:#eef3f8!important;border:0!important;border-radius:10px!important;
    z-index:12!important;box-sizing:border-box!important;
  }
  .contract-notebook-work aside button{
    flex:0 0 39px!important;width:38px!important;height:39px!important;min-width:38px!important;min-height:39px!important;
    margin:0!important;padding:2px!important;border-radius:8px!important;box-sizing:border-box!important;
  }
  .contract-notebook-work aside span{height:25px!important;min-height:25px!important;border-radius:5px!important}
  .contract-notebook-work aside b{font-size:7px!important;line-height:8px!important;margin-top:1px!important}

  .notebook-mobile-panels.notebook-landscape-panels{
    position:fixed!important;
    left:64px!important;
    top:50%!important;
    right:auto!important;bottom:auto!important;
    width:auto!important;height:auto!important;max-width:calc(100vw - 124px)!important;
    margin:0!important;padding:0!important;
    transform:translateY(-50%)!important;
    z-index:10300!important;
    overflow:visible!important;
    pointer-events:none!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    display:none!important;
    width:auto!important;min-width:0!important;max-width:min(360px,calc(100vw - 124px))!important;
    margin:0!important;padding:9px!important;gap:7px!important;
    background:#23262d!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:16px!important;
    box-shadow:0 16px 38px rgba(0,0,0,.38)!important;
    pointer-events:auto!important;
    box-sizing:border-box!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel.open{display:flex!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    display:grid!important;grid-template-columns:repeat(5,42px)!important;width:auto!important;min-width:0!important;max-width:none!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open{display:block!important;width:min(280px,calc(100vw - 124px))!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{display:grid!important;width:min(280px,calc(100vw - 124px))!important;grid-template-columns:1fr!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{display:flex!important;width:auto!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel .notebook-tool{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;
    padding:0!important;border:1px solid rgba(255,255,255,.11)!important;border-radius:13px!important;
    background:rgba(255,255,255,.07)!important;color:#fff!important;box-shadow:none!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel .notebook-tool.active{
    background:#267cf4!important;border-color:rgba(255,255,255,.36)!important;color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-width{
    width:100%!important;min-width:0!important;margin:0!important;box-sizing:border-box!important;
    background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.1)!important;color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-width b,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-zoom-value{color:#fff!important}
}

/* 3.7.56 — stabilny układ mobilny w poziomie; końcowy override bez kolizji ze starszymi regułami */
:root{--crm-vv-height:100dvh;--crm-vv-width:100vw}
@supports not (height:100dvh){:root{--crm-vv-height:100vh}}

@media (orientation:landscape) and (max-width:1400px){
  html,body{max-width:100%;overscroll-behavior:none}
  body.notebook-open{overflow:hidden!important;touch-action:none}
  .contract-notebook-layer{
    position:fixed!important;
    inset:0!important;
    width:var(--crm-vv-width)!important;
    height:var(--crm-vv-height)!important;
    min-height:0!important;
    max-height:var(--crm-vv-height)!important;
    grid-template-columns:56px minmax(0,1fr)!important;
    grid-template-rows:46px minmax(0,1fr)!important;
    padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    isolation:isolate!important;
  }
  .contract-notebook-top{
    height:46px!important;min-height:46px!important;max-height:46px!important;
    padding:4px 6px!important;gap:6px!important;
  }
  .contract-notebook-title{min-width:0!important;overflow:hidden!important}
  .contract-notebook-title b,.contract-notebook-title span{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .contract-notebook-actions{margin-left:auto!important;min-width:0!important;overflow:visible!important}
  .contract-notebook-actions .notebook-top-btn{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
  .contract-notebook-actions .notebook-top-btn span:not(.notebook-grid-icon){display:none!important}
  .contract-notebook-tools{width:56px!important;min-width:56px!important;padding:4px!important;overscroll-behavior:contain!important}
  .notebook-mobile-toolbar{width:48px!important;min-width:48px!important;gap:3px!important;padding:0!important}
  .notebook-mobile-tool{width:48px!important;height:40px!important;min-width:48px!important;min-height:40px!important;flex-basis:40px!important;border-radius:11px!important}
  .contract-notebook-work{padding:3px 49px 3px 3px!important;overflow:hidden!important}
  .contract-notebook-work main{
    inset:3px 49px 3px 3px!important;
    overscroll-behavior:contain!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .contract-notebook-canvas-wrap{max-width:none!important;max-height:none!important;margin:auto!important}
  #contractNotebookCanvas{
    user-select:none!important;-webkit-user-select:none!important;
  }
  .contract-notebook-work aside{width:43px!important;top:3px!important;right:3px!important;bottom:3px!important;padding:3px!important;overscroll-behavior:contain!important}
  .contract-notebook-work aside button{width:37px!important;min-width:37px!important;height:38px!important;min-height:38px!important;flex-basis:38px!important}
  .notebook-mobile-panels.notebook-landscape-panels{
    left:calc(env(safe-area-inset-left) + 61px)!important;
    top:calc(env(safe-area-inset-top) + 49px)!important;
    transform:none!important;
    max-width:calc(var(--crm-vv-width) - 122px - env(safe-area-inset-left) - env(safe-area-inset-right))!important;
    max-height:calc(var(--crm-vv-height) - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    max-width:calc(var(--crm-vv-width) - 122px - env(safe-area-inset-left) - env(safe-area-inset-right))!important;
    max-height:calc(var(--crm-vv-height) - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overflow:auto!important;overscroll-behavior:contain!important;
    background:#20242c!important;color:#fff!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{
    grid-template-columns:repeat(5,minmax(38px,44px))!important;
  }
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open,
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open{
    width:min(300px,calc(var(--crm-vv-width) - 122px))!important;
  }
}

@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  .contract-notebook-layer{grid-template-columns:52px minmax(0,1fr)!important;grid-template-rows:42px minmax(0,1fr)!important}
  .contract-notebook-top{height:42px!important;min-height:42px!important;max-height:42px!important;padding:3px 5px!important}
  .contract-notebook-title span{display:none!important}
  .contract-notebook-actions .notebook-top-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
  .contract-notebook-tools{width:52px!important;min-width:52px!important;padding:3px!important}
  .notebook-mobile-toolbar{width:46px!important;min-width:46px!important;gap:2px!important}
  .notebook-mobile-tool{width:46px!important;height:36px!important;min-width:46px!important;min-height:36px!important;flex-basis:36px!important}
  .contract-notebook-work{padding-right:45px!important}
  .contract-notebook-work main{right:45px!important}
  .contract-notebook-work aside{width:40px!important}
  .contract-notebook-work aside button{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;flex-basis:34px!important}
  .contract-notebook-work aside b{display:none!important}
  .contract-notebook-work aside span{height:28px!important;min-height:28px!important}
  .notebook-mobile-panels.notebook-landscape-panels{left:calc(env(safe-area-inset-left) + 56px)!important;top:calc(env(safe-area-inset-top) + 45px)!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{padding:7px!important;gap:5px!important;border-radius:13px!important}
  .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel .notebook-tool{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
}

/* Wszystkie pełnoekranowe okna aplikacji respektują faktyczną wysokość WebView po obrocie. */
@media (orientation:landscape) and (max-width:1000px){
  .modal,.modal-backdrop,.fullscreen-layer,.signature-layer,.client-sign-layer{
    max-height:var(--crm-vv-height)!important;
  }
  .modal-card,.modal-content,.fullscreen-card{
    max-height:calc(var(--crm-vv-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overflow:auto!important;overscroll-behavior:contain!important;
  }
}


/* 3.7.57 — pasek narzędzi w poziomie zawsze widoczny i klikalny.
   Usunięto zależność od wysuwanego uchwytu, który w WebView mógł wypaść poza ekran. */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-layer .contract-notebook-tools{
    position:relative!important;
    left:auto!important;top:auto!important;
    transform:none!important;
    grid-column:1!important;grid-row:2!important;
    width:56px!important;min-width:56px!important;height:100%!important;
    max-height:none!important;
    display:flex!important;visibility:visible!important;opacity:1!important;
    pointer-events:auto!important;
    overflow:hidden!important;
    z-index:2147483000!important;
    border-radius:0 14px 14px 0!important;
  }
  .contract-notebook-layer .contract-notebook-tools.landscape-tools-open,
  .contract-notebook-layer .contract-notebook-tools:not(.landscape-tools-open){
    transform:none!important;left:auto!important;
  }
  .contract-notebook-layer .notebook-landscape-handle{
    display:none!important;
  }
  .contract-notebook-layer .notebook-mobile-toolbar{
    display:flex!important;visibility:visible!important;opacity:1!important;
    pointer-events:auto!important;
    flex:1 1 auto!important;
    height:100%!important;max-height:100%!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }
  .contract-notebook-layer .notebook-mobile-tool{
    pointer-events:auto!important;
    touch-action:manipulation!important;
    position:relative!important;z-index:2!important;
  }
  .contract-notebook-work{
    grid-column:2!important;grid-row:2!important;
  }
}
@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  .contract-notebook-layer .contract-notebook-tools{width:52px!important;min-width:52px!important}
}


/* 3.7.58 — podmenu mobilne w poziomie oraz czarny pas po stronie wycięcia aparatu */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-layer{background:#0d1117!important}
  .contract-notebook-layer::before{
    content:''!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;
    width:max(env(safe-area-inset-left), 8px)!important;
    background:#05070a!important;z-index:2147482998!important;pointer-events:none!important;
  }
  .contract-notebook-layer .contract-notebook-tools{
    background:#0e131a!important;border-right:1px solid rgba(255,255,255,.08)!important;
    box-shadow:inset -1px 0 0 rgba(255,255,255,.04)!important;
  }
  .contract-notebook-layer .notebook-mobile-toolbar{background:#0e131a!important}
  .contract-notebook-layer .notebook-mobile-tool{
    background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.09)!important;
  }
  .contract-notebook-layer .notebook-mobile-tool.active{
    background:rgba(38,124,244,.92)!important;border-color:rgba(255,255,255,.26)!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels{
    display:block!important;visibility:visible!important;opacity:1!important;overflow:visible!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel{
    display:none!important;visibility:hidden!important;opacity:0!important;
    background:#111821!important;color:#fff!important;border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 20px 44px rgba(0,0,0,.42)!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel.open{
    visibility:visible!important;opacity:1!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="shapes"].open{display:grid!important;grid-template-columns:repeat(5,minmax(38px,44px))!important}
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="colors"].open{display:block!important}
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{display:grid!important;grid-template-columns:1fr!important}
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="view"].open{display:flex!important}
}


/* 3.7.59 — usuń dolny czarny pasek w poziomym notatniku i napraw panel grubości */
@media (orientation:landscape) and (max-width:1400px){
  body.notebook-open::after{display:none!important;content:none!important}
  body.notebook-open #app{padding-bottom:0!important}

  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:min(340px,calc(100vw - 126px))!important;
    min-width:260px!important;
    gap:10px!important;
    padding:10px!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-width{
    display:grid!important;
    grid-template-columns:24px minmax(0,1fr) auto!important;
    grid-template-areas:
      'icon label value'
      'slider slider slider'!important;
    align-items:center!important;
    gap:7px 8px!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    padding:9px 10px!important;
    border-radius:14px!important;
    box-sizing:border-box!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon{
    grid-area:icon!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    min-height:24px!important;
    margin:0!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-icon svg{
    width:18px!important;height:18px!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-label{
    grid-area:label!important;
    min-width:0!important;
    width:auto!important;
    white-space:normal!important;
    line-height:1.2!important;
    font-size:12px!important;
    overflow-wrap:anywhere!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] input[type="range"]{
    grid-area:slider!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] b{
    grid-area:value!important;
    min-width:44px!important;
    text-align:right!important;
    justify-self:end!important;
    margin:0!important;
    font-size:12px!important;
  }
}

@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"].open{
    width:min(320px,calc(100vw - 116px))!important;
    min-width:240px!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels .notebook-mobile-panel[data-panel="size"] .notebook-size-label{
    font-size:11px!important;
  }
}

/* 3.7.60 — pełna kartka w poziomie, kwadratowa kratka i aktywne całe płótno */
@media (orientation:landscape) and (max-width:1400px){
  .contract-notebook-work main{
    align-items:stretch!important;
    justify-content:stretch!important;
    overflow:auto!important;
  }
  .contract-notebook-canvas-wrap{
    margin:0!important;
    flex:0 0 auto!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }
  #contractNotebookCanvas{
    display:block!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:fill!important;
    touch-action:none!important;
  }
  .contract-notebook-work canvas.notebook-bg-grid{
    background-size:24px 24px!important;
    background-position:0 0!important;
  }
}


/* 3.7.61 — płynne suwaki dotykowe i tryb mobilny do szerokości iPada Pro */
.contract-notebook-layer input[type="range"]{
  touch-action:none!important;
  -webkit-user-select:none!important;
  user-select:none!important;
  cursor:grab;
}
.contract-notebook-layer input[type="range"]:active{cursor:grabbing}
@media (max-width:1366px){
  .side{display:none!important}
  .shell{display:block!important;grid-template-columns:1fr!important}
  .main{margin-left:0!important;width:100%!important;max-width:none!important}
  .mobilebar{display:grid!important}
}

/* 3.7.65 — safe-area bez sztucznych lewych warstw.
   Pseudo-elementy notatnika są wyłączone globalnie. Body tworzy wyłącznie
   rzeczywiste osłony systemowe wynikające z env(safe-area-inset-*). */
:root{
  --tomzal-safe-top:env(safe-area-inset-top,0px);
  --tomzal-safe-right:env(safe-area-inset-right,0px);
  --tomzal-safe-bottom:env(safe-area-inset-bottom,0px);
  --tomzal-safe-left:env(safe-area-inset-left,0px);
}

/* Nigdy nie twórz bocznej warstwy przy notatniku „Notatka rysikiem”. */


@media (max-width:1366px){
  html,body{
    width:100%;
    min-height:100%;
    background:var(--bg)!important;
    overflow-x:hidden!important;
  }

  /* Górny pasek tylko tam, gdzie urządzenie faktycznie zgłasza safe-area. */
  body::before{
    content:""!important;
    display:block!important;
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:auto!important;
    height:var(--tomzal-safe-top)!important;
    min-height:0!important;
    background:#000!important;
    pointer-events:none!important;
    z-index:2147483646!important;
  }

  /* W pionie dolna osłona paska systemowego; bez wymuszonych 30 px. */
  body::after{
    content:""!important;
    display:block!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    top:auto!important;
    width:auto!important;
    height:var(--tomzal-safe-bottom)!important;
    min-height:0!important;
    background:#000!important;
    pointer-events:none!important;
    z-index:2147483646!important;
  }

  /* Dublująca warstwa aplikacji pozostaje wyłączona. */
  #app::before,#app::after{
    display:none!important;
    content:none!important;
  }

  #app{
    width:100%!important;
    min-height:var(--crm-vv-height,100dvh)!important;
    padding:var(--tomzal-safe-top) var(--tomzal-safe-right) var(--tomzal-safe-bottom) var(--tomzal-safe-left)!important;
    background:var(--bg)!important;
  }
  .shell,.main{
    width:100%!important;
    min-height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top) - var(--tomzal-safe-bottom))!important;
  }
  .mobilebar{
    left:var(--tomzal-safe-left)!important;
    right:var(--tomzal-safe-right)!important;
    bottom:var(--tomzal-safe-bottom)!important;
    width:auto!important;
  }
  .modal,.mobile-menu{
    inset:var(--tomzal-safe-top) var(--tomzal-safe-right) var(--tomzal-safe-bottom) var(--tomzal-safe-left)!important;
    max-width:none!important;
    max-height:none!important;
  }
}

/* Poziomy telefon/tablet: nie ma żadnego lewego ::before.
   Jeżeli system zgłasza prawy safe-area, osłania go wyłącznie body::after. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  body::after{
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    width:var(--tomzal-safe-right)!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
  }
  html,body,#app,.shell,.main{
    width:100%!important;
    max-width:100%!important;
  }
  
  .content{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    overflow:visible!important;
  }
  
  
  
  .modal-card,.modal-content,.fullscreen-card{
    max-height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top) - var(--tomzal-safe-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }
  
}

/* 3.7.65 — w poziomie CRM dochodzi do lewej krawędzi WebView.
   Lewy inset Androida ignorujemy, zachowując górny i prawy obszar systemowy. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  
  #app{padding-left:0!important}
  .mobilebar{left:0!important}
  .modal,.mobile-menu{left:0!important}
}

/* 3.7.66 — wszystkie widoki mobilne dosunięte do lewej jak ekran główny.
   Lewa krawędź WebView należy do CRM; miejsce rezerwujemy wyłącznie po stronie
   faktycznych przycisków systemowych Androida. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  :root{
    --tomzal-safe-left:0px!important;
    --signature-vv-left:0px!important;
  }

  html,body,#app,.shell,.main,.content{
    margin-left:0!important;
    padding-left:0!important;
    left:0!important;
    transform:none;
  }

  /* Wszystkie warstwy pełnoekranowe i popupy zaczynają się przy lewej krawędzi. */
  

  /* Elementy należące do aplikacji, które wcześniej dziedziczyły lewy inset. */
  .mobilebar,
  .top,
  .photo-upload-indicator{
    left:0!important;
  }

  .modal-card,
  .modal-content,
  .mobile-menu-card,
  .client-sign-screen,
  .contract-pdf-viewer-top,
  .contract-pdf-viewer-pages,
  .contract-inapp-preview-bar,
  .contract-inapp-preview-body{
    margin-left:0!important;
    max-width:100%!important;
  }

  /* Podpisy: bez offsetLeft visualViewport i bez paddingu safe-area po lewej. */
  .client-contract-review-layer.is-signing{
    inset:auto var(--tomzal-safe-right) 0 0!important;
    top:var(--signature-vv-top,0px)!important;
    height:var(--signature-vv-height,100dvh)!important;
  }
  .client-contract-review-layer.is-signing .client-sign-screen>footer{
    padding-left:10px!important;
    padding-right:max(10px,var(--tomzal-safe-right))!important;
  }

  /* Dolne arkusze wyboru i formularze. */
  .mobile-select-sheet,
  .mobile-datetime-sheet,
  .mobile-date-sheet,
  .contract-term-menu,
  .contract-suggestion-popover{
    margin-left:0!important;
  }
  .contract-term-menu,
  .contract-suggestion-popover{
    left:8px!important;
    right:max(8px,var(--tomzal-safe-right))!important;
  }

  /* Podglądy i edytor umowy nie mogą zachowywać lewego safe-area. */
  #modal.modal-contract-editor,
  #modal.modal-contract-media,
  #modal.modal-contract-pdf-choice{
    left:0!important;
    right:var(--tomzal-safe-right)!important;
    padding-left:0!important;
  }

  /* Notatnik zachowuje własny pasek narzędzi, ale bez zewnętrznej pustej strefy. */
  

  /* Blokada wszystkich starszych pseudo-warstw po lewej stronie. */
  
}


/* 3.7.67 — finalna korekta widoku Sprawy oraz dolnej belki notatnika w poziomie. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  /* SPRAWY: ten widok nie może dziedziczyć żadnego starego lewego insetu ani
     szerokości liczonej od pełnego ekranu zamiast od dostępnego WebView. */
  html[data-crm-view="tasks"],
  body[data-crm-view="tasks"],
  body[data-crm-view="tasks"] #app,
  body[data-crm-view="tasks"] .shell,
  body[data-crm-view="tasks"] .main,
  body[data-crm-view="tasks"] .content{
    left:0!important;
    margin-left:0!important;
    padding-left:0!important;
    transform:none!important;
    max-width:100%!important;
  }
  body[data-crm-view="tasks"] .content{
    width:100%!important;
    padding-right:var(--tomzal-safe-right)!important;
    overflow-x:hidden!important;
  }
  body[data-crm-view="tasks"] .workflow-grid,
  body[data-crm-view="tasks"] .workflow-card,
  body[data-crm-view="tasks"] .workflow-tablewrap,
  body[data-crm-view="tasks"] .content>.toolbar,
  body[data-crm-view="tasks"] .content>.card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    transform:none!important;
  }
  body[data-crm-view="tasks"] .workflow-grid{
    padding-left:8px!important;
    padding-right:8px!important;
    box-sizing:border-box!important;
  }
  body[data-crm-view="tasks"] .workflow-card,
  body[data-crm-view="tasks"] .content>.card,
  body[data-crm-view="tasks"] .content>.toolbar{
    margin-left:8px!important;
    margin-right:8px!important;
    width:calc(100% - 16px)!important;
  }
  body[data-crm-view="tasks"] .workflow-tablewrap,
  body[data-crm-view="tasks"] .tablewrap{
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-x pan-y!important;
  }

  /* NOTATNIK: akcje są osobną, zawsze widoczną dolną belką nad systemową
     nawigacją. Obszar rysowania kończy się nad nią i nie może jej zasłonić. */
  
  
  
  
  
  
  
  
  
  
  
}

/* 3.7.69 — tylko widok SPRAWY: szerokość identyczna jak Klienci na telefonie. */
@media (max-width:1366px){
  body[data-crm-view="tasks"] .content{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
    overflow-x:hidden!important;
  }
  body[data-crm-view="tasks"] .workflow-grid{
    display:grid!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  body[data-crm-view="tasks"] .workflow-card,
  body[data-crm-view="tasks"] .content>.toolbar,
  body[data-crm-view="tasks"] .content>.card{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  body[data-crm-view="tasks"] .workflow-tablewrap,
  body[data-crm-view="tasks"] .workflow-card>.tablewrap,
  body[data-crm-view="tasks"] .content>.card>.tablewrap{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
}
@media (max-width:430px){
  body[data-crm-view="tasks"] .content{
    padding-left:8px!important;
    padding-right:8px!important;
  }
}
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  body[data-crm-view="tasks"] .content{
    padding-left:10px!important;
    padding-right:max(10px,var(--tomzal-safe-right,0px))!important;
  }
}

/* 3.7.70 — wszystkie główne okna widoków: 95% szerokości i dokładne wyśrodkowanie w poziomie. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  body:not(.notebook-open) .main > .content,
  body:not(.notebook-open) .main .content{
    box-sizing:border-box!important;
    width:95%!important;
    max-width:95%!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    transform:none!important;
  }

  /* Każdy główny panel ma wypełniać wyśrodkowane 95%, bez własnego przesunięcia. */
  body:not(.notebook-open) .content > .toolbar,
  body:not(.notebook-open) .content > .card,
  body:not(.notebook-open) .content > .workflow-grid,
  body:not(.notebook-open) .content > .workflow-card,
  body:not(.notebook-open) .content > .tablewrap,
  body:not(.notebook-open) .content .workflow-grid,
  body:not(.notebook-open) .content .workflow-card{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Sprawy korzystają dokładnie z tego samego obszaru co pozostałe widoki. */
  body[data-crm-view="tasks"] .content{
    width:95%!important;
    max-width:95%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}

/* 3.7.71 — naprawa przewijania okien w orientacji poziomej.
   Wygląd pozostaje bez zmian; przewijanie przejmuje właściwy kontener okna. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  html,
  body:not(.notebook-open):not(.contract-inapp-preview-open){
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body:not(.notebook-open) #app,
  body:not(.notebook-open) .shell,
  body:not(.notebook-open) .main{
    min-height:var(--crm-vv-height,100dvh)!important;
    height:auto!important;
    overflow:visible!important;
  }

  body:not(.notebook-open) .content{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    touch-action:pan-x pan-y!important;
  }

  /* Zewnętrzna warstwa popupu nie przewija się — przewija się karta lub jej treść. */
  #modal.modal,
  .mobile-menu,
  .mobile-select-layer,
  .mobile-date-layer,
  .mobile-datetime-layer,
  .change-origin-overlay{
    overflow:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
  }

  #modal.modal .modal-card,
  #modal.modal .modal-content,
  #modal.modal .fullscreen-card,
  .mobile-menu-card,
  .mobile-select-sheet,
  .mobile-date-sheet,
  .mobile-datetime-sheet,
  .change-origin-card{
    box-sizing:border-box!important;
    min-height:0!important;
    max-height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px) - 16px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* Popupy z nagłówkiem i stopką: przewijana jest wyłącznie środkowa treść. */
  #modal.modal .modal-card:has(#modalBody){
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  #modal.modal #modalBody{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #modal.modal .modal-head,
  #modal.modal .modal-actions{
    flex:0 0 auto!important;
  }

  /* Tabele zachowują przewijanie w obu kierunkach. */
  #modal.modal .tablewrap,
  .content .tablewrap,
  .workflow-tablewrap,
  .chat-pane,
  .message-compose-grid{
    overflow:auto!important;
    touch-action:pan-x pan-y!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* Pełnoekranowe podglądy z własnym obszarem treści. */
  .client-contract-review-layer:not(.is-signing) .client-review-shell>main,
  .contract-pdf-viewer-pages,
  .contract-inapp-preview-body{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* CRM DEMO 5.4.42 — CSS module: 50-mobile-modals-calendar.css
   Kalendarz mobilny, popupy, modale i przewijanie w mobile.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 3.7.73 — Kalendarz: pewne przewijanie pionowe i poziome na telefonie w landscape. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  body[data-crm-view="calendar"]{
    overflow:hidden!important;
  }
  body[data-crm-view="calendar"] #app,
  body[data-crm-view="calendar"] .shell,
  body[data-crm-view="calendar"] .main{
    height:var(--crm-vv-height,100dvh)!important;
  }
  body[data-crm-view="calendar"] .main>.content,
  body[data-crm-view="calendar"] .main .content{
    height:calc(var(--crm-vv-height,100dvh) - 78px - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding-bottom:calc(86px + var(--tomzal-safe-bottom,0px))!important;
  }
  body[data-crm-view="calendar"] .calendar-page{
    min-height:max-content!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }
  body[data-crm-view="calendar"] .calendar-card{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body[data-crm-view="calendar"] .calendar{
    min-width:760px!important;
  }
  body[data-crm-view="calendar"] .staff-filter{
    touch-action:pan-x!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.73 — Notatka rysikiem: boczny pasek jest domyślnie schowany.
   Po zwinięciu płótno zajmuje zwolnione miejsce; uchwyt wysuwa narzędzia. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  .contract-notebook-layer{
    grid-template-columns:0 minmax(0,1fr)!important;
  }
  .contract-notebook-layer.notebook-tools-open{
    grid-template-columns:56px minmax(0,1fr)!important;
  }
  .contract-notebook-layer .contract-notebook-tools{
    grid-column:1!important;
    grid-row:2!important;
    width:0!important;
    min-width:0!important;
    padding:0!important;
    overflow:visible!important;
    border:0!important;
    background:#0e131a!important;
    transition:width .2s ease,min-width .2s ease!important;
  }
  .contract-notebook-layer.notebook-tools-open .contract-notebook-tools{
    width:56px!important;
    min-width:56px!important;
    padding:4px!important;
    border-right:1px solid rgba(255,255,255,.08)!important;
    overflow:visible!important;
  }
  .contract-notebook-layer .notebook-mobile-toolbar{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    width:48px!important;
  }
  .contract-notebook-layer.notebook-tools-open .notebook-mobile-toolbar{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .contract-notebook-layer .notebook-landscape-handle{
    display:flex!important;
    position:absolute!important;
    top:50%!important;
    right:-31px!important;
    width:31px!important;
    height:64px!important;
    transform:translateY(-50%)!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-left:0!important;
    border-radius:0 14px 14px 0!important;
    background:#0e131a!important;
    color:#fff!important;
    box-shadow:5px 0 14px rgba(0,0,0,.22)!important;
    z-index:2147483600!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .contract-notebook-layer .notebook-landscape-handle span{
    font-size:25px!important;
    line-height:1!important;
    font-weight:900!important;
  }
  .contract-notebook-layer .notebook-mobile-panels.notebook-landscape-panels{
    display:none!important;
  }
  .contract-notebook-layer.notebook-tools-open .notebook-mobile-panels.notebook-landscape-panels{
    display:block!important;
  }
  .contract-notebook-layer .contract-notebook-work{
    grid-column:2!important;
    grid-row:2!important;
    padding-left:3px!important;
    padding-right:3px!important;
    transition:none!important;
  }
  .contract-notebook-layer .contract-notebook-work main{
    left:3px!important;
    right:3px!important;
  }
}

/* 3.7.74 — Kalendarz: pewny gest przewijania i kontrolowane odświeżanie w poziomie. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  html[data-crm-view="calendar"],
  body[data-crm-view="calendar"]{
    overscroll-behavior-y:none!important;
  }

  

  body[data-crm-view="calendar"] .content{
    height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top) - var(--tomzal-safe-bottom) - 58px)!important;
    max-height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top) - var(--tomzal-safe-bottom) - 58px)!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:auto!important;
  }

  body[data-crm-view="calendar"] .calendar-wrap,
  body[data-crm-view="calendar"] .calendar-grid,
  body[data-crm-view="calendar"] .calendar-board,
  body[data-crm-view="calendar"] .calendar-table,
  body[data-crm-view="calendar"] .tablewrap{
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }

  /* Popupy: bez szarego pasa przy dolnej krawędzi WebView. */
  body.tomzal-modal-open,
  body.mobile-select-open,
  body.mobile-date-open,
  body.mobile-datetime-open{
    background:var(--bg)!important;
  }
  .modal,
  .mobile-select-layer,
  .mobile-date-layer,
  .mobile-datetime-layer,
  .change-origin-overlay{
    
    padding-bottom:0!important;
    border-bottom:0!important;
    box-shadow:none!important;
  }
  .modal-card,
  .modal-content,
  .fullscreen-card,
  .mobile-select-sheet,
  .mobile-date-sheet,
  .mobile-datetime-sheet{
    margin-bottom:0!important;
    border-bottom:0!important;
    box-shadow:0 18px 50px rgba(0,0,0,.28)!important;
    background-clip:padding-box!important;
  }
  .modal-card::after,
  .modal-content::after,
  .fullscreen-card::after,
  .mobile-select-sheet::after,
  .mobile-date-sheet::after,
  .mobile-datetime-sheet::after{
    display:none!important;
    content:none!important;
  }
}

/* 3.7.76 — popup mobilny zawsze nad menu; menu ukryte podczas otwartego popupu. */
@media (max-width:1400px) and (pointer:coarse){
  body.tomzal-modal-open .mobile-menu,
  body.mobile-select-open .mobile-menu,
  body.mobile-date-open .mobile-menu,
  body.mobile-datetime-open .mobile-menu,
  body.contract-pdf-viewer-open .mobile-menu,
  body.contract-inapp-preview-open .mobile-menu,
  body.notebook-open .mobile-menu{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    z-index:-1!important;
  }

  body.tomzal-modal-open .modal,
  body.mobile-select-open .mobile-select-layer,
  body.mobile-date-open .mobile-date-layer,
  body.mobile-datetime-open .mobile-datetime-layer,
  .change-origin-overlay,
  .client-contract-review-layer,
  .contract-pdf-viewer-layer,
  .contract-inapp-preview,
  .contract-notebook-layer{
    z-index:2147483600!important;
  }
}

/* 3.7.77 — wspólny poprawny układ poziomy: widoczny top i przewijana treść. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  html,
  body{
    height:100%!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) #app{
    height:var(--crm-vv-height,100dvh)!important;
    min-height:var(--crm-vv-height,100dvh)!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) .shell{
    height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) .main{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  /* Górna belka z dzwonkiem zawsze pozostaje widoczna. */
  body:not(.notebook-open) .main > .top,
  body:not(.notebook-open) .top{
    position:relative!important;
    top:auto!important;
    flex:0 0 auto!important;
    width:100%!important;
    z-index:100!important;
    visibility:visible!important;
    opacity:1!important;
  }

  /* Każda zakładka przewija własną treść, a nie całe body. */
  body:not(.notebook-open) .main > .content,
  body:not(.notebook-open) .main .content{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-gutter:auto!important;
  }

  /* Nadpisanie wcześniejszego specjalnego układu Kalendarza. */
  body[data-crm-view="calendar"] #app,
  body[data-crm-view="calendar"] .shell,
  body[data-crm-view="calendar"] .main{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body[data-crm-view="calendar"] .content{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  /* Elementy tabelaryczne nadal mogą przesuwać się w obu kierunkach. */
  .content .tablewrap,
  .content .workflow-tablewrap,
  .content .calendar-wrap,
  .content .calendar-grid,
  .content .calendar-board,
  .content .calendar-table{
    overflow:auto!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* NOWA UMOWA i inne pełnoekranowe edytory:
     karta wypełnia całą warstwę, więc tło modala nie tworzy szarego pasa. */
  #modal.modal.modal-contract-editor,
  #modal.modal.modal-contract-media,
  #modal.modal.modal-contract-pdf-choice{
    align-items:stretch!important;
    justify-content:stretch!important;
    padding:0!important;
    background:transparent!important;
  }

  #modal.modal.modal-contract-editor > .modal-card,
  #modal.modal.modal-contract-editor > .modal-content,
  #modal.modal.modal-contract-editor > .fullscreen-card,
  #modal.modal.modal-contract-media > .modal-card,
  #modal.modal.modal-contract-media > .modal-content,
  #modal.modal.modal-contract-pdf-choice > .modal-card,
  #modal.modal.modal-contract-pdf-choice > .modal-content{
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    margin:0!important;
    padding-bottom:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }

  #modal.modal.modal-contract-editor #modalBody,
  #modal.modal.modal-contract-media #modalBody,
  #modal.modal.modal-contract-pdf-choice #modalBody{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    background:#fff!important;
    padding-bottom:max(12px,var(--tomzal-safe-bottom,0px))!important;
  }

  /* Nie pozwalaj pseudo-elementom ani safe-area tworzyć pasa pod kartą. */
  #modal.modal.modal-contract-editor::after,
  #modal.modal.modal-contract-editor > .modal-card::after,
  #modal.modal.modal-contract-editor > .modal-content::after{
    display:none!important;
    content:none!important;
  }
}

/* 3.7.78 — rozdzielenie gestów tabel w poziomie:
   tabela przewija się na boki, a pionowy gest przewija ekran zakładki. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  body:not(.notebook-open) .content{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body:not(.notebook-open) .content .tablewrap,
  body:not(.notebook-open) .content .workflow-tablewrap,
  body:not(.notebook-open) .content .calendar-wrap,
  body:not(.notebook-open) .content .calendar-grid,
  body:not(.notebook-open) .content .calendar-board,
  body:not(.notebook-open) .content .calendar-table{
    overflow-x:auto!important;
    overflow-y:visible!important;
    touch-action:pan-x!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* Wiersze, komórki i przyciski nie mogą blokować pionowego gestu rodzica. */
  body:not(.notebook-open) .content table,
  body:not(.notebook-open) .content thead,
  body:not(.notebook-open) .content tbody,
  body:not(.notebook-open) .content tr,
  body:not(.notebook-open) .content th,
  body:not(.notebook-open) .content td{
    touch-action:pan-x!important;
  }
}

/* 3.7.79 — popup akcji klienta w poziomie szeroki jak edytor umowy. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  #modal.modal:has(.customer-actions){
    align-items:stretch!important;
    justify-content:stretch!important;
    padding:0!important;
    background:transparent!important;
  }

  #modal.modal:has(.customer-actions) > .modal-card,
  #modal.modal:has(.customer-actions) > .modal-content,
  #modal.modal:has(.customer-actions) > .fullscreen-card{
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    margin:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  #modal.modal:has(.customer-actions) #modalBody{
    flex:1 1 auto!important;
    min-height:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-left:18px!important;
    padding-right:18px!important;
    box-sizing:border-box!important;
  }

  #modal.modal:has(.customer-actions) .customer-actions{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:stretch!important;
  }

  #modal.modal:has(.customer-actions) .customer-actions-row{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:10px!important;
    align-items:stretch!important;
  }

  #modal.modal:has(.customer-actions) .customer-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    margin:0!important;
    padding:8px 10px!important;
    white-space:normal!important;
    text-align:center!important;
  }
}

@media (orientation:landscape) and (max-width:900px) and (pointer:coarse){
  #modal.modal:has(.customer-actions) .customer-actions-row{
    grid-template-columns:repeat(5,minmax(92px,1fr))!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding-bottom:3px!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.80 — szerokie akcje: Ustal/Zmień termin, Podgląd, Płatność, Opłacone. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  /* Akcje w tabelach Spraw. */
  body[data-crm-view="tasks"] .workflow-actions,
  body[data-crm-view="tasks"] .row-actions.workflow-actions{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }

  body[data-crm-view="tasks"] .workflow-actions .btn,
  body[data-crm-view="tasks"] .row-actions.workflow-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    margin:0!important;
    padding:8px 10px!important;
    white-space:normal!important;
    text-align:center!important;
  }

  /* Podgląd klienta: Edytuj dane / Nowa umowa / Ustal termin. */
  #modal.modal:has(.customer-preview) .customer-preview-actions{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    align-items:stretch!important;
  }

  #modal.modal:has(.customer-preview) .customer-preview-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    margin:0!important;
    padding:8px 10px!important;
    white-space:normal!important;
    text-align:center!important;
  }

  /* Rekordy umów i płatności w podglądzie. */
  #modal.modal:has(.customer-preview) .customer-preview-record{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  #modal.modal:has(.customer-preview) .customer-preview-record > .btn{
    width:100%!important;
    min-height:44px!important;
    margin-top:8px!important;
  }
}

@media (orientation:landscape) and (max-width:900px) and (pointer:coarse){
  body[data-crm-view="tasks"] .workflow-actions,
  body[data-crm-view="tasks"] .row-actions.workflow-actions{
    grid-template-columns:repeat(3,minmax(110px,1fr))!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding-bottom:3px!important;
    -webkit-overflow-scrolling:touch!important;
  }

  #modal.modal:has(.customer-preview) .customer-preview-actions{
    grid-template-columns:repeat(3,minmax(120px,1fr))!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding-bottom:3px!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.82 — wszystkie popupy mobilne jako pełne okno, 1:1 jak edytor umowy */
@media (max-width:1366px) and (pointer:coarse),
       (max-width:1366px) and (hover:none),
       (max-width:850px) {
  #modal.modal:not(.hidden){
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-width:0!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    overflow:hidden!important;
    background:#eef2f7!important;
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
  }

  #modal.modal:not(.hidden) .modal-card{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    display:flex!important;
    flex-direction:column!important;
    width:100vw!important;
    max-width:none!important;
    min-width:0!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    box-shadow:none!important;
    background:#fff!important;
  }

  #modal.modal:not(.hidden) .modal-head{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    min-height:64px!important;
    margin:0!important;
    padding:calc(14px + env(safe-area-inset-top,0px)) calc(18px + env(safe-area-inset-right,0px)) 14px calc(18px + env(safe-area-inset-left,0px))!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    background:linear-gradient(180deg,#101c2f,#0c1728)!important;
    color:#fff!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    z-index:5!important;
  }

  #modal.modal:not(.hidden) .modal-head h3{
    min-width:0!important;
    margin:0!important;
    color:#fff!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  #modal.modal:not(.hidden) .modal-head .icon-btn{
    flex:0 0 46px!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:rgba(255,255,255,.12)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:50%!important;
    color:#fff!important;
    font-size:28px!important;
    line-height:1!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    z-index:7!important;
  }

  #modal.modal:not(.hidden) #modalBody{
    position:relative!important;
    inset:auto!important;
    flex:1 1 auto!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:16px calc(18px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(18px + env(safe-area-inset-left,0px))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    background:#fff!important;
  }

  #modal.modal:not(.hidden) #modalBody > :first-child{margin-top:0!important}
  #modal.modal:not(.hidden) #modalBody > :last-child{margin-bottom:0!important}

  /* Wyłącza późniejsze style dolnego panelu i małych kart. */
  #modal.modal-message-compose:not(.hidden),
  #modal.modal-contract-pdf-choice:not(.hidden),
  #modal.modal-compact:not(.hidden){
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }
  #modal.modal-message-compose:not(.hidden) .modal-card,
  #modal.modal-contract-pdf-choice:not(.hidden) .modal-card,
  #modal.modal-compact:not(.hidden) .modal-card{
    width:100vw!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:100dvh!important;
    transform:none!important;
    border-radius:0!important;
  }
}

/* 3.7.83 — przyciski akcji są częścią przewijanej treści popupu, bez sticky/fixed */
@media (max-width:1366px) and (pointer:coarse),
       (max-width:1366px) and (hover:none),
       (max-width:850px) {
  #modal.modal:not(.hidden) .modal-actions,
  #modal.modal:not(.hidden) .form-actions,
  #modal.modal:not(.hidden) .message-compose-actions,
  #modal.modal:not(.hidden) .message-compose-inline-actions,
  #modal.modal:not(.hidden) .gallery-upload-actions,
  #modal.modal:not(.hidden) .customer-preview-actions,
  #modal.modal:not(.hidden) .contract-actions,
  #modal.modal:not(.hidden) .dialog-actions,
  #modal.modal:not(.hidden) .popup-actions,
  #modal.modal:not(.hidden) [class*="footer-actions"] {
    position:static!important;
    inset:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    z-index:auto!important;
    transform:none!important;
    float:none!important;
    width:100%!important;
    max-width:none!important;
    margin:18px 0 0!important;
    padding:15px 0 0!important;
    background:transparent!important;
    border-top:1px solid var(--line)!important;
    border-radius:0!important;
    box-shadow:none!important;
    isolation:auto!important;
  }

  #modal.modal:not(.hidden) .confirm-box .modal-actions,
  #modal.modal:not(.hidden) .crm-confirm .modal-actions,
  #modal.modal-contract-editor:not(.hidden) .modal-actions,
  #modal.modal-contract-receipt:not(.hidden) .modal-actions,
  #modal.modal-message-compose:not(.hidden) .message-compose-actions {
    position:static!important;
    bottom:auto!important;
    margin:18px 0 0!important;
    padding:15px 0 0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  #modal.modal:not(.hidden) #modalBody {
    padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))!important;
  }

  #modal.modal:not(.hidden) #modalBody form,
  #modal.modal:not(.hidden) #modalBody .confirm-box,
  #modal.modal:not(.hidden) #modalBody .crm-confirm,
  #modal.modal:not(.hidden) #modalBody .attachment-preview {
    padding-bottom:4px!important;
  }
}

/* 3.7.84 — poprawny landscape po obrocie telefonu o 180°.
   Pasek systemowy może być po lewej albo prawej; cała aplikacja, dolna
   nawigacja i popupy korzystają z tej samej dynamicznej strefy. */
:root{
  --crm-system-left:0px;
  --crm-system-right:0px;
}
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  html.crm-system-nav-left{
    --tomzal-safe-left:var(--crm-system-left,30px)!important;
    --tomzal-safe-right:0px!important;
  }
  html.crm-system-nav-right{
    --tomzal-safe-left:0px!important;
    --tomzal-safe-right:var(--crm-system-right,30px)!important;
  }

  html.crm-system-nav-left body::after{
    top:0!important;bottom:0!important;left:0!important;right:auto!important;
    width:var(--tomzal-safe-left)!important;height:auto!important;
  }
  html.crm-system-nav-right body::after{
    top:0!important;bottom:0!important;left:auto!important;right:0!important;
    width:var(--tomzal-safe-right)!important;height:auto!important;
  }

  html.crm-system-nav-left #app{
    padding-left:var(--tomzal-safe-left)!important;
    padding-right:0!important;
  }
  html.crm-system-nav-right #app{
    padding-left:0!important;
    padding-right:var(--tomzal-safe-right)!important;
  }

  html.crm-system-nav-left .mobilebar{
    left:var(--tomzal-safe-left)!important;
    right:0!important;
  }
  html.crm-system-nav-right .mobilebar{
    left:0!important;
    right:var(--tomzal-safe-right)!important;
  }

  html.crm-system-nav-left .modal,
  html.crm-system-nav-left .mobile-menu{
    left:var(--tomzal-safe-left)!important;
    right:0!important;
  }
  html.crm-system-nav-right .modal,
  html.crm-system-nav-right .mobile-menu{
    left:0!important;
    right:var(--tomzal-safe-right)!important;
  }

  html.crm-system-nav-left #modal.modal-contract-editor,
  html.crm-system-nav-left #modal.modal-contract-media,
  html.crm-system-nav-left #modal.modal-contract-pdf-choice{
    left:var(--tomzal-safe-left)!important;
    right:0!important;
  }
  html.crm-system-nav-right #modal.modal-contract-editor,
  html.crm-system-nav-right #modal.modal-contract-media,
  html.crm-system-nav-right #modal.modal-contract-pdf-choice{
    left:0!important;
    right:var(--tomzal-safe-right)!important;
  }

  html.crm-system-nav-left .client-contract-review-layer.is-signing{
    left:var(--tomzal-safe-left)!important;
    right:0!important;
  }
  html.crm-system-nav-right .client-contract-review-layer.is-signing{
    left:0!important;
    right:var(--tomzal-safe-right)!important;
  }

  html.crm-system-nav-left .top,
  html.crm-system-nav-left .photo-upload-indicator{
    left:var(--tomzal-safe-left)!important;
  }
  html.crm-system-nav-right .top,
  html.crm-system-nav-right .photo-upload-indicator{
    left:0!important;
  }
}

/* 3.7.85 — główny ekran: poprawny pasek systemowy po obu stronach landscape.
   Główny layout nie używa bocznego paddingu, ponieważ jego dzieci miały nadal
   szerokość pełnego viewportu. Cały ekran aplikacji jest fizycznie przesuwany
   i pomniejszany o aktywną strefę przycisków systemowych. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  html.crm-system-nav-left body:not(.notebook-open) #app{
    margin-left:var(--crm-system-left,30px)!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    width:calc(100% - var(--crm-system-left,30px))!important;
    max-width:calc(100% - var(--crm-system-left,30px))!important;
  }
  html.crm-system-nav-right body:not(.notebook-open) #app{
    margin-left:0!important;
    margin-right:var(--crm-system-right,30px)!important;
    padding-left:0!important;
    padding-right:0!important;
    width:calc(100% - var(--crm-system-right,30px))!important;
    max-width:calc(100% - var(--crm-system-right,30px))!important;
  }

  body:not(.notebook-open) #app > .shell,
  body:not(.notebook-open) #app > .shell > .main,
  body:not(.notebook-open) #app > .shell > .main > .top,
  body:not(.notebook-open) #app > .shell > .main > .content{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    left:auto!important;
    right:auto!important;
  }

  /* Górny pasek i treść nie mogą ponownie otrzymywać bocznego offsetu. */
  html.crm-system-nav-left body:not(.notebook-open) .top,
  html.crm-system-nav-right body:not(.notebook-open) .top,
  html.crm-system-nav-left body:not(.notebook-open) .content,
  html.crm-system-nav-right body:not(.notebook-open) .content{
    left:auto!important;
    right:auto!important;
  }

  /* Dolna nawigacja jest pozycjonowana względem viewportu, więc zachowuje
     własny inset zgodny ze stroną paska systemowego. */
  html.crm-system-nav-left body:not(.notebook-open) .mobilebar{
    left:var(--crm-system-left,30px)!important;
    right:0!important;
    width:auto!important;
  }
  html.crm-system-nav-right body:not(.notebook-open) .mobilebar{
    left:0!important;
    right:var(--crm-system-right,30px)!important;
    width:auto!important;
  }
}


/* 3.7.87 — brak pull-to-refresh bez blokowania przewijania pionowego. */
html,body{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:none!important;
  touch-action:pan-x pan-y!important;
  -webkit-overflow-scrolling:touch!important;
}
body:not(.notebook-open) #app,
body:not(.notebook-open) .shell,
body:not(.notebook-open) .main,
body:not(.notebook-open) .content{
  overflow-y:visible!important;
  touch-action:pan-x pan-y!important;
}

/* Pulpit w landscape: zawartość ma 95% dostępnej szerokości i jest wyśrodkowana. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  body[data-crm-view="dashboard"]:not(.notebook-open) #app > .shell > .main > .content{
    width:95%!important;
    max-width:95%!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* 3.7.88 — pewne przewijanie pionowe na telefonie w orientacji portrait.
   Cała aplikacja ma wysokość viewportu, a jedynym scrollerem jest .content. */
@media (orientation:portrait) and (max-width:850px) and (pointer:coarse),
       (orientation:portrait) and (max-width:850px) and (hover:none) {
  

  body:not(.notebook-open) #app{
    height:100dvh!important;
    max-height:100dvh!important;
    touch-action:pan-y!important;
  }

  

  

  

  body:not(.notebook-open) .main > .content,
  body:not(.notebook-open) .main .content{
    overflow-y:auto!important;
  }

  /* Elementy wewnątrz nie mogą przejmować i blokować pionowego gestu. */
  body:not(.notebook-open) .content .card,
  body:not(.notebook-open) .content .cards,
  body:not(.notebook-open) .content .tablewrap,
  body:not(.notebook-open) .content .workflow-tablewrap,
  body:not(.notebook-open) .content table,
  body:not(.notebook-open) .content tbody,
  body:not(.notebook-open) .content tr,
  body:not(.notebook-open) .content td{
    touch-action:pan-y!important;
  }
}


/* 3.7.89 — globalna naprawa przewijania desktop + mobile.
   Desktop przewija dokument, a układ mobilny przewija wyłącznie .content. */
@media (min-width:1367px), (pointer:fine) and (min-width:851px) {
  html,
  body{
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:auto!important;
  }

  body:not(.notebook-open) #app,
  body:not(.notebook-open) .shell,
  body:not(.notebook-open) .main,
  body:not(.notebook-open) .content{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:auto!important;
  }

  body:not(.notebook-open) #app,
  body:not(.notebook-open) .shell{
    min-height:100vh!important;
  }

  body:not(.notebook-open) .content .tablewrap,
  body:not(.notebook-open) .content .workflow-tablewrap,
  body:not(.notebook-open) .content .calendar-card{
    overflow:auto!important;
  }
}

@media (max-width:1366px) and (pointer:fine) {
  html,
  body{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:auto!important;
  }
  body:not(.notebook-open) #app,
  body:not(.notebook-open) .shell,
  body:not(.notebook-open) .main,
  body:not(.notebook-open) .content{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:visible!important;
    touch-action:auto!important;
  }
  body:not(.notebook-open) #app,
  body:not(.notebook-open) .shell{
    min-height:100vh!important;
  }
}

/* Telefon/tablet: pełny viewport, przewijanie w jednym, pewnym kontenerze. */
@media (max-width:1366px) and (pointer:coarse),
       (max-width:850px) and (hover:none) {
  html,
  body{
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    overflow:hidden!important;
    touch-action:pan-y!important;
  }

  body:not(.notebook-open) #app{
    height:var(--crm-vv-height,100dvh)!important;
    min-height:var(--crm-vv-height,100dvh)!important;
    max-height:var(--crm-vv-height,100dvh)!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) #app > .shell,
  body:not(.notebook-open) .shell,
  body:not(.notebook-open) .main{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) .main > .top{
    flex:0 0 auto!important;
  }

  body:not(.notebook-open) .main > .content,
  body:not(.notebook-open) .main .content{
    display:block!important;
    flex:1 1 auto!important;
    height:0!important;
    min-height:0!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.90 — telefon portrait: natywne przewijanie dokumentu w Android WebView.
   Nie używamy zagnieżdżonego scrollera .content, ponieważ część WebView nie
   przekazuje do niego gestu dotykowego przy height:0/flex. */
@media (orientation:portrait) and (max-width:850px) and (pointer:coarse),
       (orientation:portrait) and (max-width:850px) and (hover:none) {
  html{
    width:100%!important;
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    touch-action:auto!important;
    overscroll-behavior-y:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body{
    position:static!important;
    width:100%!important;
    height:auto!important;
    min-height:100dvh!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    touch-action:auto!important;
    overscroll-behavior-y:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body:not(.notebook-open) #app,
  body:not(.notebook-open) #app > .shell,
  body:not(.notebook-open) .shell,
  body:not(.notebook-open) .main{
    position:static!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:auto!important;
  }
  body:not(.notebook-open) #app{
    min-height:100dvh!important;
    padding-bottom:calc(var(--tomzal-safe-bottom) + var(--tomzal-mobile-nav-height) + 18px)!important;
  }
  body:not(.notebook-open) .main > .content,
  body:not(.notebook-open) .main .content{
    overflow:visible!important;
    touch-action:auto!important;
    overscroll-behavior:auto!important;
    -webkit-overflow-scrolling:auto!important;
  }
  body:not(.notebook-open) .content,
  body:not(.notebook-open) .content .card,
  body:not(.notebook-open) .content .cards,
  body:not(.notebook-open) .content .tablewrap,
  body:not(.notebook-open) .content .workflow-tablewrap,
  body:not(.notebook-open) .content table,
  body:not(.notebook-open) .content tbody,
  body:not(.notebook-open) .content tr,
  body:not(.notebook-open) .content td{
    touch-action:auto!important;
  }
  body:not(.notebook-open) .content .tablewrap,
  body:not(.notebook-open) .content .workflow-tablewrap{
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.92 — ostateczna naprawa pionowego scrollowania dotykiem na telefonie.
   W portrait jedynym scrollerem jest .content z rzeczywistą wysokością,
   bez zawodnego połączenia flex + height:0 i bez przewijania body. */
@media (orientation:portrait) and (max-width:850px) and (pointer:coarse),
       (orientation:portrait) and (max-width:850px) and (hover:none) {
  html,
  body{
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior:none!important;
  }

  body:not(.notebook-open) #app{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:var(--crm-vv-height,100dvh)!important;
    min-height:var(--crm-vv-height,100dvh)!important;
    max-height:var(--crm-vv-height,100dvh)!important;
    padding-bottom:0!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) #app > .shell,
  body:not(.notebook-open) .shell{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) #app > .shell > .main,
  body:not(.notebook-open) .main{
    display:flex!important;
    flex-direction:column!important;
    flex:1 1 auto!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }

  body:not(.notebook-open) .main > .top{
    position:relative!important;
    top:auto!important;
    flex:0 0 auto!important;
  }

  body:not(.notebook-open) .main > .content,
  body:not(.notebook-open) .main .content{
    position:relative!important;
    display:block!important;
    flex:1 1 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding-bottom:calc(var(--tomzal-mobile-nav-height,64px) + var(--tomzal-safe-bottom,0px) + 18px)!important;
    overflow-x:hidden!important;
    overflow-y:scroll!important;
    touch-action:pan-y!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-gutter:auto!important;
  }

  body:not(.notebook-open) .content > *,
  body:not(.notebook-open) .content .card,
  body:not(.notebook-open) .content .cards,
  body:not(.notebook-open) .content table,
  body:not(.notebook-open) .content tbody,
  body:not(.notebook-open) .content tr,
  body:not(.notebook-open) .content td,
  body:not(.notebook-open) .content button,
  body:not(.notebook-open) .content a,
  body:not(.notebook-open) .content label{
    touch-action:pan-y!important;
  }

  body:not(.notebook-open) .content .tablewrap,
  body:not(.notebook-open) .content .workflow-tablewrap,
  body:not(.notebook-open) .content .calendar-wrap,
  body:not(.notebook-open) .content .calendar-grid,
  body:not(.notebook-open) .content .calendar-board,
  body:not(.notebook-open) .content .calendar-table{
    overflow-x:auto!important;
    overflow-y:visible!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.92 — podgląd PDF na telefonie portrait: gest pionowy musi dojść do iframe.
   Poprzednie touch-action:none na body i warstwie zatrzymywało dotyk w Android WebView. */
@media (orientation:portrait) and (max-width:850px) and (pointer:coarse),
       (orientation:portrait) and (max-width:850px) and (hover:none) {
  html.overlay-no-pull-refresh,
  body.overlay-no-pull-refresh.contract-inapp-preview-open,
  body.contract-inapp-preview-open{
    overflow:hidden!important;
    touch-action:pan-y!important;
  }
  .contract-inapp-preview,
  .contract-inapp-preview-body,
  .contract-inapp-preview-body iframe{
    touch-action:pan-y!important;
  }
  .contract-inapp-preview{
    overflow:hidden!important;
  }
  .contract-inapp-preview-body{
    min-height:0!important;
    overflow:hidden!important;
  }
  .contract-inapp-preview-body iframe{
    pointer-events:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* 3.7.95 — ostateczna naprawa przewijania podglądu umowy na telefonach.
   Scroll należy do zwykłego kontenera głównej strony, nie do iframe/PDF viewer. */
body.contract-inapp-preview-open{
  overflow:hidden!important;
  touch-action:auto!important;
}
.contract-inapp-preview{
  overflow:hidden!important;
  touch-action:auto!important;
}
.contract-inapp-preview-body{
  display:block!important;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  position:relative!important;
}
.contract-inapp-preview-body iframe{
  display:block!important;
  width:100%!important;
  height:1px;
  min-height:1px!important;
  border:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
  touch-action:none!important;
}


/* 3.7.95 — widoczny przycisk Zamknij w podglądzie PDF na telefonie landscape. */
.contract-inapp-preview-bar{
  position:relative!important;
  z-index:10!important;
  min-width:0!important;
}
.contract-inapp-preview-bar #contractInAppClose{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:104px!important;
  max-width:none!important;
  white-space:nowrap!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  position:relative!important;
  z-index:12!important;
}
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  .contract-inapp-preview{
    left:var(--tomzal-safe-left,0px)!important;
    right:var(--tomzal-safe-right,0px)!important;
    top:0!important;
    bottom:0!important;
    width:auto!important;
    max-width:none!important;
  }
  .contract-inapp-preview-bar{
    min-height:56px!important;
    padding-top:max(7px,env(safe-area-inset-top,0px))!important;
    padding-bottom:7px!important;
    padding-left:max(10px,env(safe-area-inset-left,0px))!important;
    padding-right:max(10px,env(safe-area-inset-right,0px))!important;
    gap:8px!important;
    overflow:visible!important;
  }
  .contract-inapp-preview-bar>div{
    min-width:0!important;
    overflow:hidden!important;
  }
  .contract-inapp-preview-bar b{
    font-size:14px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .contract-inapp-preview-bar small{
    font-size:10px!important;
  }
  .contract-inapp-preview-bar #contractInAppClose{
    min-width:100px!important;
    min-height:42px!important;
    padding:8px 13px!important;
    margin:0!important;
  }
}
html.crm-system-nav-left .contract-inapp-preview{
  left:var(--tomzal-safe-left,0px)!important;
}
html.crm-system-nav-right .contract-inapp-preview{
  right:var(--tomzal-safe-right,0px)!important;
}

/* CRM DEMO 5.4.42 — CSS module: 60-contract-responsive.css
   Końcowa responsywność umów i podpisów.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 3.8.2 — edytor umowy w landscape identyczny z pozostałymi pełnoekranowymi oknami. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none) {
  #modal.modal.modal-contract-editor:not(.hidden){
    top:0!important;
    bottom:0!important;
    height:100dvh!important;
    min-height:0!important;
    margin:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    overflow:hidden!important;
    background:#eef2f7!important;
  }

  html.crm-system-nav-left #modal.modal.modal-contract-editor:not(.hidden){
    left:var(--tomzal-safe-left,0px)!important;
    right:0!important;
  }
  html.crm-system-nav-right #modal.modal.modal-contract-editor:not(.hidden){
    left:0!important;
    right:var(--tomzal-safe-right,0px)!important;
  }
  html:not(.crm-system-nav-left):not(.crm-system-nav-right) #modal.modal.modal-contract-editor:not(.hidden){
    left:0!important;
    right:0!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) > .modal-card{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    display:flex!important;
    flex-direction:column!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    box-shadow:none!important;
    background:#fff!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .modal-head{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    min-height:60px!important;
    margin:0!important;
    padding:calc(10px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) 10px calc(14px + env(safe-area-inset-left,0px))!important;
    border:0!important;
    border-radius:0!important;
    background:linear-gradient(180deg,#101c2f,#0c1728)!important;
    color:#fff!important;
    box-shadow:none!important;
    z-index:5!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .modal-head h3{
    min-width:0!important;
    margin:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#fff!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .modal-head .icon-btn{
    flex:0 0 46px!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.12)!important;
    color:#fff!important;
    font-size:28px!important;
    line-height:1!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    z-index:7!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) #modalBody{
    position:relative!important;
    inset:auto!important;
    flex:1 1 auto!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:14px calc(16px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    background:#f5f7fb!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .contract-editor-form{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    gap:12px!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .contract-form-grid,
  #modal.modal.modal-contract-editor:not(.hidden) .contract-money-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px 12px!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .contract-form-grid .full{
    grid-column:1/-1!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .contract-form-section{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:14px!important;
    border-radius:16px!important;
    box-sizing:border-box!important;
  }

  #modal.modal.modal-contract-editor:not(.hidden) .contract-add-product,
  #modal.modal.modal-contract-editor:not(.hidden) .modal-actions,
  #modal.modal.modal-contract-editor:not(.hidden) .contract-editor-form > .modal-actions{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    box-shadow:none!important;
  }
}

@media (orientation:landscape) and (max-height:430px) and (pointer:coarse),
       (orientation:landscape) and (max-height:430px) and (hover:none) {
  #modal.modal.modal-contract-editor:not(.hidden) .modal-head{
    min-height:54px!important;
    padding-top:7px!important;
    padding-bottom:7px!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) #modalBody{
    padding-top:10px!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) .contract-form-section{
    padding:12px!important;
  }
}

/* 3.8.4 — aktualny miesiąc pomiędzy strzałkami kalendarza */
.month-nav .calendar-current-month{min-width:150px;text-transform:capitalize;white-space:nowrap;font-weight:850}
@media(max-width:600px){.month-nav .calendar-current-month{min-width:0;flex:1;padding-left:10px;padding-right:10px}}


/* 3.8.5 — okno umowy: belka jak wszędzie i zawsze widoczny przycisk zamknięcia */
#modal.modal.modal-contract-editor:not(.hidden) .modal-head{
  column-gap:12px!important;
  position:sticky!important;
  top:0!important;
  z-index:12!important;
  min-height:60px!important;
}

#modal.modal.modal-contract-editor:not(.hidden) .modal-head .icon-btn{
  flex:0 0 auto!important;
  align-self:center!important;
  position:relative!important;
  z-index:13!important;
  opacity:1!important;
  visibility:visible!important;
}
#modal.modal.modal-contract-editor:not(.hidden) .modal-card{
  display:flex!important;
  flex-direction:column!important;
}


/* CRM DEMO 5.4.42 — CSS module: 70-desktop.css
   Kanoniczne reguły desktopowe.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 3.9.0 — uporządkowany zakres desktopowy; nie wpływa na urządzenia dotykowe */
@media (min-width:769px) and (pointer:fine) {
  :root{--desktop-content-max:1720px;--desktop-control-h:44px;--desktop-radius:14px}
  body{overflow-x:hidden}
  .main{min-width:0;overflow:visible}
  .content{width:min(100%,var(--desktop-content-max));padding:clamp(18px,1.7vw,30px)}
  .top{min-width:0;padding-inline:clamp(18px,1.7vw,30px)}
  .toolbar,.page-actions,.welcome-actions,.contract-row-actions{align-items:center}
  .toolbar input,.toolbar select,.toolbar .btn,.page-actions .btn{min-height:var(--desktop-control-h)}
  .tablewrap{max-width:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
  .table{min-width:760px}
  .table th{position:sticky;top:0;z-index:2}
  .modal{padding:clamp(16px,2vw,30px)}
  .modal-card{display:flex;flex-direction:column;width:min(960px,calc(100vw - 48px));max-height:min(92vh,980px);overflow:hidden;padding:0}
  .modal-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;flex:0 0 auto;margin:0;padding:18px 20px;background:#fff}
  .modal-head h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #modalBody{min-height:0;overflow:auto;padding:20px;overscroll-behavior:contain;scrollbar-gutter:stable}
  .modal-actions{position:static}
  #modal.modal-contract-editor .modal-card{width:min(1180px,calc(100vw - 48px));height:min(94vh,1050px)}
  #modal.modal-contract-editor .modal-head{position:relative!important;top:auto!important}
  #modal.modal-contract-editor #modalBody{padding:20px 24px 28px!important}
  .grid2,.contract-form-grid,.contract-money-grid{min-width:0}
  .field,.field input,.field select,.field textarea{min-width:0}
  .btn:focus-visible,.icon-btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role="button"]:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 35%,transparent);outline-offset:2px}
}

/* 5.2.44 — desktop: tabela nie może przejmować pionowego scrolla strony. */
@media (pointer:fine) {
  html.crm-desktop-device,
  html.crm-desktop-device body{
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:auto!important;
  }
  html.crm-desktop-device body:not(.notebook-open) #app,
  html.crm-desktop-device body:not(.notebook-open) .shell,
  html.crm-desktop-device body:not(.notebook-open) .main,
  html.crm-desktop-device body:not(.notebook-open) .content{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:visible!important;
    touch-action:auto!important;
  }
  html.crm-desktop-device body:not(.notebook-open) #app,
  html.crm-desktop-device body:not(.notebook-open) .shell{
    min-height:100vh!important;
  }
  html.crm-desktop-device body:not(.notebook-open) .content .tablewrap{
    overflow-x:auto!important;
    overflow-y:visible!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-x pan-y!important;
  }
}
@media (min-width:1600px) and (pointer:fine) {
  .content{--desktop-content-max:1840px}
  .cards.dashboard-stats{grid-template-columns:repeat(4,minmax(220px,1fr))}
}
@media (min-width:2200px) and (pointer:fine) {
  .content{--desktop-content-max:1960px}
}

/* 4.0.4 — kanoniczny układ edytora umowy: desktop, portrait i landscape */
#modal.modal.modal-contract-editor:not(.hidden) > .modal-card{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#modal.modal.modal-contract-editor:not(.hidden) .modal-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  flex:0 0 auto!important;
  margin:0!important;
}
#modal.modal.modal-contract-editor:not(.hidden) .modal-head h3,
#modal.modal.modal-contract-editor:not(.hidden) #modalTitle{
  min-width:0!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#modal.modal.modal-contract-editor:not(.hidden) .modal-head .icon-btn{
  justify-self:end!important;
  flex:0 0 46px!important;
  width:46px!important;
  min-width:46px!important;
  height:46px!important;
  min-height:46px!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
#modal.modal.modal-contract-editor:not(.hidden) #modalBody{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
}

@media (max-width:850px) and (pointer:coarse),
       (max-width:850px) and (hover:none){
  #modal.modal.modal-contract-editor:not(.hidden){
    position:fixed!important;
    inset:var(--tomzal-safe-top,env(safe-area-inset-top,0px)) var(--tomzal-safe-right,env(safe-area-inset-right,0px)) var(--tomzal-safe-bottom,env(safe-area-inset-bottom,0px)) var(--tomzal-safe-left,env(safe-area-inset-left,0px))!important;
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    overflow:hidden!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) > .modal-card{
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) .modal-head{
    position:relative!important;
    top:auto!important;
    z-index:16!important;
    min-height:60px!important;
    padding:10px 14px!important;
    background:linear-gradient(180deg,#101c2f,#0c1728)!important;
    color:#fff!important;
    border:0!important;
    box-shadow:0 1px 0 rgba(255,255,255,.05),0 8px 24px rgba(0,0,0,.18)!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) .modal-head h3,
  #modal.modal.modal-contract-editor:not(.hidden) #modalTitle{
    display:block!important;
    color:#fff!important;
    font-size:clamp(20px,4.3vw,28px)!important;
    line-height:1.2!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) .modal-head .icon-btn{
    position:relative!important;
    z-index:17!important;
    opacity:1!important;
    visibility:visible!important;
    background:rgba(255,255,255,.12)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:50%!important;
    color:#fff!important;
    font-size:28px!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) #modalBody{
    padding:12px 12px 0!important;
    background:#f5f7fb!important;
  }
}

@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  #modal.modal.modal-contract-editor:not(.hidden){
    position:fixed!important;
    top:var(--tomzal-safe-top,env(safe-area-inset-top,0px))!important;
    right:var(--tomzal-safe-right,env(safe-area-inset-right,0px))!important;
    bottom:var(--tomzal-safe-bottom,env(safe-area-inset-bottom,0px))!important;
    left:var(--tomzal-safe-left,env(safe-area-inset-left,0px))!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) > .modal-card{
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) .modal-head{
    min-height:58px!important;
    padding:8px 14px!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) .modal-head h3,
  #modal.modal.modal-contract-editor:not(.hidden) #modalTitle{
    font-size:clamp(18px,2.8vw,25px)!important;
  }
  #modal.modal.modal-contract-editor:not(.hidden) #modalBody{
    padding-top:10px!important;
  }
}



/* 4.0.5 — podgląd umowy i podpisy w poziomie: pełnoekranowe okna jak reszta */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  .client-contract-review-layer,
  .client-contract-review-layer.is-signing{
    position:fixed!important;
    inset:var(--tomzal-safe-top,0px) var(--tomzal-safe-right,0px) var(--tomzal-safe-bottom,0px) var(--tomzal-safe-left,0px)!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    overflow:hidden!important;
    background:#eef2f7!important;
    z-index:100000!important;
  }

  .client-review-shell,
  .client-sign-screen,
  .client-contract-review-layer.is-signing .client-sign-screen{
    width:100%!important;
    max-width:none!important;
    height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    max-height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    min-height:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }

  .client-review-shell{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    background:#f5f7fb!important;
  }

  .client-sign-screen,
  .client-contract-review-layer.is-signing .client-sign-screen{
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
    background:#f5f7fb!important;
  }

  .client-review-shell>header,
  .client-sign-screen>header,
  .client-contract-review-layer.is-signing .client-sign-screen>header{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    min-height:58px!important;
    margin:0!important;
    padding:10px calc(14px + var(--tomzal-safe-right,0px)) 10px calc(14px + var(--tomzal-safe-left,0px))!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    background:linear-gradient(180deg,#101c2f,#0c1728)!important;
    color:#fff!important;
    border:0!important;
    box-shadow:none!important;
  }

  .client-review-shell>header>div,
  .client-sign-screen>header>div{
    min-width:0!important;
  }

  .client-review-shell>header span,
  .client-sign-screen>header span{
    display:block!important;
    margin:0 0 2px!important;
    font-size:11px!important;
    line-height:1.2!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    color:#e3b64d!important;
    opacity:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .client-review-shell>header h2,
  .client-sign-screen>header h2{
    margin:0!important;
    min-width:0!important;
    font-size:clamp(17px,2.8vw,24px)!important;
    line-height:1.15!important;
    color:#fff!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .client-review-close,
  .client-sign-close,
  .client-review-shell>header .icon-btn,
  .client-sign-screen>header .icon-btn{
    justify-self:end!important;
    align-self:center!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.12)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    color:#fff!important;
    font-size:28px!important;
    line-height:1!important;
    box-shadow:none!important;
  }

  .client-review-shell>main{
    min-height:0!important;
    -webkit-overflow-scrolling:touch!important;
    padding:14px!important;
    display:grid!important;
    gap:14px!important;
    align-content:start!important;
    background:#f5f7fb!important;
  }

  .receipt-review main{
    display:block!important;
    align-items:initial!important;
  }

  .client-review-card{
    width:min(1100px,100%)!important;
    margin:0 auto!important;
    border-radius:16px!important;
    padding:16px!important;
  }

  .client-review-band{
    margin:-16px -16px 14px!important;
    border-radius:16px 16px 0 0!important;
  }

  .client-review-shell>footer{
    flex:0 0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    padding:10px calc(14px + var(--tomzal-safe-right,0px)) calc(10px + var(--tomzal-safe-bottom,0px)) calc(14px + var(--tomzal-safe-left,0px))!important;
    background:#fff!important;
    border-top:1px solid #dce3ec!important;
    box-shadow:none!important;
  }

  .client-review-shell>footer>div{
    min-width:0!important;
  }

  .client-review-shell>footer .btn{
    min-height:48px!important;
    white-space:nowrap!important;
  }

  .client-sign-statement,
  .client-contract-review-layer.is-signing .client-sign-statement{
    position:static!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    max-width:none!important;
    margin:0!important;
    padding:6px 12px!important;
    font-size:12px!important;
    line-height:1.25!important;
    font-weight:800!important;
    text-align:center!important;
    border-bottom:1px solid #f0d9a7!important;
    border-radius:0!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  .client-sign-screen>main,
  .client-contract-review-layer.is-signing .client-sign-screen>main{
    min-height:0!important;
    overflow:hidden!important;
    padding:8px 10px!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    gap:6px!important;
    background:#f5f7fb!important;
  }

  .client-sign-hint{
    font-size:12px!important;
    line-height:1.2!important;
    margin:0!important;
  }

  .client-orientation-hint{
    display:none!important;
  }

  .client-sign-screen canvas,
  .client-contract-review-layer.is-signing .client-sign-screen canvas{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    border-radius:16px!important;
  }

  .client-sign-screen>footer,
  .client-contract-review-layer.is-signing .client-sign-screen>footer{
    position:static!important;
    z-index:20!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
    padding:8px calc(10px + var(--tomzal-safe-right,0px)) calc(8px + var(--tomzal-safe-bottom,0px)) calc(10px + var(--tomzal-safe-left,0px))!important;
    background:#fff!important;
    border-top:1px solid #dce3ec!important;
    box-shadow:none!important;
  }

  .client-sign-screen>footer .btn,
  .client-contract-review-layer.is-signing .client-sign-screen>footer .btn{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    margin:0!important;
  }
}

/* CRM DEMO 5.0.22 — blokada przenikania dotyku podczas przejścia do karty klienta. */
.customer-open-transition-shield{position:fixed;inset:0;z-index:5999;background:transparent;pointer-events:auto;touch-action:none}

/* CRM DEMO 5.0.27 — Podgląd klienta widoczny od razu w landscape.
   Nie polegamy na :has(), którego Android WebView nie zawsze przelicza po
   asynchronicznym podmienieniu zawartości modala. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none) {
  #modal.modal.modal-customer-preview:not(.hidden){
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    position:fixed!important;
    top:var(--tomzal-safe-top,env(safe-area-inset-top,0px))!important;
    right:var(--tomzal-safe-right,env(safe-area-inset-right,0px))!important;
    bottom:var(--tomzal-safe-bottom,env(safe-area-inset-bottom,0px))!important;
    left:var(--tomzal-safe-left,env(safe-area-inset-left,0px))!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    padding:0!important;
    overflow:hidden!important;
    pointer-events:auto!important;
    z-index:6000!important;
  }
  #modal.modal.modal-customer-preview:not(.hidden)>.modal-card{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    margin:0!important;
    transform:none!important;
    overflow:hidden!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  #modal.modal.modal-customer-preview:not(.hidden) .modal-head{
    padding:10px 14px!important;
  }
  #modal.modal.modal-customer-preview:not(.hidden) #modalBody{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    flex:1 1 auto!important;
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #modal.modal.modal-customer-preview:not(.hidden) .customer-preview-loading,
  #modal.modal.modal-customer-preview:not(.hidden) .customer-preview{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
}
.customer-photo-drop{display:grid;place-items:center;gap:8px;margin:0 0 16px;padding:24px;border:2px dashed #b7c3d3;border-radius:16px;background:#f8fafc;text-align:center;transition:.18s ease}.customer-photo-drop span,.customer-photo-drop small{color:#64748b}.customer-photo-drop.is-dragging{border-color:#c9972e;background:#fff8e8;transform:scale(1.01)}.customer-photo-drop .btn{margin-top:4px}.contract-draft-row{background:#fffaf0}.contract-draft-row td:first-child{border-left:4px solid #d5a542}
.customer-photo-gallery .archive-photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,160px));justify-content:start;align-items:start}.customer-photo-card{position:relative;display:grid;min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.customer-photo-card .archive-photo-thumb{width:100%;border:0;border-radius:0}.customer-photo-card .archive-photo-thumb img{height:112px;aspect-ratio:auto}.customer-photo-card .customer-photo-delete{position:absolute;z-index:2;top:5px;right:5px;display:grid;place-items:center;width:27px;height:27px;padding:0;border:2px solid #fff;border-radius:50%;background:#dc2626;color:#fff;font-size:18px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 2px 8px #0005}.customer-photo-card .customer-photo-delete:hover{background:#b91c1c;transform:scale(1.06)}
@media(max-width:600px){.customer-photo-gallery .archive-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.customer-photo-card .archive-photo-thumb{padding:5px}.customer-photo-card .archive-photo-thumb img{height:auto;aspect-ratio:1/1}.customer-photo-card .archive-photo-thumb span{font-size:10px}.customer-photo-card .archive-photo-thumb small{font-size:9px}.customer-photo-card .customer-photo-delete{top:4px;right:4px;width:25px;height:25px;font-size:17px}}
.appointment-conflict-overlay{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:16px;background:rgba(8,15,27,.76);backdrop-filter:blur(6px)}.appointment-conflict-alert{width:min(94vw,620px);max-height:92vh;overflow:auto;padding:26px;border:3px solid #ef4444;border-radius:22px;background:#fff;color:#172033;box-shadow:0 24px 70px rgba(0,0,0,.38);text-align:center}.appointment-conflict-symbol{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:#dc2626;color:#fff;font-size:40px;font-weight:950}.appointment-conflict-alert h3{margin:0 0 8px;color:#b91c1c;font-size:25px}.appointment-conflict-lead{margin:0 auto 18px;max-width:500px;font-size:17px;font-weight:750}.appointment-conflict-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.appointment-conflict-details div{padding:12px 14px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7}.appointment-conflict-details span{display:block;margin-bottom:3px;color:#7f1d1d;font-size:11px;font-weight:850;text-transform:uppercase}.appointment-conflict-details b{font-size:16px}.appointment-conflict-fix{margin:16px 0 0;padding:13px;border-radius:12px;background:#fff4cc;color:#713f12;text-align:left}.appointment-conflict-alert .modal-actions{justify-content:center;margin-top:16px}
.zoom-image-viewer{display:flex;flex-direction:column;gap:10px;min-height:min(72vh,720px)}.zoom-image-stage{position:relative;display:grid;place-items:center;flex:1;min-height:300px;overflow:hidden;border-radius:14px;background:#101722;touch-action:none;cursor:zoom-in;user-select:none}.zoom-image-stage.is-zoomed{cursor:grab}.zoom-image-stage.is-zoomed:active{cursor:grabbing}.zoom-image-stage img{display:block;max-width:100%;max-height:72vh;object-fit:contain;transform-origin:center;will-change:transform;transition:transform .06s linear}.zoom-image-stage.has-error img{display:none}.zoom-image-error{display:none;color:#fff}.zoom-image-stage.has-error .zoom-image-error{display:block}.zoom-image-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.zoom-image-toolbar>span{color:#64748b;font-size:12px}.zoom-image-toolbar [data-zoom-in],.zoom-image-toolbar [data-zoom-out]{min-width:46px;font-size:22px}.zoom-image-level{min-width:72px}@media(max-width:600px){.appointment-conflict-alert{padding:18px}.appointment-conflict-details{grid-template-columns:1fr}.zoom-image-viewer{min-height:68vh}.zoom-image-stage{min-height:240px}.zoom-image-toolbar>span{width:100%;text-align:center}}
/* Podgląd i ekrany podpisów muszą zawsze leżeć nad popupem edycji umowy. */
.client-contract-review-layer,.client-contract-review-layer.is-signing{position:fixed!important;z-index:2147483647!important;isolation:isolate!important;pointer-events:auto!important}
.notebook-action-text{gap:7px!important}.notebook-text-icon{display:grid;place-items:center;width:22px;height:22px;border:2px solid currentColor;border-radius:5px;font:900 16px/1 Georgia,serif}.notebook-text-overlay{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;padding:16px;background:rgba(5,10,18,.76);backdrop-filter:blur(7px)}.notebook-text-dialog{display:flex;flex-direction:column;width:min(94vw,620px);max-height:min(92dvh,760px);overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.48)}.notebook-text-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:linear-gradient(180deg,#101c2f,#0c1728);color:#fff}.notebook-text-dialog header span{color:#e3b64d;font-size:10px;font-weight:900;letter-spacing:.12em}.notebook-text-dialog header h3{margin:2px 0 0;font-size:20px}.notebook-text-dialog header .icon-btn{background:#ffffff12;border-color:#ffffff25;color:#fff}.notebook-text-body{display:grid;gap:13px;overflow:auto;padding:18px}.notebook-text-body label{display:grid;gap:6px;font-weight:800}.notebook-text-body textarea,.notebook-text-body select{width:100%;border:1px solid #cfd8e5;border-radius:12px;background:#fff;padding:12px;font:inherit;outline:none}.notebook-text-body textarea{min-height:150px;resize:vertical;font-size:17px}.notebook-text-body textarea:focus,.notebook-text-body select:focus{border-color:#6d8cb6;box-shadow:0 0 0 4px #dce9f755}.notebook-text-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notebook-text-bold{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;gap:9px!important}.notebook-text-bold input{width:22px;height:22px}.notebook-text-body small{color:#64748b}.notebook-text-dialog footer{display:flex;justify-content:flex-end;gap:9px;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid #e5eaf1;background:#fff}@media(max-width:600px){.notebook-text-overlay{align-items:stretch;padding:0}.notebook-text-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0}.notebook-text-options{grid-template-columns:1fr}.notebook-text-dialog footer .btn{flex:1;min-width:0}.notebook-action-text span:last-child{display:none}}

/* CRM DEMO 5.1.6 — czytelne akcje tabel procesu na mniejszych ekranach. */
@media (min-width:701px) and (max-width:1600px){
  .workflow-grid{grid-template-columns:minmax(0,1fr)!important}
  .workflow-card .tablewrap,.workflow-card .workflow-tablewrap{overflow-x:hidden!important}
  .workflow-card .table,.workflow-card .workflow-table{width:100%!important;min-width:0!important;table-layout:fixed}
  .workflow-card .table th:nth-child(1),.workflow-card .table td:nth-child(1),
  .workflow-card .workflow-table th:nth-child(1),.workflow-card .workflow-table td:nth-child(1){width:24%!important}
  .workflow-card .table th:nth-child(2),.workflow-card .table td:nth-child(2),
  .workflow-card .workflow-table th:nth-child(2),.workflow-card .workflow-table td:nth-child(2){width:28%!important}
  .workflow-card .table th:nth-child(3),.workflow-card .table td:nth-child(3),
  .workflow-card .workflow-table th:nth-child(3),.workflow-card .workflow-table td:nth-child(3){width:25%!important;min-width:0!important}
  .workflow-card .table th:last-child,.workflow-card .table td:last-child,
  .workflow-card .workflow-table th:last-child,.workflow-card .workflow-table td:last-child{width:23%!important;min-width:190px!important}
  .workflow-card .workflow-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;min-width:0!important;width:100%}
  .workflow-card .workflow-actions .btn{width:100%!important;min-width:0!important;min-height:40px!important;padding:9px 10px!important;white-space:normal!important;line-height:1.15!important}
  .completed-workflow-card .workflow-actions{grid-template-columns:1fr!important}
}
@media (min-width:701px) and (max-width:950px){
  .workflow-card .workflow-actions{grid-template-columns:1fr!important}
  .workflow-card .table th:last-child,.workflow-card .table td:last-child,
  .workflow-card .workflow-table th:last-child,.workflow-card .workflow-table td:last-child{min-width:140px!important}
}

/* CRM DEMO 5.1.7 — pole tekstowe rysowane bezpośrednio na kartce. */
.notebook-text-tool-active{cursor:crosshair!important}
.notebook-select-tool-active{cursor:default!important}
.notebook-object-hover:not(.selected){filter:drop-shadow(0 0 3px rgba(37,99,235,.8))}
.notebook-text-object.notebook-object-hover:not(.selected){outline:2px solid rgba(37,99,235,.55);outline-offset:5px}
.notebook-shape-editor.notebook-object-hover:not(.selected):not(.is-linear){border-color:rgba(37,99,235,.65)!important}
.notebook-canvas-text-editor{position:absolute;z-index:40;display:block;min-width:0;min-height:0;overflow:visible;border:0;background:transparent;box-shadow:none;resize:none}
.notebook-text-formatbar{position:absolute;z-index:45;display:flex;align-items:center;gap:4px;width:max-content;max-width:min(680px,calc(100vw - 24px));min-height:38px;padding:4px;border-radius:9px;background:#132034;color:#fff;box-shadow:0 9px 26px rgba(15,23,42,.28);overflow-x:auto;overscroll-behavior:contain}
.notebook-text-formatbar[hidden]{display:none!important}.notebook-text-object.selected{outline:1px dashed #2563eb;outline-offset:2px}.notebook-text-object:not(.selected) textarea{cursor:pointer}.notebook-text-object.selected textarea{cursor:text}
.notebook-text-object:not(.selected),.notebook-shape-editor:not(.selected){pointer-events:none!important}
.notebook-text-formatbar select,.notebook-text-formatbar input,.notebook-text-formatbar button{flex:none;height:30px;min-width:30px;border:1px solid #ffffff35;border-radius:6px;background:#fff;color:#172033;font:700 12px/1 Arial,sans-serif}
.notebook-text-formatbar select[data-font]{width:105px}.notebook-text-formatbar select[data-align]{width:86px}.notebook-text-formatbar input[data-size]{width:52px;padding:0 5px}.notebook-text-formatbar input[data-color]{width:36px;padding:2px}.notebook-text-formatbar button{cursor:pointer}.notebook-text-formatbar button.active{background:#d8a93d;color:#111827;border-color:#f2ce75}.notebook-text-formatbar .text-editor-cancel{background:#ef4444;color:#fff}.notebook-text-drag{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:6px;background:#2563eb;font-weight:950;cursor:move}
.notebook-canvas-text-editor textarea{display:block;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;border:0;background:transparent;padding:0;outline:none;resize:none;line-height:1.25;white-space:pre-wrap;overflow-wrap:anywhere;caret-color:currentColor}
.notebook-text-resize{position:absolute;z-index:7;right:-7px;bottom:-7px;display:none;width:17px;height:17px;border:2px solid #fff;border-radius:4px;background:#2563eb;box-shadow:0 1px 5px #0005;cursor:nwse-resize;touch-action:none}.notebook-text-object.selected .notebook-text-resize{display:block}
@media(max-width:700px){.notebook-text-resize{right:-9px;bottom:-9px;width:21px;height:21px;border-radius:6px}}
@media(max-width:700px){.notebook-canvas-text-editor{min-width:0}.notebook-text-formatbar{gap:3px}.notebook-text-formatbar select[data-font]{width:88px}.notebook-text-formatbar select[data-align]{width:70px}}
.notebook-shape-editor{position:absolute;z-index:35;min-width:28px;min-height:28px;border:1px dashed #2563eb;background:transparent;touch-action:none;cursor:move}.notebook-shape-editor svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}.notebook-object-resize{position:absolute;right:-7px;bottom:-7px;width:16px;height:16px;border:2px solid #fff;border-radius:4px;background:#2563eb;box-shadow:0 1px 4px #0004;cursor:nwse-resize}.notebook-object-delete{position:absolute;right:-10px;top:-11px;display:grid;place-items:center;width:22px;height:22px;padding:0;border:2px solid #fff;border-radius:50%;background:#ef4444;color:#fff;font:900 14px/1 Arial,sans-serif;box-shadow:0 2px 5px #0004;cursor:pointer}.notebook-shape-editor:not(.selected){border-color:transparent}.notebook-shape-editor:not(.selected) .notebook-object-resize,.notebook-shape-editor:not(.selected) .notebook-object-delete{display:none}
.notebook-shape-editor[data-shape-type="line"] .notebook-object-resize,.notebook-shape-editor[data-shape-type="arrow"] .notebook-object-resize,.notebook-shape-editor[data-shape-type="doubleArrow"] .notebook-object-resize{top:50%;bottom:auto;transform:translateY(-50%);cursor:ew-resize}
.notebook-shape-editor.is-linear,.notebook-shape-editor.is-linear.selected{border-color:transparent!important;background:transparent!important}.notebook-shape-editor.is-linear .notebook-object-resize{transform:none;cursor:crosshair;border-radius:50%}

/* CRM DEMO 5.2.10 — kompaktowy notatnik i formatowanie tekstu na telefonie. */
@media (max-width:700px) and (orientation:portrait){
  .contract-notebook-tools{padding:3px 4px!important;max-height:46px!important;min-height:46px!important;overflow:visible!important}
  .notebook-mobile-toolbar{display:grid!important;grid-template-columns:repeat(10,minmax(0,1fr))!important;width:100%!important;min-height:38px!important;height:38px!important;margin:0!important;padding:3px!important;gap:2px!important;border-radius:15px!important}
  .notebook-mobile-tool{width:100%!important;min-width:0!important;height:32px!important;min-height:32px!important;padding:0!important;border-radius:10px!important}
  .notebook-mobile-tool .notebook-svg-icon svg{width:16px!important;height:16px!important}
  .notebook-mobile-tool .notebook-text-icon{width:19px!important;height:19px!important;font-size:13px!important;border-width:1.5px!important}
}
@media (max-width:700px){
  .notebook-canvas-text-editor{min-width:0!important;min-height:0!important}
  .notebook-text-formatbar{box-sizing:border-box!important;max-width:100%!important;min-height:32px!important;height:32px!important;padding:3px!important;gap:2px!important;border-radius:7px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none}
  .notebook-text-formatbar::-webkit-scrollbar{display:none}
  .notebook-text-formatbar select,.notebook-text-formatbar input,.notebook-text-formatbar button{height:26px!important;min-width:25px!important;border-radius:5px!important;font-size:10px!important;padding:0 3px!important}
  .notebook-text-formatbar select[data-font]{width:64px!important}
  .notebook-text-formatbar select[data-align]{width:50px!important}
  .notebook-text-formatbar input[data-size]{width:38px!important}
  .notebook-text-formatbar input[data-color]{width:27px!important;padding:2px!important}
  .notebook-text-drag{width:25px!important;height:25px!important;border-radius:5px!important;font-size:12px!important}
}


@media (max-width:700px){.customer-photo-source-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.customer-photo-source-actions .btn{width:100%;min-width:0;padding:9px 6px;font-size:12px}}

@media (max-width:1366px){
  .notebook-text-formatbar{box-sizing:border-box!important;width:240px!important;max-width:min(240px,calc(100vw - 18px))!important;padding:2px!important;border-radius:6px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important}
  .notebook-text-formatbar::-webkit-scrollbar{display:none!important}
  .notebook-text-formatbar select,.notebook-text-formatbar input,.notebook-text-formatbar button{height:24px!important;min-width:22px!important;padding:0 2px!important;border-radius:4px!important;font-size:9px!important}
  .notebook-text-formatbar select[data-font]{width:51px!important}
  .notebook-text-formatbar select[data-align]{width:38px!important}
  .notebook-text-formatbar input[data-size]{width:31px!important}
  .notebook-text-formatbar input[data-color]{width:24px!important;padding:2px!important}
  .notebook-text-drag{width:23px!important;height:23px!important;border-radius:4px!important;font-size:10px!important}
  .notebook-text-object.selected{outline-width:1px!important;touch-action:none}
}

/* CRM DEMO 5.2.12 — jeden minimalistyczny pasek tekstu na każdym ekranie. */
.notebook-text-formatbar{width:280px!important;max-width:calc(100vw - 16px)!important;height:30px!important;min-height:30px!important;padding:2px 4px!important;gap:2px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important}
.notebook-text-formatbar::-webkit-scrollbar{display:none!important}
.notebook-text-formatbar input[type="hidden"]{display:none!important}
.notebook-text-formatbar select{display:none!important}
.notebook-text-formatbar input[data-size]{width:32px!important;min-width:32px!important;height:26px!important;padding:0 2px!important;font-size:10px!important}
.notebook-text-formatbar button{width:24px!important;min-width:24px!important;height:26px!important;padding:0!important;font-size:10px!important}
.notebook-text-formatbar input[data-color]{width:25px!important;min-width:25px!important;height:26px!important;padding:2px!important}
.notebook-text-formatbar .notebook-text-drag{width:24px!important;min-width:24px!important;height:26px!important;font-size:10px!important}
.notebook-align-btn svg{display:block;width:16px;height:16px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.notebook-align-btn.active{background:#d8a93d!important;color:#111827!important;border-color:#f2ce75!important}
@media (max-width:1366px){.notebook-text-formatbar{width:250px!important;max-width:calc(100vw - 12px)!important;height:28px!important;min-height:28px!important;gap:1px!important}.notebook-text-formatbar button{width:22px!important;min-width:22px!important;height:24px!important}.notebook-text-formatbar .notebook-text-drag{width:22px!important;min-width:22px!important;height:24px!important}.notebook-text-formatbar input[data-size]{width:40px!important;min-width:40px!important;height:24px!important}.notebook-text-formatbar input[data-color]{width:23px!important;min-width:23px!important;height:24px!important}}

/* CRM DEMO 5.2.15 — aparat i galeria pod jednym przyciskiem. */
.contract-scope-actions{position:relative}
.contract-photo-source-menu{position:absolute;z-index:120;top:calc(100% + 7px);right:0;display:grid;gap:6px;width:210px;padding:7px;border:1px solid #dce3ec;border-radius:13px;background:#fff;box-shadow:0 14px 38px rgba(15,23,42,.22)}
.contract-photo-source-menu .btn{width:100%;min-width:0;justify-content:flex-start;white-space:nowrap}
@media(max-width:700px){.contract-photo-source-menu{position:fixed;left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 24px));padding:16px;gap:12px;border:1px solid #ffffff55;border-radius:22px;z-index:2147483500;box-shadow:0 0 0 100vmax rgba(3,8,18,.58),0 24px 70px rgba(0,0,0,.48)}.contract-photo-source-menu::before{content:'Dodaj zdjęcie';display:block;padding:2px 3px 5px;color:#172033;font-size:18px;font-weight:900;text-align:center}.contract-photo-source-menu .btn{min-height:62px;justify-content:center;border-radius:15px;font-size:16px;font-weight:900}}

/* CRM DEMO 5.2.18 — układ według rodzaju urządzenia, nie samej rozdzielczości. */
html.crm-mobile-device .shell{display:block!important}
html.crm-mobile-device .side{display:none!important}
html.crm-mobile-device .mobilebar{display:grid!important;grid-template-columns:repeat(6,1fr)!important;position:fixed!important;left:0!important;right:0!important;bottom:0!important;height:64px!important;padding-bottom:env(safe-area-inset-bottom,0px)!important;background:#0b1220!important;border:0!important;z-index:20!important;box-shadow:0 -4px 18px rgba(0,0,0,.22)!important}
html.crm-mobile-device .mobilebar button{height:64px!important;border:0!important;background:#0b1220!important;color:#94a3b8!important;padding:7px 1px 5px!important;font-size:10px!important}
html.crm-mobile-device .mobilebar button.active{color:#fff!important;background:#152238!important;font-weight:850!important}
html.crm-mobile-device .mobilebar button div{font-size:18px!important;line-height:1.1!important}
html.crm-mobile-device .mobilebar button span{display:block!important;line-height:1.1!important;margin-top:3px!important}
html.crm-mobile-device .mobile-menu:not(.hidden){position:fixed!important;inset:0!important;display:grid!important;align-items:end!important;background:#0f172a99!important;z-index:50!important}
html.crm-mobile-device .mobile-menu-card{background:#fff!important;border-radius:22px 22px 0 0!important;padding:18px 14px calc(18px + env(safe-area-inset-bottom,0px))!important;max-height:85vh!important;overflow:auto!important}
html.crm-mobile-device .top{height:66px!important;padding-left:14px!important;padding-right:14px!important}
html.crm-mobile-device .content{padding:14px 12px calc(84px + env(safe-area-inset-bottom,0px))!important}
html.crm-mobile-device .quick-add{width:42px!important;height:42px!important;padding:0!important}
html.crm-mobile-device .quick-add b{display:none!important}
html.crm-mobile-device .welcome-actions{display:none!important}
html.crm-mobile-device .cards,html.crm-mobile-device .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
html.crm-mobile-device .workflow-grid{grid-template-columns:1fr!important}
html.crm-mobile-device .content{max-width:none!important}

@media(max-width:1366px){
  html.crm-desktop-device body{padding:0!important;margin:0!important;overflow-x:hidden!important}
  html.crm-desktop-device .shell{display:grid!important;grid-template-columns:258px minmax(0,1fr)!important;min-height:100vh!important;width:100%!important;margin:0!important;padding:0!important}
  html.crm-desktop-device .side{display:block!important;position:sticky!important;top:0!important;left:auto!important;width:auto!important;height:100vh!important;padding:20px 16px!important;transform:none!important}
  html.crm-desktop-device .main{display:block!important;width:auto!important;min-width:0!important;margin:0!important;padding:0!important}
  html.crm-desktop-device .top{height:78px!important;min-height:78px!important;padding:0 26px!important;position:sticky!important;top:0!important}
  html.crm-desktop-device .top h2{font-size:22px!important}
  html.crm-desktop-device .quick-add{width:auto!important;height:auto!important;min-height:42px!important;padding:10px 14px!important}
  html.crm-desktop-device .quick-add b{display:inline!important}
  html.crm-desktop-device .content{width:100%!important;max-width:1720px!important;margin:0 auto!important;padding:26px!important}
  html.crm-desktop-device .mobilebar{display:none!important}
  html.crm-desktop-device .mobile-menu.hidden{display:none!important}
  html.crm-desktop-device .welcome-actions{display:flex!important}
  html.crm-desktop-device .cards{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:15px!important}
  html.crm-desktop-device .action-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  html.crm-desktop-device .employee-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  html.crm-desktop-device .workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.crm-desktop-device .grid2{grid-template-columns:1fr 1fr!important}
  html.crm-desktop-device .full{grid-column:1/-1!important}
  html.crm-desktop-device .calendar-toolbar>.btn{display:inline-flex!important}
  html.crm-desktop-device .calendar{min-width:0!important}
  html.crm-desktop-device .day{min-height:145px!important}
}
@media(max-width:1150px){html.crm-desktop-device .cards,html.crm-desktop-device .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}html.crm-desktop-device .employee-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* CRM DEMO 5.2.19 — komputer nie dziedziczy białych pasów safe-area. */
html.crm-desktop-device{--tomzal-safe-top:0px!important;--tomzal-safe-right:0px!important;--tomzal-safe-bottom:0px!important;--tomzal-safe-left:0px!important}
html.crm-desktop-device body::before,html.crm-desktop-device body::after,html.crm-desktop-device #app::before,html.crm-desktop-device #app::after{display:none!important;content:none!important;width:0!important;height:0!important}
html.crm-desktop-device #app{width:100%!important;min-height:100vh!important;margin:0!important;padding:0!important;background:var(--bg)!important}
html.crm-desktop-device .shell{height:auto!important;max-height:none!important;padding:0!important}
html.crm-desktop-device .side{bottom:auto!important;min-height:100vh!important;max-height:100vh!important;margin:0!important;border-radius:0!important}

/* CRM DEMO 5.4.42 — CSS module: 80-mobile-navigation.css
   Nawigacja mobilna, menu, popupy i dopasowanie małych ekranów.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* CRM DEMO 5.2.20 — dolna nawigacja zawsze widoczna w pionie na mobile. */
@media(orientation:portrait){
  html.crm-mobile-device body:not(.tomzal-modal-open):not(.tomzal-menu-open):not(.notebook-open) .mobilebar{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:max(env(safe-area-inset-bottom,0px),var(--tomzal-safe-bottom,0px))!important;
    width:100%!important;
    min-width:100%!important;
    height:64px!important;
    min-height:64px!important;
    max-height:64px!important;
    margin:0!important;
    transform:none!important;
    clip:auto!important;
    overflow:visible!important;
    z-index:2147482000!important;
  }
  html.crm-mobile-device .content{padding-bottom:calc(86px + max(env(safe-area-inset-bottom,0px),var(--tomzal-safe-bottom,0px)))!important}
}

/* CRM DEMO 5.2.22 — prawdziwy komputer zawsze używa interfejsu desktopowego. */
@media(max-width:700px){
  html.crm-desktop-device body{font-size:14px!important}
  html.crm-desktop-device .mobilebar{display:none!important}
  html.crm-desktop-device .toolbar{display:flex!important;grid-template-columns:none!important;align-items:center!important}
  html.crm-desktop-device .toolbar .btn,html.crm-desktop-device .toolbar input,html.crm-desktop-device .toolbar select{width:auto!important}
  html.crm-desktop-device .toolbar input{min-width:270px!important}
  html.crm-desktop-device .tablewrap{display:block!important;overflow:auto!important;border:1px solid var(--line)!important}
  html.crm-desktop-device .table{display:table!important;width:100%!important}
  html.crm-desktop-device .table thead{display:table-header-group!important}
  html.crm-desktop-device .table tbody{display:table-row-group!important}
  html.crm-desktop-device .table tr{display:table-row!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important}
  html.crm-desktop-device .table th,html.crm-desktop-device .table td{display:table-cell!important;width:auto!important}
  html.crm-desktop-device .table td{border-bottom:1px solid var(--line)!important;padding:13px 14px!important}
  html.crm-desktop-device .table td:last-child{display:table-cell!important;border-top:0!important}
  html.crm-desktop-device .modal{display:grid!important;place-items:center!important;padding:18px!important}
  html.crm-desktop-device .modal.hidden{display:none!important}
  html.crm-desktop-device .modal-card{width:min(880px,100%)!important;max-height:92vh!important;border-radius:22px!important;padding:21px!important}
  html.crm-desktop-device .modal-actions{position:static!important;margin-top:18px!important;padding:15px 0 0!important;background:transparent!important}
  html.crm-desktop-device .calendar{display:grid!important;grid-template-columns:repeat(7,1fr)!important;min-width:760px!important}
  html.crm-desktop-device .dow{display:block!important}
  html.crm-desktop-device .day{display:block!important;min-height:145px!important;border-radius:0!important;margin:0!important}
  html.crm-desktop-device .day.other{display:block!important}
  html.crm-desktop-device .page-head{display:flex!important}
  html.crm-desktop-device .page-actions{display:flex!important;width:auto!important}
  html.crm-desktop-device .page-actions .btn{width:auto!important}
}

/* Ostateczne wymuszenie 5.2.23 musi być ostatnie: starsze media queries nie mogą skrócić panelu. */
html.crm-desktop-device body{background:linear-gradient(90deg,#0c1728 0,#0c1728 258px,var(--bg) 258px,var(--bg) 100%)!important}
html.crm-desktop-device .shell{display:block!important;width:100%!important;min-height:100vh!important;min-height:100dvh!important}
html.crm-desktop-device .side{
  display:flex!important;
  flex-direction:column!important;
  position:fixed!important;
  top:0!important;
  right:auto!important;
  bottom:0!important;
  left:0!important;
  width:258px!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  padding:20px 16px!important;
  background:linear-gradient(180deg,#101c2f 0%,#0c1728 100%)!important;
  z-index:30!important;
}
html.crm-desktop-device .side .app-brand{flex:0 0 auto!important}
html.crm-desktop-device .side nav{flex:1 1 auto!important;min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important}
html.crm-desktop-device .side-user{position:static!important;inset:auto!important;flex:0 0 auto!important;width:100%!important;min-width:0!important;margin-top:10px!important}
html.crm-desktop-device .main{display:block!important;width:calc(100% - 258px)!important;min-width:0!important;min-height:100vh!important;min-height:100dvh!important;margin:0 0 0 258px!important;background:var(--bg)!important}

/* CRM DEMO 5.2.24 — czytelne przyciski tabel procesu na mniejszych monitorach. */
@media(max-width:1500px){
  html.crm-desktop-device .workflow-grid{grid-template-columns:minmax(0,1fr)!important}
  html.crm-desktop-device .workflow-card .tablewrap,
  html.crm-desktop-device .workflow-card .workflow-tablewrap{overflow-x:auto!important}
  html.crm-desktop-device .workflow-card .table,
  html.crm-desktop-device .workflow-card .workflow-table{width:100%!important;min-width:720px!important;table-layout:auto!important}
  html.crm-desktop-device .workflow-card .workflow-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
    gap:8px!important;
    width:100%!important;
    min-width:210px!important;
  }
  html.crm-desktop-device .workflow-card .workflow-actions .btn{
    flex:1 1 98px!important;
    width:auto!important;
    min-width:98px!important;
    min-height:40px!important;
    padding:9px 10px!important;
    white-space:normal!important;
    line-height:1.15!important;
  }
}

/* CRM DEMO 5.2.26 — jednakowa wysokość menu dla każdej roli. */
html.crm-desktop-device .side nav{
  display:grid!important;
  grid-auto-rows:max-content!important;
  align-content:start!important;
  justify-content:stretch!important;
  gap:5px!important;
}
html.crm-desktop-device .side nav>.nav{
  height:46px!important;
  min-height:46px!important;
  max-height:46px!important;
  padding:8px 12px!important;
  flex:none!important;
}

/* CRM DEMO 5.2.28 — czytelniejszy pasek tekstu na telefonie. */
@media(max-width:700px){
  .notebook-text-formatbar{
    width:295px!important;
    max-width:calc(100vw - 8px)!important;
    height:34px!important;
    min-height:34px!important;
    padding:3px!important;
    gap:1px!important;
  }
  .notebook-text-formatbar button,
  .notebook-text-formatbar input[data-color]{
    width:26px!important;
    min-width:26px!important;
    height:28px!important;
    min-height:28px!important;
    font-size:12px!important;
  }
  .notebook-text-formatbar .notebook-text-drag{
    width:26px!important;
    min-width:26px!important;
    height:28px!important;
    font-size:12px!important;
  }
  .notebook-text-formatbar input[data-size]{
    display:block!important;
    width:40px!important;
    min-width:40px!important;
    height:28px!important;
    padding:0 4px!important;
    font-size:12px!important;
    line-height:28px!important;
    text-align:center!important;
  }
}

/* CRM DEMO 5.2.46 — jednolite popupy na prawdziwych komputerach.
   Desktop nie przechodzi już w mobilny bottom-sheet/fullscreen tylko dlatego,
   że okno przeglądarki ma małą szerokość. Wersja mobilna pozostaje zależna
   od klasy crm-mobile-device ustawianej przez detekcję urządzenia. */
html.crm-desktop-device #modal.modal:not(.hidden){
  position:fixed!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  display:grid!important;
  place-items:center!important;
  align-items:center!important;
  justify-content:center!important;
  padding:clamp(12px,2vw,28px)!important;
  margin:0!important;
  overflow:hidden!important;
  background:rgba(15,23,42,.66)!important;
  backdrop-filter:blur(5px)!important;
}
html.crm-desktop-device #modal.modal.hidden{display:none!important}
html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card{
  position:relative!important;
  inset:auto!important;
  display:flex!important;
  flex-direction:column!important;
  width:min(880px,calc(100vw - 32px))!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:880px!important;
  max-height:calc(100dvh - 32px)!important;
  margin:auto!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 30px 100px rgba(0,0,0,.34)!important;
  transform:none!important;
}
html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card>.modal-head{
  position:relative!important;
  inset:auto!important;
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  width:100%!important;
  min-height:64px!important;
  margin:0!important;
  padding:14px 18px!important;
  background:#fff!important;
  border-bottom:1px solid var(--line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  z-index:5!important;
}
html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card>.modal-head h3{
  min-width:0!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card>#modalBody{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  padding:18px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:auto!important;
  overscroll-behavior:contain!important;
  touch-action:auto!important;
  background:#fff!important;
}
html.crm-desktop-device #modal.modal:not(.hidden) .modal-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .customer-form-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .message-compose-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .message-compose-inline-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .gallery-upload-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .customer-preview-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .contract-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .dialog-actions,
html.crm-desktop-device #modal.modal:not(.hidden) .popup-actions,
html.crm-desktop-device #modal.modal:not(.hidden) [class*="footer-actions"]{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  margin:18px 0 0!important;
  padding:14px 0 0!important;
  background:transparent!important;
  border-top:1px solid var(--line)!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* Większe desktopowe dialogi zachowują wspólną geometrię, ale dostają
   sensowną szerokość roboczą zamiast mobilnego fullscreena. */
html.crm-desktop-device #modal.modal-contract-editor:not(.hidden)>.modal-card{
  width:min(1180px,calc(100vw - 32px))!important;
  max-width:1180px!important;
  height:auto!important;
  max-height:calc(100dvh - 32px)!important;
  border-radius:22px!important;
}
html.crm-desktop-device #modal.modal-contract-receipt:not(.hidden)>.modal-card,
html.crm-desktop-device #modal.modal-message-compose:not(.hidden)>.modal-card{
  width:min(720px,calc(100vw - 32px))!important;
  max-width:720px!important;
  height:auto!important;
  max-height:calc(100dvh - 32px)!important;
  border-radius:22px!important;
}
html.crm-desktop-device #modal.modal-contract-pdf-choice:not(.hidden)>.modal-card{
  width:min(560px,calc(100vw - 32px))!important;
  max-width:560px!important;
  height:auto!important;
  max-height:calc(100dvh - 32px)!important;
  margin:auto!important;
  border-radius:22px!important;
  transform:none!important;
}

/* Bardzo niski ekran komputera: nadal klasyczny popup, tylko z mniejszym
   marginesem i przewijanym środkiem. Nigdy mobilny arkusz od dołu. */
@media(max-height:620px){
  html.crm-desktop-device #modal.modal:not(.hidden){padding:8px!important}
  html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card,
  html.crm-desktop-device #modal.modal-contract-editor:not(.hidden)>.modal-card,
  html.crm-desktop-device #modal.modal-contract-receipt:not(.hidden)>.modal-card,
  html.crm-desktop-device #modal.modal-message-compose:not(.hidden)>.modal-card,
  html.crm-desktop-device #modal.modal-contract-pdf-choice:not(.hidden)>.modal-card{
    max-height:calc(100dvh - 16px)!important;
  }
  html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card>.modal-head{
    min-height:54px!important;
    padding:10px 14px!important;
  }
  html.crm-desktop-device #modal.modal:not(.hidden)>.modal-card>#modalBody{padding:14px!important}
}

/* CRM DEMO 5.2.50 — miniatury zdjęć w Podglądzie klienta jak w galerii.
   Nie pozwalaj pojedynczemu zdjęciu rozciągać się na całą szerokość sekcji. */
.customer-preview > .customer-preview-section .archive-photo-grid,
.customer-preview .customer-preview-section[data-customer-section="4"] .archive-photo-grid{
  grid-template-columns:repeat(auto-fill,minmax(120px,160px))!important;
  justify-content:start!important;
  align-items:start!important;
}
.customer-preview > .customer-preview-section .archive-photo-thumb,
.customer-preview .customer-preview-section[data-customer-section="4"] .archive-photo-thumb{
  width:100%!important;
  min-width:0!important;
}
@media(max-width:600px){
  .customer-preview > .customer-preview-section .archive-photo-grid,
  .customer-preview .customer-preview-section[data-customer-section="4"] .archive-photo-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .customer-preview > .customer-preview-section .archive-photo-thumb,
  .customer-preview .customer-preview-section[data-customer-section="4"] .archive-photo-thumb{
    padding:5px!important;
  }
  .customer-preview > .customer-preview-section .archive-photo-thumb span,
  .customer-preview .customer-preview-section[data-customer-section="4"] .archive-photo-thumb span{
    font-size:10px!important;
  }
}


/* CRM DEMO 5.2.50 — Podgląd klienta: bezpieczne informacje o pracownikach */
.customer-preview-person{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.35}
.customer-preview-person b{display:inline;color:var(--text);font-size:inherit}
.customer-preview-photo-author{display:block;margin-top:3px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-preview-work-list{display:grid;gap:8px}
.customer-preview-work{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;background:var(--soft);border-radius:12px}
.customer-preview-work-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--card);font-size:18px}
.customer-preview-work>div:nth-child(2){display:grid;gap:2px;min-width:0}
.customer-preview-work>div:nth-child(2)>span,.customer-preview-work>div:nth-child(2)>small{color:var(--muted);font-size:12px}
.customer-preview-work>div:nth-child(2)>small strong{color:var(--text)}
@media(max-width:700px){.customer-preview-work{grid-template-columns:34px minmax(0,1fr)}.customer-preview-work>.badge{grid-column:2;justify-self:start}.customer-preview-work-icon{width:34px;height:34px}}

/* 5.2.54 — mobile logout always above bottom navigation/system safe area */
@media(max-width:1366px){
  .mobile-menu-card{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))!important;scroll-padding-bottom:110px!important;max-height:min(92dvh,calc(100dvh - env(safe-area-inset-top,0px)))!important}
  .mobile-menu-card>.danger-link{margin-bottom:8px!important;position:relative;z-index:2}
}

/* CRM DEMO 5.2.56 — mobile menu: Wyloguj zawsze widoczne, dolna belka nie przykrywa menu */
html.crm-mobile-device body.tomzal-menu-open .mobilebar{display:none!important;visibility:hidden!important;pointer-events:none!important}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu{inset:var(--tomzal-safe-top,0px) 0 var(--tomzal-safe-bottom,0px) 0!important;z-index:2147483000!important}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card{max-height:100%!important;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card>.danger-link{display:flex!important;visibility:visible!important;min-height:52px!important;margin-bottom:max(8px,env(safe-area-inset-bottom,0px))!important;flex:none!important}

/* CRM DEMO 5.2.57 — pełne tło paska formatowania tekstu, łącznie z przyciskiem ×. */
.notebook-text-formatbar .text-editor-cancel{flex:0 0 24px!important;width:24px!important;min-width:24px!important;margin-right:0!important}

/* CRM DEMO 5.2.61 — przycisk Usuń produktu: tekst zawsze mieści się w przycisku. */
.contract-product-row .contract-product-remove{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:78px!important;
  width:auto!important;
  max-width:100%!important;
  min-height:42px!important;
  height:auto!important;
  padding:10px 14px!important;
  line-height:1.1!important;
  font-size:14px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.contract-product-row .contract-product-remove:after{content:none!important;display:none!important}
@media(max-width:1100px){
  .contract-product-row .contract-product-remove{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    font-size:14px!important;
  }
}


/* CRM DEMO 5.2.65 — produkty w umowie: osobna pełna kolumna na przycisk Usuń.
   Wcześniej desktopowa kolumna miała 46–48 px, a przycisk min. 78 px,
   więc wychodził poza siatkę i niemal dotykał prawej krawędzi karty. */
@media (min-width:851px){
  #modal.modal-contract-editor .contract-product-row{
    grid-template-columns:
      minmax(230px,1.65fr)
      minmax(100px,.65fr)
      minmax(125px,.75fr)
      minmax(78px,.45fr)
      minmax(210px,1.25fr)
      minmax(84px,84px)!important;
    column-gap:12px!important;
    padding-right:18px!important;
  }
  #modal.modal-contract-editor .contract-product-row .contract-product-remove{
    width:78px!important;
    min-width:78px!important;
    max-width:78px!important;
    justify-self:end!important;
    margin-right:0!important;
  }
}

/* CRM DEMO 5.2.66 — lista podpowiedzi produktów zawsze pionowo. */
.contract-suggestion-list{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  gap:6px!important;
  width:100%!important;
}
.contract-suggestion-list .btn{
  width:100%!important;
  min-height:46px!important;
  justify-content:flex-start!important;
  text-align:left!important;
  white-space:normal!important;
  line-height:1.3!important;
  padding:10px 14px!important;
}
.contract-suggestion-popover{
  min-width:min(420px,calc(100vw - 32px))!important;
}
@media(max-width:700px){
  .contract-suggestion-popover{
    width:min(94vw,420px)!important;
    min-width:0!important;
  }
}

/* CRM DEMO 5.2.75 — podgląd hasła podczas logowania */
.login-password-wrap{position:relative;display:flex;align-items:center;width:100%}
.login-password-wrap>input{width:100%!important;padding-right:48px!important}
.login-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;touch-action:manipulation}
.login-password-toggle:hover,.login-password-toggle:focus-visible,.login-password-toggle.is-visible{background:var(--soft);color:var(--text)}
.login-password-toggle svg{width:21px;height:21px;display:block}
@media(max-width:700px){.login-password-toggle{width:40px;height:40px;right:4px}.login-password-wrap>input{padding-right:50px!important}}

/* CRM DEMO 5.4.42 — CSS module: 90-workflows-current.css
   Nowsze workflow, klient, kalendarz, produkty oraz aktualne nadpisania.
   UWAGA: kolejność ładowania modułów jest częścią kaskady CSS. */
/* 5.2.76 — Notatka klienta -> produkty -> umowa */
.customer-note-products{grid-column:1/-1}
.customer-note-products>.contract-products-card{margin-top:6px}
.customer-note-form .customer-note-intro{margin-bottom:4px}
.customer-note-form .customer-note-intro span{display:block;margin-top:4px}

/* 5.2.77 — faktyczne zakończenie wizyt i Plan na dziś */
.today-plan-item.is-completed{opacity:.48;filter:saturate(.35);background:rgba(248,250,252,.78)}
.today-plan-item.is-completed .today-plan-main>b,.today-plan-item.is-completed .today-plan-main>span{text-decoration:line-through;text-decoration-thickness:1.5px}
.today-plan-item.is-completed .today-plan-time{opacity:.72}
.today-done-label{display:inline-flex;margin-top:5px;font-style:normal;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#667085}
.installation-payment-choice .radio-line{display:flex;align-items:center;gap:9px;margin:11px 0;font-weight:700}
.installation-payment-choice .radio-line input{width:auto}
.pending-payment-report{display:block;margin-top:5px;padding:5px 8px;border-radius:7px;background:#fff8e8;color:#8a5a00;font-style:normal;font-size:11px;font-weight:800}

/* 5.2.78 — osobna zakładka Zrealizowane dla admina */
.completed-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:4px 0 16px}.completed-admin-head h2{margin:3px 0 5px}.completed-admin-head p{margin:0;color:var(--muted)}.completed-admin-search{padding:14px 16px;margin-bottom:14px}.completed-admin-search .field{margin:0}.completed-admin-table td{vertical-align:top}.completed-admin-table .hidden{display:none!important}.completed-admin-table th:nth-child(1){min-width:190px}.completed-admin-table th:nth-child(2){min-width:170px}.completed-admin-table th:nth-child(3){min-width:190px}.completed-admin-table th:nth-child(4){min-width:180px}.completed-admin-table th:nth-child(5){min-width:150px}@media(max-width:900px){.completed-admin-head{align-items:center}.completed-admin-table{min-width:1050px}.completed-admin-search input{font-size:16px}}

/* 5.2.81 — Inne sprawy także w kalendarzu */
.calendar-task-event{background:color-mix(in srgb,var(--staff-color,#122033) 10%,#fff);border-left:4px solid var(--staff-color,#122033)!important}
.calendar-task-event .event-time{color:var(--staff-color,#122033);font-weight:800}
.calendar-task-event.is-completed{opacity:.48;filter:saturate(.55)}
.calendar-task-event.is-completed b{text-decoration:line-through}
.today-plan-task:not(.is-completed){border-left-color:var(--staff-color,#122033)!important}
.task-due-form .form-intro{margin-bottom:16px}

/* 5.2.82 — sprawy jako zajętość pracownika przy ustalaniu terminu */
.worker-card .worker-task-busy-label{display:none;font-style:normal;font-size:11px;font-weight:800;color:#a13b2f;margin-top:3px}
.worker-card.task-busy{outline:2px solid rgba(180,70,50,.28);background:rgba(180,70,50,.06)}
.worker-card.task-busy .worker-task-busy-label{display:block}
.appointment-task-busy{grid-column:1/-1;margin-top:10px}
.appointment-task-busy:empty{display:none}
.appointment-task-busy-head{padding:11px 13px;background:#fff7df;border:1px solid #ecd596;border-radius:12px;margin-bottom:7px}
.appointment-task-busy-head b,.appointment-task-busy-head span{display:block}.appointment-task-busy-head span{font-size:12px;margin-top:3px;color:var(--muted)}
.appointment-task-busy-row{display:flex;gap:12px;align-items:center;padding:9px 12px;border:1px solid var(--border);border-radius:10px;margin-top:6px;background:var(--surface)}
.appointment-task-busy-row>strong{min-width:42px}.appointment-task-busy-row span b,.appointment-task-busy-row span small{display:block}.appointment-task-busy-row span small{color:var(--muted);margin-top:2px}


/* 5.2.96 — mobilny wybór opcji zawsze ponad potwierdzeniem odbioru/podpisami. */
.mobile-select-layer{z-index:2147483647!important;isolation:isolate!important;pointer-events:auto!important}
body.mobile-select-open .mobile-select-layer{z-index:2147483647!important}
body.mobile-select-open .client-contract-review-layer{z-index:2147483600!important}
body.mobile-select-open .mobile-select-backdrop,
body.mobile-select-open .mobile-select-sheet{pointer-events:auto!important}
@media (max-width:1400px) and (pointer:coarse){
  body.mobile-select-open .mobile-select-layer{z-index:2147483647!important}
  body.mobile-select-open .client-contract-review-layer{z-index:2147483500!important}
}

/* 5.3.1 — historia kalendarza przez 65 dni */
.calendar-history-event{opacity:.62;filter:saturate(.55);cursor:default!important}.calendar-history-event:hover{transform:none!important;box-shadow:none!important}.calendar-history-event .event-time{font-weight:900}.calendar-history-card h3{margin:12px 0}.calendar-history-card .small{margin-top:16px;padding:10px 12px;border-radius:10px;background:#f8fafc;color:var(--muted)}

/* 5.3.24 — rozmowy grupowe + prywatność wiadomości */
.message-recipient-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.message-recipient-head>label{margin:0}.message-select-all{min-height:34px;padding:6px 10px}.message-recipient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:270px;overflow:auto;padding:3px}.message-recipient-option{display:block;margin:0!important;cursor:pointer}.message-recipient-option>input{position:absolute;opacity:0;pointer-events:none}.message-recipient-option>span{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:13px;padding:9px 10px;background:#fff;min-height:48px;transition:.15s ease}.message-recipient-option>input:checked+span{border-color:#4d7fd9;background:var(--blue-soft);box-shadow:0 0 0 2px rgba(77,127,217,.12)}.message-recipient-option>span>span:last-child{display:grid;min-width:0}.message-recipient-option b,.message-recipient-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-recipient-option small{color:var(--muted);font-size:10px}.message-recipient-avatar{width:31px!important;height:31px!important;min-width:31px!important}.message-recipient-counter{display:block;margin-top:7px;color:var(--muted)}
@media(max-width:620px){.message-recipient-grid{grid-template-columns:1fr;max-height:240px}.message-recipient-head{align-items:flex-start}.message-select-all{font-size:11px}}


/* 5.3.25 — Android: pole odpowiedzi i przycisk Wyślij zawsze nad dolną belką CRM */
@media(max-width:850px){
  html.crm-mobile-device .chat-layout.mobile-chat-open{
    bottom:64px!important;
  }
  
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-compose{
    z-index:15!important;
    padding-bottom:10px!important;
  }
  
}

.today-plan-item.is-cancelled{opacity:.58}
.today-plan-item.is-cancelled .today-done-label{font-weight:900;text-transform:uppercase}

/* CRM DEMO 5.3.28 — Android: pełna widoczność górnej belki rozmowy i przycisku Wyślij.
   Ramka czatu korzysta z rzeczywistych położeń .top i .mobilebar wyliczanych w JS,
   dzięki czemu nie nachodzi na żadną z belek nawet przy safe-area i różnych ekranach. */
@media(max-width:850px){
  html.crm-mobile-device .chat-layout.mobile-chat-open{
    top:var(--crm-chat-top,calc(var(--tomzal-safe-top,0px) + 66px))!important;
    bottom:var(--crm-chat-bottom,var(--tomzal-mobile-nav-height,64px))!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-pane{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) max-content!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-header{
    position:relative!important;
    top:auto!important;
    z-index:20!important;
    min-height:58px!important;
    flex:0 0 auto!important;
    background:#fff!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-thread{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-compose{
    position:relative!important;
    bottom:auto!important;
    z-index:30!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:7px!important;
    min-height:108px!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:9px 10px!important;
    background:#fff!important;
    box-shadow:0 -1px 0 var(--line)!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-compose-input{
    min-height:46px!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-compose-bottom{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    min-height:42px!important;
    align-items:center!important;
  }
  html.crm-mobile-device .chat-layout.mobile-chat-open .chat-send-btn{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    min-width:96px!important;
    min-height:42px!important;
    margin-left:auto!important;
    position:relative!important;
    z-index:31!important;
  }
}

/* CRM DEMO 5.3.33 — Pomiary wykonane bez umowy: czytelne akcje bez nachodzenia przycisków. */
.measurement-done-card .measurement-done-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  align-items:stretch!important;
}
.measurement-done-card .measurement-done-actions .btn{
  width:100%!important;
  min-width:0!important;
  min-height:40px!important;
  padding:9px 10px!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.15!important;
}
.measurement-done-card .measurement-done-actions .measurement-done-archive{grid-column:1 / -1!important}
@media(max-width:700px){
  .measurement-done-card .measurement-done-actions{grid-template-columns:1fr!important}
  .measurement-done-card .measurement-done-actions .measurement-done-archive{grid-column:auto!important}
}

/* CRM DEMO 5.3.34 — Sprawy: spójne proporcje tabel procesu bez zmiany stylistyki. */
@media (min-width:701px){
  body[data-crm-view="tasks"] .workflow-card{min-width:0!important}
  body[data-crm-view="tasks"] .workflow-card .workflow-table{
    width:100%!important;
    min-width:620px!important;
    table-layout:fixed!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-table th,
  body[data-crm-view="tasks"] .workflow-card .workflow-table td{
    padding:12px 13px!important;
    vertical-align:middle!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-table th:nth-child(1),
  body[data-crm-view="tasks"] .workflow-card .workflow-table td:nth-child(1){width:26%!important}
  body[data-crm-view="tasks"] .workflow-card .workflow-table th:nth-child(2),
  body[data-crm-view="tasks"] .workflow-card .workflow-table td:nth-child(2){width:28%!important}
  body[data-crm-view="tasks"] .workflow-card .workflow-table th:nth-child(3),
  body[data-crm-view="tasks"] .workflow-card .workflow-table td:nth-child(3){width:24%!important}
  body[data-crm-view="tasks"] .workflow-card .workflow-table th:nth-child(4),
  body[data-crm-view="tasks"] .workflow-card .workflow-table td:nth-child(4){width:22%!important;min-width:0!important}
  body[data-crm-view="tasks"] .workflow-card .workflow-actions{
    width:100%!important;
    min-width:0!important;
    gap:7px!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-actions .btn{
    min-height:40px!important;
    padding:9px 10px!important;
    line-height:1.15!important;
  }
}
@media (min-width:701px) and (max-width:1050px){
  body[data-crm-view="tasks"] .workflow-card .workflow-table{min-width:680px!important}
  body[data-crm-view="tasks"] .workflow-card .workflow-table th:nth-child(4),
  body[data-crm-view="tasks"] .workflow-card .workflow-table td:nth-child(4){width:25%!important}
}

/* 5.3.38 — węższa kolumna „Prowadzący klienta”, pełne przyciski w Sprawach */
@media(min-width:1367px){
  .workflow-card .workflow-table th:nth-child(1),
  .workflow-card .workflow-table td:nth-child(1){width:22%!important}
  .workflow-card .workflow-table th:nth-child(2),
  .workflow-card .workflow-table td:nth-child(2){width:25%!important}
  .workflow-card .workflow-table th:nth-child(3),
  .workflow-card .workflow-table td:nth-child(3){
    width:18%!important;
    min-width:0!important;
  }
  .workflow-card .workflow-table th:last-child,
  .workflow-card .workflow-table td:last-child{
    width:35%!important;
    min-width:0!important;
  }
  .workflow-card .workflow-actions,
  .workflow-card .row-actions.workflow-actions{
    width:100%!important;
    min-width:0!important;
    justify-content:flex-start!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:6px!important;
  }
  .workflow-card .workflow-actions .btn,
  .workflow-card .row-actions.workflow-actions .btn{
    flex:0 0 auto!important;
    min-width:max-content!important;
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .workflow-card .measurement-done-actions .measurement-done-archive{
    min-width:max-content!important;
  }
  .workflow-table .workflow-lead-heading,
  .workflow-table .workflow-lead-cell{
    min-width:0!important;
  }
}

/* CRM DEMO 5.3.39 — naprawdę wąska kolumna „Prowadzący klienta” także przy skalowaniu Windows / 701–1366 px. */
@media (min-width:701px){
  body[data-crm-view="tasks"] .workflow-card .workflow-table .workflow-lead-heading,
  body[data-crm-view="tasks"] .workflow-card .workflow-table .workflow-lead-cell{
    width:12%!important;
    min-width:0!important;
    max-width:none!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-table .workflow-lead-heading ~ th:last-child,
  body[data-crm-view="tasks"] .workflow-card .workflow-table .workflow-lead-cell + td:last-child{
    width:38%!important;
    min-width:0!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-lead-card{
    min-width:0!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-lead-card .workflow-lead,
  body[data-crm-view="tasks"] .workflow-card .workflow-lead-card span{
    overflow-wrap:anywhere;
    word-break:normal;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-lead-cell + td:last-child .workflow-actions{
    width:100%!important;
    min-width:0!important;
    gap:7px!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-lead-cell + td:last-child .workflow-actions .btn{
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
  }
}


/* CRM DEMO 5.3.40 — Android landscape: pełny viewport popupów i wiadomości. */
.calendar-planning-stat{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;}
.calendar-planning-stat.active{outline:3px solid rgba(48,94,164,.18);border-color:#7395c8}
.calendar-stat-hidden{display:none!important}
.calendar-stat-focus{outline:4px solid #e4ad2f!important;outline-offset:3px;animation:calendarStatPulse .75s ease-in-out 2}
@keyframes calendarStatPulse{50%{transform:scale(1.025)}}
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse){
  html.crm-mobile-device #modal.modal:not(.hidden){
    position:fixed!important;inset:0!important;width:100%!important;height:var(--crm-vv-height,100dvh)!important;
    max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;place-items:stretch!important;
    z-index:2147483500!important;background:rgba(8,15,27,.72)!important;overflow:hidden!important;
  }
  html.crm-mobile-device #modal.modal:not(.hidden)>.modal-card{
    position:relative!important;inset:auto!important;display:flex!important;flex-direction:column!important;
    width:100%!important;max-width:none!important;height:100%!important;max-height:100%!important;min-height:0!important;
    margin:0!important;border-radius:0!important;overflow:hidden!important;box-sizing:border-box!important;
  }
  html.crm-mobile-device #modal.modal:not(.hidden)>.modal-card>.modal-head{flex:0 0 auto!important;position:relative!important;top:auto!important}
  html.crm-mobile-device #modal.modal:not(.hidden)>.modal-card>#modalBody{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:calc(18px + var(--tomzal-safe-bottom,0px))!important}

  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open{
    position:fixed!important;left:0!important;right:0!important;top:var(--crm-chat-top,0px)!important;bottom:var(--crm-chat-bottom,var(--tomzal-mobile-nav-height,64px))!important;
    width:auto!important;max-width:none!important;margin:0!important;border-radius:0!important;overflow:hidden!important;box-sizing:border-box!important;z-index:900!important;
  }
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-pane,
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-header,
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-thread,
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose{overflow:hidden!important;padding-left:12px!important;padding-right:12px!important}
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose-input{display:grid!important;grid-template-columns:minmax(0,1fr) 48px!important;width:100%!important;min-width:0!important;box-sizing:border-box!important}
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose textarea{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose-bottom{width:100%!important;min-width:0!important;box-sizing:border-box!important;overflow:hidden!important}
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-send-btn{flex:0 0 auto!important;width:auto!important;min-width:110px!important;max-width:180px!important;margin-left:auto!important;white-space:nowrap!important}
}


/* CRM DEMO 5.4.9 — kafelki kalendarza przewijają do konkretnego wpisu. */
.today-plan-item.calendar-stat-focus{
  outline:4px solid #e4ad2f!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 7px rgba(228,173,47,.20),0 14px 34px rgba(15,23,42,.18)!important;
  position:relative!important;
  z-index:3!important;
}


/* CRM DEMO 5.4.12 — Zrealizowane: prawidłowy układ 6 kolumn.
   Stare reguły workflow liczyły tabelę jak 4-kolumnową i ściskały „Wykonał”/„Prowadzący” do kilku px. */
.completed-workflow-card .completed-active-table{
  width:100%!important;
  table-layout:fixed!important;
  min-width:1180px!important;
}
.completed-workflow-card .completed-active-table th:nth-child(1),
.completed-workflow-card .completed-active-table td:nth-child(1){width:19%!important;min-width:180px!important}
.completed-workflow-card .completed-active-table th:nth-child(2),
.completed-workflow-card .completed-active-table td:nth-child(2){width:22%!important;min-width:190px!important}
.completed-workflow-card .completed-active-table th:nth-child(3),
.completed-workflow-card .completed-active-table td:nth-child(3){width:18%!important;min-width:175px!important}
.completed-workflow-card .completed-active-table th:nth-child(4),
.completed-workflow-card .completed-active-table td:nth-child(4){width:14%!important;min-width:165px!important}
.completed-workflow-card .completed-active-table th:nth-child(5),
.completed-workflow-card .completed-active-table td:nth-child(5){width:11%!important;min-width:135px!important}
.completed-workflow-card .completed-active-table th:nth-child(6),
.completed-workflow-card .completed-active-table td:nth-child(6){width:16%!important;min-width:235px!important}
.completed-workflow-card .completed-active-table th,
.completed-workflow-card .completed-active-table td{
  overflow:visible!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.completed-worker-person{display:grid!important;gap:4px!important;min-width:0!important}
.completed-worker-person b{display:block!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important;line-height:1.3!important}
.completed-worker-person span{display:block!important;color:var(--muted)!important;font-size:12px!important;white-space:nowrap!important}
.completed-active-table .completed-lead-cell b{display:block!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important}
.completed-active-table .completed-actions-cell .workflow-actions{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
}
.completed-active-table .completed-actions-cell .workflow-actions .btn{
  width:100%!important;
  min-width:0!important;
  padding:7px 6px!important;
  white-space:nowrap!important;
  font-size:11px!important;
}
@media(max-width:1200px){
  .completed-workflow-card .completed-active-table{min-width:1260px!important}
}

/* CRM DEMO 5.4.16 — szybkie połączenie z klientem. */
.btn-call{background:#e9fbf4!important;color:#087853!important;border-color:#b9ead8!important;white-space:nowrap!important}
.btn-call:hover{background:#dff7ed!important}


/* CRM DEMO 5.4.17 — Sprawy: responsywny, równy układ przycisków akcji. */
body[data-crm-view="tasks"] .workflow-card .workflow-actions,
body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  align-items:stretch!important;
  justify-content:stretch!important;
}
body[data-crm-view="tasks"] .workflow-card .workflow-actions .btn,
body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions .btn{
  width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  margin:0!important;
  padding:9px 11px!important;
  border-radius:11px!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  line-height:1.15!important;
  text-align:center!important;
  font-size:12.5px!important;
  box-shadow:0 2px 7px rgba(15,23,42,.07)!important;
}
/* Przy dokładnie trzech akcjach główna akcja zajmuje cały pierwszy rząd. */
body[data-crm-view="tasks"] .workflow-card .workflow-actions > .btn:first-child:nth-last-child(3),
body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions > .btn:first-child:nth-last-child(3){
  grid-column:1 / -1!important;
}
/* Jeden przycisk zawsze wykorzystuje całą szerokość komórki. */
body[data-crm-view="tasks"] .workflow-card .workflow-actions > .btn:only-child,
body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions > .btn:only-child{
  grid-column:1 / -1!important;
}
body[data-crm-view="tasks"] .workflow-card .workflow-actions .btn:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 5px 12px rgba(15,23,42,.11)!important;
}
body[data-crm-view="tasks"] .workflow-card .workflow-lead-cell + td:last-child{
  vertical-align:middle!important;
}

/* Telefon w poziomie: trzy typowe akcje mieszczą się w jednym równym rzędzie. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  body[data-crm-view="tasks"] .workflow-card .workflow-actions,
  body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-actions > .btn:first-child:nth-last-child(3),
  body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions > .btn:first-child:nth-last-child(3){
    grid-column:auto!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-actions .btn,
  body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions .btn{
    min-height:42px!important;
    padding:8px 9px!important;
    font-size:12px!important;
  }
}

/* Bardzo wąski telefon: bez ściskania tekstu — jedna akcja pod drugą. */
@media (max-width:480px) and (orientation:portrait){
  body[data-crm-view="tasks"] .workflow-card .workflow-actions,
  body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions{
    grid-template-columns:1fr!important;
  }
  body[data-crm-view="tasks"] .workflow-card .workflow-actions > .btn,
  body[data-crm-view="tasks"] .workflow-card .row-actions.workflow-actions > .btn{
    grid-column:auto!important;
    min-height:43px!important;
  }
}


/* CRM DEMO 5.4.18 — Pomiary wykonane bez umowy: cztery akcje jako równy układ 2×2. */
body[data-crm-view="tasks"] .measurement-done-card .measurement-done-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
}
body[data-crm-view="tasks"] .measurement-done-card .measurement-done-actions .measurement-done-archive{
  grid-column:auto!important;
}
body[data-crm-view="tasks"] .measurement-done-card .measurement-done-actions .btn{
  width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  margin:0!important;
  padding:9px 10px!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  border-radius:11px!important;
  line-height:1.15!important;
  text-align:center!important;
}
/* Jeśli nie ma telefonu i zostają trzy akcje: Umowa pełny rząd, Podgląd + Do archiwum poniżej. */
body[data-crm-view="tasks"] .measurement-done-card .measurement-done-actions > .btn:first-child:nth-last-child(3){
  grid-column:1 / -1!important;
}
@media (max-width:480px) and (orientation:portrait){
  body[data-crm-view="tasks"] .measurement-done-card .measurement-done-actions{
    grid-template-columns:1fr!important;
  }
  body[data-crm-view="tasks"] .measurement-done-card .measurement-done-actions > .btn{
    grid-column:auto!important;
  }
}

/* CRM DEMO 5.4.20 — zdalne podpisywanie umów */
.contract-sign-choice{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:10px}.contract-sign-choice .btn{width:100%;min-height:50px}.remote-contract-row{background:#fffdf6}.remote-contract-row.is-client-signed{background:#f2fbf6}.remote-sign-badge{background:#fff1c6;color:#765300;border:1px solid #efd48a}.remote-contract-row.is-client-signed .remote-sign-badge{background:#e7f8ee;color:#087853;border-color:#b7e6ca}.remote-client-signed-note{display:grid;gap:5px;margin-top:16px;padding:14px 16px;border:1px solid #b7e6ca;border-radius:14px;background:#ecfdf3;color:#067647}.remote-client-signed-note span,.remote-client-signed-note small{color:#34715a}.contract-remote-sign-btn{white-space:normal;text-align:center}
@media(max-width:700px){.remote-contract-row .contract-row-actions{display:grid;grid-template-columns:1fr}.remote-contract-row .contract-row-actions .btn{width:100%}}

/* CRM DEMO 5.4.22 — subtelne zaznaczenie częściowego odświeżenia tabeli Umów. */
@keyframes crmLiveRows{0%{opacity:.72}100%{opacity:1}}
.contracts-page .crm-live-row-update,.crm-live-row-update{animation:crmLiveRows .22s ease-out}


/* CRM DEMO 5.4.23 — wymiary podane przez klienta: selektywna widoczność w PDF klienta. */
.client-review-dimensions{grid-column:1/-1;padding:7px 9px;border-radius:8px;background:#fff8e8;border:1px solid #ecd59d;color:#6b4d0d;font-size:12px;line-height:1.4}
.client-dimensions-disclaimer{margin-top:10px;padding:12px 14px;border:1px solid #e4b94f;border-radius:12px;background:#fff8e8;color:#5f460d;display:grid;gap:5px;line-height:1.5}
.client-dimensions-disclaimer b{font-size:13px}.client-dimensions-disclaimer span{font-size:12px}


/* CRM DEMO 5.4.26 — informacja o wymiarach klienta pod listą produktów w PDF. */
.contract-customer-dimensions-global{display:flex!important;align-items:center!important;gap:12px!important;width:min(100%,720px)!important;margin:12px 0 0!important;padding:12px 14px!important;border:1px solid #ead7a0!important;border-radius:12px!important;background:#fffaf0!important;color:#5f460d!important;cursor:pointer!important;box-shadow:none!important}
.contract-customer-dimensions-global input{appearance:auto!important;-webkit-appearance:checkbox!important;width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;margin:0!important;padding:0!important;accent-color:#b98519!important;box-shadow:none!important}
.contract-customer-dimensions-global span{display:grid!important;gap:3px!important;min-width:0!important}.contract-customer-dimensions-global b{font-size:13px!important;line-height:1.2!important}.contract-customer-dimensions-global small{display:block!important;color:#806521!important;font-size:11px!important;font-weight:600!important;line-height:1.35!important}
@media(max-width:680px){.contract-customer-dimensions-global{width:100%!important;align-items:flex-start!important}}

/* CRM DEMO 5.4.33 — mobilna przeglądarka: stabilny landscape bez rozjeżdżania szerokości.
   Chrome/Safari mają dynamiczny visualViewport i nie mogą dziedziczyć sztucznego
   bocznego offsetu przeznaczonego dla natywnego Android WebView. */
html.crm-browser-mobile,
html.crm-browser-mobile body{
  max-width:100%!important;
  overflow-x:hidden!important;
}
html.crm-browser-mobile #app,
html.crm-browser-mobile #app>.shell,
html.crm-browser-mobile #app>.shell>.main{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

@media (orientation:landscape) and (max-width:1400px){
  html.crm-browser-mobile{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html.crm-browser-mobile body:not(.notebook-open){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) #app{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    overflow-x:hidden!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) #app>.shell,
  html.crm-browser-mobile body:not(.notebook-open) #app>.shell>.main{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow-x:hidden!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) .top{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:58px!important;
    min-height:58px!important;
    padding:6px max(10px,env(safe-area-inset-right,0px)) 6px max(10px,env(safe-area-inset-left,0px))!important;
    left:auto!important;
    right:auto!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) .top h2{
    min-width:0!important;
    max-width:min(54vw,420px)!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    font-size:17px!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) .top-actions{
    min-width:0!important;
    flex:0 0 auto!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) .content{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:10px 10px calc(74px + env(safe-area-inset-bottom,0px))!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile body:not(.notebook-open) .content>*{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile body[data-crm-view="dashboard"]:not(.notebook-open) #app>.shell>.main>.content{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
  }
  html.crm-browser-mobile .card,
  html.crm-browser-mobile .page-head,
  html.crm-browser-mobile .toolbar,
  html.crm-browser-mobile .calendar-page,
  html.crm-browser-mobile .workflow-card,
  html.crm-browser-mobile .grid2,
  html.crm-browser-mobile .cards,
  html.crm-browser-mobile .action-grid{
    min-width:0!important;
    max-width:100%!important;
  }
  html.crm-browser-mobile .cards,
  html.crm-browser-mobile .action-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  html.crm-browser-mobile .grid2,
  html.crm-browser-mobile .workflow-grid{
    grid-template-columns:1fr!important;
  }
  html.crm-browser-mobile .toolbar{
    flex-wrap:wrap!important;
  }
  html.crm-browser-mobile .toolbar>*{
    min-width:0!important;
    max-width:100%!important;
  }
  html.crm-browser-mobile .tablewrap,
  html.crm-browser-mobile .workflow-tablewrap,
  html.crm-browser-mobile .calendar-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
  }
  html.crm-browser-mobile .tablewrap>.table,
  html.crm-browser-mobile .workflow-tablewrap>.table{
    max-width:none!important;
  }
  html.crm-browser-mobile .page-head{
    gap:10px!important;
  }
  html.crm-browser-mobile .page-actions{
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:wrap!important;
  }
  html.crm-browser-mobile .mobilebar{
    left:0!important;
    right:0!important;
    width:100%!important;
    max-width:100%!important;
    height:58px!important;
    min-height:58px!important;
    padding-left:env(safe-area-inset-left,0px)!important;
    padding-right:env(safe-area-inset-right,0px)!important;
    padding-bottom:env(safe-area-inset-bottom,0px)!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile .mobilebar button{
    height:58px!important;
    min-width:0!important;
    padding:5px 1px 4px!important;
    overflow:hidden!important;
  }
  html.crm-browser-mobile .mobilebar button span{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Popup w poziomie opiera się o aktualny visualViewport przeglądarki,
     a nie o pełny layout viewport ukryty pod paskiem adresu. */
  html.crm-browser-mobile #modal.modal:not(.hidden),
  html.crm-browser-mobile .mobile-menu:not(.hidden){
    left:var(--crm-vv-left,0px)!important;
    right:auto!important;
    top:var(--crm-vv-top,0px)!important;
    bottom:auto!important;
    width:var(--crm-vv-width,100vw)!important;
    max-width:var(--crm-vv-width,100vw)!important;
    height:var(--crm-vv-height,100dvh)!important;
    max-height:var(--crm-vv-height,100dvh)!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile #modal.modal:not(.hidden)>.modal-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:100%!important;
    max-height:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile #modal.modal:not(.hidden) #modalBody{
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
}

@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  html.crm-browser-mobile .card{padding:11px!important}
  html.crm-browser-mobile .welcome{margin-bottom:10px!important}
  html.crm-browser-mobile .welcome h1{font-size:19px!important}
  html.crm-browser-mobile .section-title{margin:15px 0 8px!important}
  html.crm-browser-mobile .top .eyebrow{display:none!important}
}

/* 5.4.34 — zapisany wzór podpisu pracownika */
.employee-signature-template-preview{display:flex;flex-direction:column;gap:10px;margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.employee-signature-template-preview>span{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.employee-signature-template-preview img{display:block;max-width:520px;width:100%;height:150px;object-fit:contain;object-position:left center;border:1px dashed #cbd5e1;border-radius:12px;background:#fff}
.employee-signature-template-empty{display:flex;flex-direction:column;gap:6px;margin-top:18px;padding:16px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc}
.employee-signature-template-empty span{color:var(--muted);line-height:1.5}
@media(max-width:700px){.employee-signature-template-preview img{height:120px}.signature-template-layer .client-review-shell footer{grid-template-columns:1fr 1fr}}

/* 5.4.35 — kompaktowy szybki wybór produktu na telefonie */
.contract-suggestion-backdrop{
  display:none;
  border:0;
  padding:0;
}
.contract-suggestion-popover-head>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.contract-suggestion-popover-head>div>b{
  font-size:15px;
  line-height:1.2;
}
.contract-suggestion-popover-head>div>span{
  display:none;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
}

@media (max-width:850px){
  .contract-suggestion-backdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    background:rgba(15,23,42,.16)!important;
    z-index:10018!important;
    cursor:default!important;
  }
  #modal.modal-contract-editor .contract-suggestion-popover,
  .contract-suggestion-popover{
    top:auto!important;
    bottom:max(10px,env(safe-area-inset-bottom,0px))!important;
    transform:translateX(-50%)!important;
    width:calc(100vw - 24px)!important;
    max-width:430px!important;
    min-width:0!important;
    max-height:min(46dvh,420px)!important;
    padding:0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    border:1px solid rgba(148,163,184,.32)!important;
    border-radius:22px!important;
    background:#fff!important;
    box-shadow:0 24px 70px rgba(15,23,42,.28)!important;
    z-index:10020!important;
  }
  .contract-suggestion-popover-head{
    flex:0 0 auto!important;
    margin:0!important;
    padding:12px 12px 10px 16px!important;
    min-height:54px!important;
    border-bottom:1px solid var(--line)!important;
    background:#fff!important;
  }
  .contract-suggestion-popover-head>div>b{
    font-size:16px!important;
  }
  .contract-suggestion-popover-head>div>span{
    display:block!important;
  }
  .contract-suggestion-popover-head .icon-btn{
    flex:0 0 38px!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    border-radius:12px!important;
    font-size:22px!important;
  }
  .contract-suggestion-list{
    flex:1 1 auto!important;
    max-height:none!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    padding:10px!important;
    background:#fbfcfe!important;
  }
  .contract-suggestion-list .btn{
    flex:0 0 auto!important;
    width:100%!important;
    min-height:44px!important;
    padding:9px 12px!important;
    border-radius:12px!important;
    border:1px solid #e7ebf1!important;
    background:#fff!important;
    box-shadow:none!important;
    font-size:15px!important;
    font-weight:750!important;
    line-height:1.2!important;
  }
  .contract-suggestion-list .btn:active{
    transform:scale(.985)!important;
    background:#f4f6f9!important;
  }
}

@media (max-width:850px) and (orientation:landscape){
  #modal.modal-contract-editor .contract-suggestion-popover,
  .contract-suggestion-popover{
    max-width:620px!important;
    max-height:min(70dvh,330px)!important;
  }
  .contract-suggestion-list{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-content:start!important;
  }
}


/* 5.4.36 — szybki wybór produktu wyśrodkowany w mobilnym viewportcie */
@media (max-width:850px){
  #modal.modal-contract-editor .contract-suggestion-popover,
  .contract-suggestion-popover{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
    width:min(430px,calc(100vw - 28px))!important;
    max-width:calc(100vw - 28px)!important;
    max-height:min(72dvh,520px)!important;
    margin:0!important;
  }
  .contract-suggestion-list{
    min-height:0!important;
    overflow-y:auto!important;
  }
}
@media (max-width:850px) and (orientation:landscape){
  #modal.modal-contract-editor .contract-suggestion-popover,
  .contract-suggestion-popover{
    width:min(620px,calc(100vw - 36px))!important;
    max-width:calc(100vw - 36px)!important;
    max-height:calc(100dvh - 28px)!important;
  }
}

/* 5.4.37 — jeden główny tablet salonowy do końcowego czytania i podpisu umowy */
.contract-sign-choice{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.contract-tablet-sign-btn{white-space:normal;text-align:center}
.salon-tablet-mode-btn.is-active{background:#e8f7ef!important;border-color:#9bd3b4!important;box-shadow:0 0 0 2px rgba(22,124,80,.12) inset}
.salon-tablet-menu-item.is-active{background:#edf9f2!important;border-color:#b4dfc5!important}
.tablet-contract-row{background:#f3f8ff}
.tablet-contract-row.is-client-signed{background:#effbf4}
.tablet-sign-badge{background:#e5efff;color:#164c92;border:1px solid #b9cff1}
.tablet-contract-row.is-client-signed .tablet-sign-badge{background:#e4f7ec;color:#087853;border-color:#b7e6ca}
.tablet-handoff-layer .client-review-shell{max-width:1040px}
.tablet-handoff-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;margin:0 0 14px;border:1px solid #bfd2ee;border-radius:14px;background:#f3f8ff;color:#173d6f}
.tablet-handoff-banner b{font-size:15px}
.tablet-handoff-banner span{font-size:13px;color:#526b89;text-align:right}
.tablet-read-confirm{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;margin:16px 0 0;border:2px solid #d9dfeb;border-radius:16px;background:#fff;cursor:pointer;user-select:none}
.tablet-read-confirm:has(input:checked){border-color:#d6aa42;background:#fffaf0}
.tablet-read-confirm input{width:25px;height:25px;min-width:25px;margin:1px 0 0;accent-color:#c99b2f}
.tablet-read-confirm span{display:grid;gap:4px;line-height:1.35}
.tablet-read-confirm b{font-size:15px;color:#172033}
.tablet-read-confirm small{font-size:12px;color:#667085}
.tablet-success-card{text-align:center;max-width:680px;margin:24px auto!important;padding:30px!important}
.tablet-success-icon{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 16px;border-radius:50%;background:#e8f7ef;color:#087853;font-size:38px;font-weight:900}
.tablet-success-card h3{font-size:25px;margin:0 0 8px}
.tablet-success-card p{margin:0 auto 18px;max-width:520px;color:#667085}
.tablet-success-meta{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:13px;border-radius:12px;background:#f7f8fa}
.tablet-success-meta b{color:#172033}.tablet-success-meta span{color:#667085}
.tablet-mail-ok,.tablet-mail-warning{margin-top:14px;padding:13px 15px;border-radius:12px;font-size:13px;font-weight:700}
.tablet-mail-ok{background:#ecfdf3;color:#067647;border:1px solid #b7e6ca}
.tablet-mail-warning{background:#fff8e8;color:#8a6110;border:1px solid #ecd59d}
.tablet-handoff-success .client-review-shell>footer>div{display:grid;gap:3px}
.tablet-handoff-success .client-review-shell>footer small{color:#667085}
@media(max-width:700px){
 .contract-sign-choice{grid-template-columns:1fr}
 .tablet-handoff-layer .client-review-shell{width:100%;max-width:none}
 .tablet-handoff-banner{align-items:flex-start;flex-direction:column}
 .tablet-handoff-banner span{text-align:left}
 .tablet-read-confirm{padding:14px}
 .tablet-handoff-success .client-review-shell>footer{grid-template-columns:1fr}
 .tablet-handoff-success .client-review-shell>footer .btn{width:100%}
 .tablet-contract-row .contract-row-actions{display:grid;grid-template-columns:1fr}
 .tablet-contract-row .contract-row-actions .btn{width:100%}
}
@media(max-width:900px) and (orientation:landscape){
 .tablet-handoff-layer .client-review-shell>main{padding-top:12px;padding-bottom:12px}
 .tablet-handoff-banner{padding:10px 13px;margin-bottom:10px}
 .tablet-read-confirm{padding:11px 13px;margin-top:10px}
}
\n\n/* CRM DEMO 5.4.39 — podpis i tablet bezpośrednio pod Aplikacją Android w menu desktopowym. */
html.crm-desktop-device .side nav>.desktop-account-tool{
  width:100%!important;
  justify-content:flex-start!important;
}
html.crm-desktop-device .side nav>.desktop-account-tool .nav-icon{
  flex:0 0 25px!important;
}
html.crm-desktop-device .side nav>.desktop-account-tool>span:last-child{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
html.crm-desktop-device .side nav>.salon-tablet-nav-btn.is-active{
  color:#fff!important;
  background:linear-gradient(90deg,rgba(213,165,66,.22),rgba(255,255,255,.06))!important;
  box-shadow:inset 3px 0 var(--gold)!important;
}
html.crm-desktop-device .side nav>.salon-tablet-nav-btn.is-active .nav-icon{
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.25));
}
@media(max-width:700px){
  .side .desktop-account-tools-title,
  .side .desktop-account-tool{display:none!important}
}

/* CRM DEMO 5.4.40 — pewne pojedyncze tapnięcie w nawigacji na telefonach. */
.nav[data-v],
.mobilebar button[data-v],
.mobile-menu-item[data-mobile-v]{
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:rgba(213,165,66,.16)!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}
.nav[data-v]>.nav-icon,
.nav[data-v]>span,
.mobile-menu-item[data-mobile-v]>span,
.mobile-menu-item[data-mobile-v]>b,
.mobilebar button[data-v]>div,
.mobilebar button[data-v]>span{
  pointer-events:none!important;
}
@media (pointer:coarse), (hover:none){
  .nav[data-v],.mobile-menu-item[data-mobile-v]{min-height:46px!important}
}
/* CRM DEMO 3.1.0 — jeden końcowy moduł mobilny */
.attention-panel{margin-bottom:16px}.attention-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.attention-grid button{border:1px solid var(--line);background:var(--soft,#f8fafc);border-radius:14px;padding:14px;text-align:left}.attention-grid b{display:block;font-size:24px}.attention-grid span{font-size:12px}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding-bottom:18px}.timeline-item:before{content:"";position:absolute;left:6px;top:14px;bottom:0;border-left:2px solid #dbe3ed}.timeline-dot{width:14px;height:14px;border-radius:50%;background:#0f172a;margin-top:3px;z-index:1}.timeline-item time,.timeline-item b,.timeline-item p{display:block;margin:0 0 4px}.timeline-item time{font-size:11px;color:#64748b}.session-list,.route-list{display:grid;gap:10px}.session-list article,.route-list article{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:12px;border-radius:14px}.session-list article>div,.route-list article>div{flex:1}.session-list small,.route-list small{display:block;color:#64748b;margin-top:3px}.route-list>article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#0f172a;color:#fff;font-weight:800}
@media(max-width:900px){*{-webkit-tap-highlight-color:transparent}.attention-grid{grid-template-columns:1fr 1fr}.attention-grid button:last-child{grid-column:1/-1}.modal{max-height:94dvh}.mobile-select-proxy,.mobile-datetime-proxy,.mobile-date-proxy{min-height:48px}.session-list article,.route-list article{align-items:flex-start}.session-list .btn,.route-list .btn{min-height:44px}.case-check-cell{display:flex!important;justify-content:flex-end!important;width:100%!important}.case-check{margin-left:auto!important}}

.payment-contract-summary{border:1px solid var(--line);background:var(--surface-soft,#f8fafc);border-radius:14px;padding:14px 16px}.payment-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.payment-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.payment-summary-grid>div{background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.payment-summary-grid span{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.payment-summary-grid strong{font-size:16px}.payment-summary-remaining{border-color:#d6a84b!important;background:#fff8e8!important}.payment-summary-remaining strong{font-size:19px}@media(max-width:640px){.payment-summary-grid{grid-template-columns:1fr}}
/* CRM DEMO 4.1.0 — fundament warstw i wspólnych zachowań UI. */
:root{
  --layer-content:0;
  --layer-navigation:100;
  --layer-dropdown:200;
  --layer-tooltip:300;
  --layer-context:400;
  --layer-overlay:500;
  --layer-modal:600;
  --layer-modal-nested:700;
  --layer-workspace:800;
  --layer-system-viewer:900;
  --layer-toast:1000;
  --crm-control-min-size:44px;
}

/* Standardowe elementy interaktywne zachowują minimalny obszar dotyku. */
.icon-btn,
.client-review-close,
.client-sign-close,
.mobile-date-close,
.mobile-datetime-close{
  min-width:var(--crm-control-min-size);
  min-height:var(--crm-control-min-size);
}

/* Logiczna hierarchia nowych warstw; istniejące wysokie wartości pozostają
   kompatybilne do czasu migracji poszczególnych modułów. */
.mobilebar,.top,.side{isolation:isolate}
.mobile-menu{z-index:var(--layer-overlay)}
#modal.modal{z-index:var(--layer-modal)}
.client-contract-review-layer{z-index:var(--layer-workspace)}
.contract-pdf-viewer-layer,#contractInAppPreview{z-index:var(--layer-system-viewer)}
.toast{z-index:var(--layer-toast)}

/* Warstwa zamknięta nie może przechwytywać dotyku ani kliknięć. */
.modal.hidden,
.mobile-menu.hidden,
[hidden]{pointer-events:none!important}

/* Focus dostępny klawiaturą bez zmiany wyglądu przy zwykłym dotyku. */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid color-mix(in srgb,var(--blue,#2563eb) 40%,transparent);
  outline-offset:2px;
}

/* Stabilne przewijanie aktywnego korpusu standardowego modala. */
#modal:not(.hidden) #modalBody{
  min-height:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

body.crm-layer-open{
  overscroll-behavior:none;
}
/* CRM DEMO 4.2.0 — wspólna warstwa dokumentów, podpisów i podglądu */
:root{
  --document-vv-height:100dvh;
  --document-vv-width:100vw;
  --document-header-height:64px;
  --document-footer-height:66px;
}

.contract-inapp-preview,
.client-contract-review-layer,
.contract-pdf-viewer-layer{
  box-sizing:border-box;
}

.contract-inapp-preview-bar,
.client-review-shell>header,
.client-sign-screen>header,
.contract-pdf-viewer-top{
  min-height:var(--document-header-height);
}

.contract-inapp-preview-body,
.client-review-shell>main,
.client-sign-screen>main,
.contract-pdf-viewer-pages{
  min-height:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.document-viewer-loading,
.document-viewer-error{
  display:grid;
  place-items:center;
  align-content:center;
  gap:10px;
  min-height:220px;
  padding:24px;
  text-align:center;
  color:#64748b;
}
.document-viewer-loading::before{
  content:"";
  width:34px;
  height:34px;
  border:3px solid #dbe3ed;
  border-top-color:#d5a542;
  border-radius:50%;
  animation:documentSpin .8s linear infinite;
}
.document-viewer-error{color:#991b1b;background:#fff7f7}
@keyframes documentSpin{to{transform:rotate(360deg)}}

.client-sign-save-status{
  min-height:20px;
  font-size:12px;
  font-weight:700;
  color:#64748b;
}
.client-sign-save-status.loading{color:#9a6700}
.client-sign-save-status.success{color:#047857}
.client-sign-save-status.error{color:#b91c1c}

.client-sign-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  width:100%;
}

@media (max-width:1366px), (pointer:coarse){
  .contract-inapp-preview,
  .client-contract-review-layer,
  .contract-pdf-viewer-layer{
    top:var(--tomzal-safe-top,0px)!important;
    right:var(--tomzal-safe-right,0px)!important;
    bottom:var(--tomzal-safe-bottom,0px)!important;
    left:var(--tomzal-safe-left,0px)!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    max-height:none!important;
  }

  .client-review-shell,
  .client-sign-screen{
    width:100%!important;
    height:calc(var(--document-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:0!important;
  }

  .contract-inapp-preview-bar,
  .client-review-shell>header,
  .client-sign-screen>header,
  .contract-pdf-viewer-top{
    padding-left:calc(14px + var(--tomzal-safe-left,0px))!important;
    padding-right:calc(14px + var(--tomzal-safe-right,0px))!important;
  }
}

@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  :root{
    --document-header-height:56px;
    --document-footer-height:56px;
  }

  .client-review-shell,
  .client-sign-screen{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
  }

  .client-sign-screen{
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
  }

  .client-review-shell>header,
  .client-sign-screen>header,
  .contract-inapp-preview-bar,
  .contract-pdf-viewer-top{
    min-height:56px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }

  .client-review-shell>header h2,
  .client-sign-screen>header h2{
    font-size:18px!important;
  }

  .client-review-shell>main{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:12px!important;
  }

  .client-sign-screen>main{
    overflow:hidden!important;
    padding:6px 8px!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
  }

  .client-sign-screen canvas{
    min-height:0!important;
    height:100%!important;
    max-height:none!important;
  }

  .client-review-shell>footer,
  .client-sign-screen>footer{
    position:static!important;
    min-height:var(--document-footer-height)!important;
    padding-top:6px!important;
    padding-bottom:calc(6px + var(--tomzal-safe-bottom,0px))!important;
  }

  .client-sign-screen>footer{
    display:block!important;
  }

  .client-sign-actions .btn{
    min-height:44px!important;
  }

  .contract-inapp-preview-body{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
  }
}
.contract-inapp-preview-body iframe[hidden]{display:none!important}
/* CRM DEMO 5.0.8 — karta klienta: stabilne sticky, czytelne akcje i stan interakcji */
.customer-duplicate-check{margin:0 0 14px;padding:12px 14px;border:1px solid #dbe3ed;border-radius:14px;background:#f8fafc}
.customer-duplicate-check[hidden]{display:none!important}.customer-duplicate-check.is-warning{border-color:#e6b94f;background:#fff9ea}.customer-duplicate-check.is-clear{border-color:#a7e3ce;background:#effbf6}
.customer-duplicate-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:850}.customer-duplicate-list{display:grid;gap:8px;margin-top:10px}.customer-duplicate-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:10px 12px;border:1px solid #ead9a7;border-radius:11px;background:#fff}.customer-duplicate-item small{grid-column:1/-1;color:#64748b}.customer-duplicate-item .btn{min-height:36px;padding:7px 10px}

#modalBody>.customer-360-tabs{position:sticky!important;top:0!important;z-index:20!important;display:flex!important;gap:8px!important;overflow-x:auto!important;margin-bottom:14px!important;padding:10px var(--customer-tabs-pad-right,16px) 10px var(--customer-tabs-pad-left,16px)!important;background:#fff!important;border-bottom:1px solid var(--line)!important;box-shadow:0 6px 14px rgba(15,23,42,.06)!important;scrollbar-width:none!important;overscroll-behavior-x:contain!important;touch-action:pan-x!important}
.customer-360-tabs::-webkit-scrollbar{display:none}.customer-360-tab{position:relative;border:1px solid #d9e1eb;background:#fff;color:#172033;border-radius:999px;padding:9px 13px;font-weight:850;white-space:nowrap;cursor:pointer;min-height:42px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 2px rgba(15,23,42,.03)}.customer-360-tab:hover{border-color:#9daabd;background:#f8fafc}.customer-360-tab:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.customer-360-tab.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 5px 14px rgba(18,32,51,.18)}.customer-360-tab[data-busy="1"]{pointer-events:none;opacity:.75}
.customer-preview-section[data-customer-section],.customer-preview-columns[data-customer-section]{scroll-margin-top:82px}.customer-360-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 2px}.customer-360-kpi{padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}.customer-360-kpi span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.customer-360-kpi strong{display:block;margin-top:4px;font-size:18px}
.customer-preview button,.customer-preview a,.customer-preview [role="button"]{cursor:pointer!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(37,99,235,.12)}.customer-preview .btn{box-shadow:0 2px 7px rgba(15,23,42,.08)}.customer-preview .btn:hover,.customer-preview .btn:focus-visible{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.12)}.customer-preview-record button{justify-self:start}.archive-photo-thumb{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.archive-photo-thumb:hover,.archive-photo-thumb:focus-visible{transform:translateY(-2px);border-color:#9ba9bb;box-shadow:0 8px 18px rgba(15,23,42,.12)}
.customer-preview-loading{min-height:240px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:12px!important}.customer-preview-loading .loader{width:34px;height:34px;border:3px solid #dce3ec;border-top-color:#172033;border-radius:50%;animation:customer-spin .75s linear infinite}.customer-preview-loading b{color:#52647d}@keyframes customer-spin{to{transform:rotate(360deg)}}
.customer-timeline-filter{display:flex;gap:8px;overflow-x:auto;margin:0 0 14px}.customer-timeline-filter button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-weight:750;white-space:nowrap;cursor:pointer}.customer-timeline-filter button.active{background:var(--ink);color:#fff}.timeline-entry.is-filtered{display:none!important}
@media(max-width:760px){.customer-360-summary{grid-template-columns:1fr 1fr}.customer-duplicate-item{grid-template-columns:1fr}.customer-duplicate-item .btn{width:100%}#modalBody>.customer-360-tabs{padding-top:8px!important;padding-bottom:8px!important}.customer-360-tab{min-height:40px;padding:8px 12px}}
.customer-preview-partial{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.customer-preview-partial span{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.customer-preview-partial .btn{min-height:36px;padding:7px 10px}@media(max-width:700px){.customer-preview-partial{align-items:flex-start;flex-direction:column}}

/* 5.0.9 — karta klienta zaczyna się dokładnie od zakładek, bez górnego paddingu. */

#modalBody.customer-preview-modal-body>.customer-360-tabs{
  margin-top:0!important;
}


/* 5.0.11 — karta klienta: pełnoszeroki pasek bez przerwy i nowy wygląd mobile */
#modalBody.customer-preview-modal-body{
  padding:0!important;
  padding-top:0!important;
  margin:0!important;
}
#modalBody.customer-preview-modal-body>.customer-360-tabs{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:8px 12px!important;
  display:flex!important;
  align-items:stretch!important;
  gap:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  background:#fff!important;
  border:0!important;
  border-bottom:1px solid #dce3ec!important;
  box-shadow:0 4px 12px rgba(15,23,42,.07)!important;
  scrollbar-width:none!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x!important;
}
#modalBody.customer-preview-modal-body>.customer-preview{
  padding:16px 20px 22px!important;
}
#modalBody.customer-preview-modal-body .customer-360-tab{
  flex:0 0 auto!important;
  min-height:40px!important;
  margin:0!important;
  padding:8px 13px!important;
  border:1px solid #d8e0ea!important;
  border-radius:11px!important;
  background:#f8fafc!important;
  color:#29364a!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1.15!important;
  box-shadow:none!important;
}
#modalBody.customer-preview-modal-body .customer-360-tab.active{
  background:#172033!important;
  color:#fff!important;
  border-color:#172033!important;
  box-shadow:0 3px 9px rgba(15,23,42,.18)!important;
}

@media(max-width:760px){
  #modalBody.customer-preview-modal-body>.customer-360-tabs{
    padding:0!important;
    gap:0!important;
    background:#f7f9fc!important;
    box-shadow:none!important;
  }
  #modalBody.customer-preview-modal-body>.customer-preview{
    padding:12px 12px 18px!important;
  }
  #modalBody.customer-preview-modal-body .customer-360-tab{
    min-height:48px!important;
    padding:8px 14px!important;
    border:0!important;
    border-right:1px solid #e1e6ed!important;
    border-radius:0!important;
    background:transparent!important;
    color:#526177!important;
    font-size:13px!important;
    box-shadow:inset 0 -3px transparent!important;
  }
  #modalBody.customer-preview-modal-body .customer-360-tab.active{
    background:#fff!important;
    color:#172033!important;
    box-shadow:inset 0 -3px #d5a542!important;
  }
  #modalBody.customer-preview-modal-body .customer-360-tab:last-child{
    border-right:0!important;
  }
  .customer-preview-section[data-customer-section],
  .customer-preview-columns[data-customer-section]{
    scroll-margin-top:58px!important;
  }
}
/* CRM DEMO — planowanie kalendarza */
.calendar-planning-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.calendar-planning-stat{display:flex;align-items:center;gap:11px;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.05)}
.calendar-planning-stat>span{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:#eef2f7;font-size:18px}
.calendar-planning-stat div{min-width:0;display:grid}.calendar-planning-stat b{font-size:20px;line-height:1.1}.calendar-planning-stat small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.calendar-planning-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:-4px 0 12px}
.calendar-planning-tools .btn{min-height:40px}.calendar-planning-tools .active{background:var(--ink);color:#fff}
.calendar-card.calendar-list-mode .calendar{display:block}.calendar-card.calendar-list-mode .dow{display:none}.calendar-card.calendar-list-mode .day{min-height:0;border-right:0;padding:10px 12px}.calendar-card.calendar-list-mode .day.other:empty{display:none}.calendar-card.calendar-list-mode .date{justify-content:flex-start;gap:8px}.calendar-card.calendar-list-mode .day-events{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.event.calendar-conflict{border-color:#ef4444!important;background:#fff1f2!important;box-shadow:inset 4px 0 #dc2626}.event.calendar-conflict:after{content:attr(data-conflict-badge);position:absolute;right:6px;top:5px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:900;letter-spacing:.03em}
.today-plan-item.calendar-conflict{outline:2px solid #ef4444;outline-offset:-2px;background:#fff7f7}
@media(max-width:850px){.calendar-planning-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-planning-stat{padding:11px}}
@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){.calendar-planning-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.calendar-planning-stat{padding:8px 10px}.calendar-planning-stat>span{width:32px;height:32px;flex-basis:32px}.today-plan-item{padding:9px!important}}
/* CRM DEMO 4.5.0 — materiały i finanse bez zmiany schematu danych */
.materials-control-center{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin:0 0 16px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.materials-control-summary{display:grid;gap:8px;min-width:0}.materials-control-summary h3{margin:0;font-size:18px}.materials-control-summary p{margin:0;color:var(--muted)}
.materials-readiness{display:grid;grid-template-columns:auto minmax(120px,260px) auto;align-items:center;gap:10px;font-weight:800}.materials-readiness-track{height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}.materials-readiness-fill{height:100%;width:0;background:linear-gradient(90deg,#d5a542,#0f9f6e);border-radius:inherit;transition:width .25s ease}
.materials-control-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.materials-search{min-width:240px;height:44px;border:1px solid #dce3ec;border-radius:12px;padding:0 13px;background:#fff;color:var(--ink);outline:none}.materials-search:focus{border-color:#6d8cb6;box-shadow:0 0 0 4px #dce9f755}
.materials-risk-list{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.materials-risk-chip{border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 11px;font-size:12px;font-weight:800}.materials-risk-chip.warning{background:#fff7ed;border-color:#fed7aa;color:#9a5200}.materials-risk-chip.danger{background:#fff1f2;border-color:#fecdd3;color:#b4233f}.materials-risk-chip.success{background:#ecfdf5;border-color:#a7f3d0;color:#087853}
.material-card.material-hidden-by-search{display:none!important}.material-card.material-needs-attention{box-shadow:0 0 0 2px rgba(220,38,38,.12),var(--shadow)}
.payment-smart-tools{display:grid;gap:10px;margin:10px 0 2px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.payment-smart-tools>span{font-size:12px;font-weight:800;color:var(--muted)}.payment-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.payment-quick-grid button{min-height:40px;border:1px solid #dce3ec;border-radius:10px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}.payment-quick-grid button:hover{border-color:#9fb0c5;background:#f5f8fc}.payment-limit-note{font-size:12px;color:var(--muted)}.payment-limit-note.warning{color:#b45309;font-weight:800}.payment-limit-note.danger{color:#b91c1c;font-weight:850}
.customer-payment-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}.customer-payment-overview>div{padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.customer-payment-overview span{display:block;font-size:11px;color:var(--muted)}.customer-payment-overview b{display:block;margin-top:2px;font-size:15px}
@media(max-width:850px){.materials-control-center{grid-template-columns:1fr}.materials-control-actions{justify-content:stretch}.materials-search{width:100%;min-width:0}.materials-control-actions .btn{flex:1}.materials-readiness{grid-template-columns:auto 1fr auto}.payment-quick-grid{grid-template-columns:1fr 1fr}.customer-payment-overview{grid-template-columns:1fr}}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){.materials-control-center{padding:10px 12px;margin-bottom:10px}.materials-control-summary p{display:none}.materials-risk-list{margin-bottom:8px}.payment-smart-tools{padding:8px}.payment-quick-grid button{min-height:38px}}
/* CRM DEMO 4.6.0 — wiadomości, powiadomienia i bezpieczne automatyzacje UI */
.crm-comm-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 16px rgba(15,23,42,.05)}
.crm-comm-search{flex:1 1 260px;min-width:0;position:relative}.crm-comm-search input{width:100%;min-height:44px;padding:10px 42px 10px 14px;border:1px solid #dce3ec;border-radius:12px;background:#fff;color:var(--ink);outline:none}.crm-comm-search input:focus{border-color:#6d8cb6;box-shadow:0 0 0 4px #dce9f755}.crm-comm-search span{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.62}
.crm-comm-filters{display:flex;gap:7px;flex-wrap:wrap}.crm-comm-filter{min-height:40px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;color:var(--ink);font-weight:800;padding:8px 12px;cursor:pointer}.crm-comm-filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.crm-comm-summary{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.crm-comm-summary b{color:var(--ink);font-size:14px}
.chat-conversation.crm-hidden,.notif-row.crm-hidden,.workflow-notif.crm-hidden{display:none!important}
.crm-no-filter-results{padding:28px 14px;text-align:center;color:var(--muted);border:1px dashed #cfd8e5;border-radius:14px;background:#fbfcfe}
.crm-duplicate-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;margin-left:7px;border-radius:999px;background:#fff1d6;color:#8a5a00;font-size:11px;font-weight:900;vertical-align:middle}
.crm-draft-indicator{display:none;align-items:center;gap:6px;font-size:11px;color:#64748b;margin-right:auto}.crm-draft-indicator.show{display:inline-flex}.crm-draft-indicator:before{content:'●';color:#d5a542;font-size:9px}
.crm-notif-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crm-notif-pref{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:12px;font-weight:750}.crm-notif-pref input{width:18px;height:18px}
.crm-automation-note{margin:0 0 14px;padding:12px 14px;border:1px solid #dce6f5;border-left:4px solid #2563eb;border-radius:13px;background:#f7faff;color:#334155}.crm-automation-note b{display:block;margin-bottom:3px}.crm-automation-note small{color:#64748b}
@media(max-width:850px){.crm-comm-toolbar{padding:10px;margin-bottom:10px}.crm-comm-search{flex-basis:100%}.crm-comm-filters{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.crm-comm-filter{width:100%;padding-inline:7px}.crm-comm-summary{width:100%;margin-left:0;justify-content:flex-end}.crm-notif-tools{width:100%}.crm-notif-pref{width:100%;justify-content:space-between}.chat-sidebar .crm-comm-toolbar{border-radius:0;border-left:0;border-right:0;box-shadow:none}}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){.crm-comm-toolbar{padding:7px 9px;gap:7px}.crm-comm-search input{min-height:38px}.crm-comm-filter{min-height:36px;padding:6px 9px}}
:root{--crm-online:#0f9f6e;--crm-offline:#b45309;--crm-update:#2563eb}
.crm-connectivity-banner{position:fixed;left:50%;top:calc(var(--tomzal-safe-top,0px) + 10px);transform:translateX(-50%);z-index:var(--z-system,1000);display:flex;align-items:center;gap:10px;max-width:min(92vw,680px);padding:10px 14px;border-radius:14px;background:#fff7ed;color:#7c2d12;border:1px solid #fed7aa;box-shadow:0 14px 34px rgba(15,23,42,.18);font-weight:800}
.crm-connectivity-banner.hidden{display:none!important}.crm-connectivity-banner button{min-height:38px;border:0;border-radius:10px;padding:8px 12px;background:#172033;color:#fff;font-weight:800;cursor:pointer}
.crm-update-toast{position:fixed;right:18px;bottom:calc(18px + var(--tomzal-safe-bottom,0px));z-index:var(--z-system,1000);width:min(390px,calc(100vw - 24px));padding:16px;border-radius:16px;background:#fff;color:#172033;border:1px solid #dbe3ed;box-shadow:0 18px 44px rgba(15,23,42,.25)}
.crm-update-toast h3{margin:0 0 5px;font-size:17px}.crm-update-toast p{margin:0 0 12px;color:#64748b}.crm-update-actions{display:flex;gap:8px;justify-content:flex-end}.crm-update-actions .btn{min-height:42px}
.crm-sync-indicator{position:fixed;left:14px;bottom:calc(82px + var(--tomzal-safe-bottom,0px));z-index:var(--z-navigation,100);display:none;align-items:center;gap:8px;padding:8px 11px;border-radius:999px;background:#172033;color:#fff;font-size:12px;font-weight:800;box-shadow:0 10px 24px rgba(15,23,42,.22)}.crm-sync-indicator.show{display:flex}.crm-sync-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b}.crm-sync-indicator.online .crm-sync-dot{background:#22c55e}
@media(max-width:700px){.crm-update-toast{left:12px;right:12px;bottom:calc(78px + var(--tomzal-safe-bottom,0px));width:auto}.crm-connectivity-banner{top:calc(var(--tomzal-safe-top,0px) + 6px);font-size:12px;padding:8px 10px}.crm-sync-indicator{bottom:calc(76px + var(--tomzal-safe-bottom,0px))}}
@media(orientation:landscape) and (max-height:500px){.crm-update-toast{bottom:8px;right:8px;max-width:360px}.crm-connectivity-banner{top:4px}.crm-sync-indicator{bottom:8px}}
/* CRM DEMO 4.8.0 — bezpieczeństwo i diagnostyka */
:root{
  --layer-diagnostics:920;
}
.crm-diagnostics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.crm-diagnostic-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px;min-width:0}
.crm-diagnostic-card h4{margin:0 0 10px;font-size:15px}
.crm-diagnostic-list{display:grid;gap:8px}
.crm-diagnostic-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);gap:10px;padding:7px 0;border-bottom:1px solid #eef1f5}
.crm-diagnostic-row:last-child{border-bottom:0}
.crm-diagnostic-row span{color:var(--muted);font-size:12px}
.crm-diagnostic-row b{min-width:0;overflow-wrap:anywhere;text-align:right}
.crm-health-ok{color:#087853}.crm-health-warn{color:#b45309}.crm-health-error{color:#b42318}
.crm-diagnostic-errors{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#0f172a;color:#e2e8f0;padding:10px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.crm-diagnostics-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.crm-diagnostics-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#eef2f7;font-size:11px;font-weight:800}
.crm-diagnostics-badge::before{content:"";width:8px;height:8px;border-radius:50%;background:#64748b}
.crm-diagnostics-badge.ok::before{background:#0f9f6e}.crm-diagnostics-badge.warn::before{background:#d97706}.crm-diagnostics-badge.error::before{background:#dc2626}
@media(max-width:760px){.crm-diagnostics-grid{grid-template-columns:1fr}.crm-diagnostic-row{grid-template-columns:1fr}.crm-diagnostic-row b{text-align:left}.crm-diagnostics-actions{display:grid;grid-template-columns:1fr 1fr}.crm-diagnostics-actions .btn{width:100%}}
/* CRM DEMO 5.0.0 — globalne wyszukiwanie i lokalny asystent operacyjny */
.crm-command-trigger{position:fixed;right:18px;bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:2147482000;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:52px;height:52px;border:0;border-radius:16px;background:linear-gradient(145deg,#d5a542,#b98221);color:#172033;font-size:22px;font-weight:900;box-shadow:0 12px 30px rgba(15,23,42,.24);cursor:pointer;display:grid;place-items:center}
.crm-command-trigger:hover{transform:translateY(-1px)}
.crm-command-layer{position:fixed;inset:0;z-index:var(--layer-system,1000);display:flex;align-items:flex-start;justify-content:center;padding:clamp(12px,7vh,72px) 14px 14px;background:rgba(8,15,27,.66);backdrop-filter:blur(8px)}
.crm-command-shell{width:min(860px,100%);max-height:min(82dvh,860px);display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:#f5f7fb;box-shadow:0 32px 100px rgba(0,0,0,.42)}
.crm-command-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px;background:linear-gradient(180deg,#101c2f,#0c1728);color:#fff}
.crm-command-head h2{margin:0;font-size:19px}.crm-command-head small{display:block;color:#b8c5d8;margin-top:2px}
.crm-command-close{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.1);color:#fff;font-size:25px;cursor:pointer}
.crm-command-search{padding:14px;background:#fff;border-bottom:1px solid #e2e8f0}.crm-command-search input{width:100%;min-height:52px;padding:0 16px;border:1px solid #cbd5e1;border-radius:14px;font-size:17px;outline:none}.crm-command-search input:focus{border-color:#6d8cb6;box-shadow:0 0 0 4px rgba(109,140,182,.16)}
.crm-command-body{min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:14px;display:grid;gap:14px}
.crm-smart-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.crm-smart-stat{padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.crm-smart-stat b{display:block;font-size:22px}.crm-smart-stat span{font-size:12px;color:#64748b}
.crm-smart-section{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.crm-smart-section h3{margin:0;padding:12px 14px;border-bottom:1px solid #e2e8f0;font-size:14px}.crm-smart-list{display:grid}.crm-smart-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:0;border-bottom:1px solid #eef2f7;background:#fff;text-align:left;cursor:pointer}.crm-smart-result:last-child{border-bottom:0}.crm-smart-result:hover{background:#f8fafc}.crm-smart-result b{display:block}.crm-smart-result span,.crm-smart-result small{display:block;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-smart-result em{font-style:normal;font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#eef2ff;color:#334155}
.crm-smart-empty{padding:20px;text-align:center;color:#64748b}.crm-smart-loading{padding:26px;text-align:center;color:#64748b}
.crm-command-shortcuts{display:flex;gap:8px;flex-wrap:wrap}.crm-command-shortcuts button{border:1px solid #dbe3ed;background:#fff;border-radius:12px;padding:9px 12px;font-weight:750;cursor:pointer}
@media(max-width:700px){.crm-command-layer{padding:0;align-items:stretch}.crm-command-shell{width:100%;height:100dvh;max-height:none;border-radius:0}.crm-command-head{padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px}.crm-command-body{padding:10px;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.crm-smart-summary{grid-template-columns:1fr 1fr}.crm-command-trigger{right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px))}}
@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){.crm-command-layer{padding:0}.crm-command-shell{height:100dvh;max-height:none;border-radius:0}.crm-command-head{padding:7px 12px}.crm-command-search{padding:8px 12px}.crm-command-search input{min-height:44px}.crm-command-body{padding:8px}.crm-smart-summary{grid-template-columns:repeat(4,1fr)}}

.crm-command-top-trigger{width:42px;height:42px;min-width:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#172033;font-size:20px;font-weight:900;display:grid;place-items:center;cursor:pointer;pointer-events:auto;touch-action:manipulation}
.crm-command-layer,.crm-command-shell,.crm-command-close,.crm-command-search input,.crm-smart-result,.crm-command-shortcuts button{pointer-events:auto}
body.modal-open .crm-command-trigger{visibility:hidden!important;pointer-events:none!important}
@media(max-width:1366px){.crm-command-top-trigger{display:grid}}

/* 5.0.2 — wyniki zawsze widoczne w Android WebView/PWA */
.crm-command-search{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.crm-command-search label{grid-column:1/-1;font-size:12px;font-weight:800;color:#475569}
.crm-command-clear{min-height:52px;padding:0 14px;border:1px solid #cbd5e1;border-radius:14px;background:#f8fafc;color:#172033;font-weight:800;cursor:pointer}
.crm-smart-query-info{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid #c9d8ec;border-radius:14px;background:#eef5ff;color:#172033}
.crm-smart-query-info span{font-size:13px;color:#52647d}
.crm-smart-section h3{gap:10px!important}
.crm-smart-section h3 span{display:inline-grid!important;place-items:center!important;min-width:28px!important;height:28px!important;padding:0 8px!important;border-radius:999px!important;background:#eef2f7!important;color:#172033!important;font-size:12px!important}
.crm-smart-list{display:block!important;min-height:1px!important;visibility:visible!important;opacity:1!important;overflow:visible!important}
.crm-smart-result{display:grid!important;visibility:visible!important;opacity:1!important;width:100%!important;min-height:76px!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:center!important;padding:12px 14px!important;border:0!important;border-bottom:1px solid #e8edf3!important;border-radius:0!important;background:#fff!important;color:#172033!important;text-align:left!important;pointer-events:auto!important;touch-action:manipulation!important}
.crm-smart-result-main{display:block!important;min-width:0!important;visibility:visible!important;opacity:1!important;overflow:hidden!important;color:#172033!important;white-space:normal!important}
.crm-smart-result-main strong{display:block!important;color:#172033!important;font-size:16px!important;line-height:1.25!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.crm-smart-result-subtitle{display:block!important;margin-top:3px!important;color:#52647d!important;font-size:13px!important;line-height:1.3!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.crm-smart-result-main small{display:block!important;margin-top:3px!important;color:#7a8799!important;font-size:12px!important;line-height:1.3!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.crm-smart-result-kind{display:inline-flex!important;align-items:center!important;justify-content:center!important;visibility:visible!important;opacity:1!important;padding:6px 9px!important;border-radius:999px!important;background:#eef2ff!important;color:#334155!important;font-size:11px!important;font-weight:850!important;white-space:nowrap!important}
.crm-smart-empty-small{padding:14px!important}
@media(max-width:700px){.crm-command-search{grid-template-columns:minmax(0,1fr)}.crm-command-clear{display:none}.crm-smart-result{min-height:82px!important}.crm-smart-result-kind{align-self:start!important}.crm-smart-summary{margin-top:0}}

/* 5.0.3 — izolowane karty wyników, niezależne od globalnych stylów button/span */
.crm-smart-start-hint{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px dashed #b8c5d8;border-radius:16px;background:#fff;color:#172033}
.crm-smart-start-hint span{color:#64748b;font-size:14px}
.crm-smart-section{overflow:visible!important}
.crm-smart-section h3{display:flex!important;align-items:center!important;justify-content:space-between!important;margin:0!important;padding:12px 14px!important;background:#fff!important;border-bottom:1px solid #e2e8f0!important;color:#172033!important}
.crm-smart-section h3>span{font-size:16px!important;font-weight:850!important;color:#172033!important;background:none!important;border:0!important;padding:0!important;width:auto!important;height:auto!important}
.crm-smart-section h3>b{display:inline-grid!important;place-items:center!important;min-width:30px!important;height:30px!important;padding:0 9px!important;border-radius:999px!important;background:#eef2f7!important;color:#172033!important;font-size:13px!important}
.crm-smart-list{display:grid!important;gap:10px!important;padding:10px!important;background:#f5f7fb!important}
.crm-search-card{all:initial!important;box-sizing:border-box!important;width:100%!important;min-height:92px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:14px!important;align-items:center!important;padding:14px 15px!important;border:1px solid #d9e2ec!important;border-radius:15px!important;background:#fff!important;color:#172033!important;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important;cursor:pointer!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(37,99,235,.12)!important;box-shadow:0 3px 10px rgba(15,23,42,.04)!important}
.crm-search-card:active{transform:scale(.992)!important;background:#f8fafc!important}
.crm-search-card:focus-visible{outline:3px solid rgba(37,99,235,.3)!important;outline-offset:2px!important}
.crm-search-card-text{all:initial!important;display:block!important;min-width:0!important;font-family:inherit!important;color:#172033!important}
.crm-search-card-title{all:initial!important;display:block!important;font-family:inherit!important;font-size:17px!important;font-weight:850!important;line-height:1.25!important;color:#172033!important;white-space:normal!important;overflow-wrap:anywhere!important}
.crm-search-card-subtitle{all:initial!important;display:block!important;margin-top:5px!important;font-family:inherit!important;font-size:14px!important;font-weight:600!important;line-height:1.35!important;color:#52647d!important;white-space:normal!important;overflow-wrap:anywhere!important}
.crm-search-card-meta{all:initial!important;display:block!important;margin-top:4px!important;font-family:inherit!important;font-size:12px!important;font-weight:500!important;line-height:1.35!important;color:#7a8799!important;white-space:normal!important;overflow-wrap:anywhere!important}
.crm-search-card-side{all:initial!important;display:flex!important;align-items:center!important;gap:8px!important;font-family:inherit!important}
.crm-search-card-side span{all:initial!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:6px 9px!important;border-radius:999px!important;background:#eef2ff!important;color:#334155!important;font-family:inherit!important;font-size:11px!important;font-weight:850!important;white-space:nowrap!important}
.crm-search-card-side b{all:initial!important;display:grid!important;place-items:center!important;width:34px!important;height:34px!important;border-radius:50%!important;background:#172033!important;color:#fff!important;font-family:inherit!important;font-size:24px!important;line-height:1!important}
@media(max-width:700px){.crm-smart-list{padding:8px!important;gap:8px!important}.crm-search-card{min-height:98px!important;padding:13px!important;grid-template-columns:minmax(0,1fr) 38px!important}.crm-search-card-side span{display:none!important}.crm-search-card-side b{width:36px!important;height:36px!important}}

/* 5.0.5 — wyszukiwarka tylko w górnym pasku obok dzwoneczka */
.crm-command-trigger{display:none!important;visibility:hidden!important;pointer-events:none!important}
.top-actions .crm-command-top-trigger{display:grid!important;position:static!important;flex:0 0 42px!important;margin:0!important;z-index:auto!important}

/* 5.0.10 — czytelna ikona wyszukiwania dopasowana do dzwoneczka */
.crm-command-top-trigger .crm-search-trigger-icon{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.crm-command-top-trigger:hover{background:#f7f9fc}
.crm-command-top-trigger:active{transform:scale(.96)}


/* 5.0.19 — boczna etykieta wyniku jest wyłącznie wizualna; cały dotyk obsługuje karta */
.crm-search-card-side,.crm-search-card-side *{pointer-events:none!important;user-select:none!important;-webkit-user-select:none!important}
.crm-search-card>*{pointer-events:none!important}
.crm-search-card{pointer-events:auto!important}

.automation-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px}.automation-settings-card h3{margin:18px 0 6px}.automation-settings-card h3:first-child{margin-top:0}.automation-switch{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.automation-switch span{display:grid;gap:3px}.automation-switch small{color:var(--muted)}.automation-switch input{width:22px;height:22px}.automation-log{display:grid;gap:9px;max-height:520px;overflow:auto}.automation-log>div{display:grid;padding:10px 0;border-bottom:1px solid var(--line)}.automation-log span,.automation-log small{color:var(--muted)}.finance-period{display:flex;gap:7px;flex-wrap:wrap}.finance-kpis{margin-bottom:16px}.finance-grid{margin-bottom:16px}.finance-list{display:grid;gap:8px}.finance-list button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;text-align:left;display:grid;gap:2px;cursor:pointer}.finance-list span,.finance-list small{color:var(--muted)}.finance-methods{display:grid;gap:9px}.finance-methods>div{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--line)}.finance-methods small{grid-column:1/-1;color:var(--muted)}@media(max-width:900px){.automation-grid{grid-template-columns:1fr}.finance-period{width:100%}}
/* CRM DEMO 5.0.13 — landscape i klawiatura ekranowa */
:root{
  --crm-vv-left:0px;
  --crm-vv-top:0px;
  --crm-keyboard-height:0px;
}

@media (max-width:1400px) and (pointer:coarse), (max-width:1400px) and (hover:none){
  #modal.modal:not(.hidden),
  .crm-command-layer,
  .client-contract-review-layer,
  .contract-pdf-viewer-layer,
  #contractNotebookLayer,
  .mobile-menu.open{
    max-width:none!important;
    max-height:none!important;
  }

  html.crm-keyboard-open #modal.modal:not(.hidden),
  html.crm-keyboard-open .crm-command-layer,
  html.crm-keyboard-open .client-contract-review-layer,
  html.crm-keyboard-open .contract-pdf-viewer-layer,
  html.crm-keyboard-open #contractNotebookLayer{
    position:fixed!important;
    left:var(--crm-vv-left,0px)!important;
    top:var(--crm-vv-top,0px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--crm-vv-width,100vw)!important;
    height:var(--crm-vv-height,100dvh)!important;
    min-height:0!important;
    max-height:var(--crm-vv-height,100dvh)!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
  }

  html.crm-keyboard-open #modal.modal:not(.hidden)>.modal-card,
  html.crm-keyboard-open .crm-command-shell,
  html.crm-keyboard-open .client-review-shell,
  html.crm-keyboard-open .client-sign-screen{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    border-radius:0!important;
    overflow:hidden!important;
  }

  html.crm-keyboard-open #modalBody,
  html.crm-keyboard-open .crm-command-body,
  html.crm-keyboard-open .client-review-shell>main{
    min-height:0!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-padding-bottom:24px!important;
  }

  html.crm-keyboard-open input,
  html.crm-keyboard-open textarea,
  html.crm-keyboard-open select{
    scroll-margin-top:72px!important;
    scroll-margin-bottom:24px!important;
  }
}

@media (orientation:landscape) and (max-height:600px) and (pointer:coarse),
       (orientation:landscape) and (max-height:600px) and (hover:none){
  .crm-command-layer{
    position:fixed!important;
    left:var(--crm-vv-left,0px)!important;
    top:var(--crm-vv-top,0px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--crm-vv-width,100vw)!important;
    height:var(--crm-vv-height,100dvh)!important;
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }

  .crm-command-shell{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    min-height:0!important;
    border-radius:0!important;
    display:grid!important;
    grid-template-columns:minmax(250px,34%) minmax(0,1fr)!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    overflow:hidden!important;
  }

  .crm-command-head{
    grid-column:1/-1!important;
    min-height:54px!important;
    padding:7px calc(12px + env(safe-area-inset-right,0px)) 7px calc(12px + env(safe-area-inset-left,0px))!important;
  }
  .crm-command-head h2{font-size:17px!important;line-height:1.1!important}
  .crm-command-head small{font-size:11px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

  .crm-command-search{
    grid-column:1!important;
    grid-row:2!important;
    align-content:start!important;
    padding:10px!important;
    border-right:1px solid #e2e8f0!important;
    border-bottom:0!important;
    overflow-y:auto!important;
  }
  .crm-command-search input{
    min-height:46px!important;
    font-size:16px!important;
  }
  .crm-command-clear{min-height:42px!important}

  .crm-command-body{
    grid-column:2!important;
    grid-row:2!important;
    padding:8px!important;
    overscroll-behavior:contain!important;
  }
  .crm-command-shortcuts{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .crm-command-shortcuts button{
    width:100%!important;
    min-height:42px!important;
    text-align:left!important;
  }
  .crm-smart-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .crm-search-card{min-height:78px!important;padding:10px!important}
}

@media (orientation:landscape) and (max-height:420px) and (pointer:coarse),
       (orientation:landscape) and (max-height:420px) and (hover:none){
  .crm-command-shell{grid-template-columns:minmax(220px,38%) minmax(0,1fr)!important}
  .crm-command-head{min-height:48px!important;padding-top:5px!important;padding-bottom:5px!important}
  .crm-command-head small{display:none!important}
  .crm-command-close{width:40px!important;height:40px!important}
  .crm-smart-query-info{padding:8px 10px!important}
}

/* CRM DEMO 5.0.14 — wszystkie pełnoekranowe warstwy w landscape korzystają
   dokładnie z tego samego obszaru roboczego co główny .shell. Dzięki temu
   wyszukiwarka i jej kolejne widoki nie wchodzą pod przyciski systemowe po
   obrocie telefonu w lewo ani w prawo. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  .crm-command-layer{
    top:var(--crm-vv-top,0px)!important;
    height:var(--crm-vv-height,100dvh)!important;
    max-height:var(--crm-vv-height,100dvh)!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }

  .crm-command-shell{
    max-width:100%!important;
    max-height:100%!important;
    min-height:0!important;
    box-sizing:border-box!important;
  }

  .crm-command-head{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .crm-command-search,
  .crm-command-body{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  .crm-command-body{
    padding-bottom:max(8px,var(--tomzal-safe-bottom,0px))!important;
  }
}

/* Po otwarciu klawiatury zachowaj boczne pasy aplikacji. Sama klawiatura
   nadal zajmuje pełną szerokość systemowego ekranu — ograniczana jest wyłącznie
   warstwa CRM znajdująca się nad nią. */
@media (max-width:1400px) and (pointer:coarse),
       (max-width:1400px) and (hover:none){
  html.crm-keyboard-open.crm-mobile-landscape .crm-command-layer{
    left:calc(var(--crm-vv-left,0px) + var(--tomzal-safe-left,0px))!important;
    width:calc(var(--crm-vv-width,100vw) - var(--tomzal-safe-left,0px) - var(--tomzal-safe-right,0px))!important;
    max-width:calc(var(--crm-vv-width,100vw) - var(--tomzal-safe-left,0px) - var(--tomzal-safe-right,0px))!important;
  }
}

/* CRM DEMO 5.0.15 — zachowanie pierwotnego, jednokolumnowego układu
   wyszukiwarki. Landscape zmienia wyłącznie obszar roboczy i safe-area. */
@media (orientation:landscape) and (max-height:600px) and (pointer:coarse),
       (orientation:landscape) and (max-height:600px) and (hover:none){
  .crm-command-shell{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:none!important;
    grid-template-rows:none!important;
  }

  .crm-command-head{
    flex:0 0 auto!important;
  }

  .crm-command-search{
    grid-column:auto!important;
    grid-row:auto!important;
    flex:0 0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:end!important;
    padding:8px 12px!important;
    border-right:0!important;
    border-bottom:1px solid #e2e8f0!important;
    overflow:visible!important;
  }

  .crm-command-body{
    grid-column:auto!important;
    grid-row:auto!important;
    flex:1 1 auto!important;
    min-height:0!important;
    width:100%!important;
    overflow-y:auto!important;
  }

  .crm-command-shortcuts{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .crm-smart-summary{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}

@media (orientation:landscape) and (max-height:420px) and (pointer:coarse),
       (orientation:landscape) and (max-height:420px) and (hover:none){
  .crm-command-shell{
    grid-template-columns:none!important;
  }
}

/* CRM DEMO 5.0.16 — nagłówki wyszukiwarki i kolejnych okien zawsze w
   bezpiecznym obszarze landscape, identycznie jak okna umów. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  .crm-command-layer{
    inset:var(--tomzal-safe-top,0px) var(--tomzal-safe-right,0px) var(--tomzal-safe-bottom,0px) var(--tomzal-safe-left,0px)!important;
    left:auto!important; top:auto!important;
    width:auto!important; max-width:none!important;
    height:auto!important; max-height:none!important;
  }
  .crm-command-shell{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
  }
  .crm-command-head{
    top:auto!important;
    z-index:30!important;
    overflow:visible!important;
    flex-shrink:0!important;
  }
  .crm-command-head>div{padding-left:0!important;margin-left:0!important}
  
  

  /* Popup otwierany z wyników wyszukiwarki nie może drugi raz doliczać
     bocznego pasa systemowego ani przesuwać nagłówka poza ekran. */
  #modal.modal:not(.hidden){
    inset:var(--tomzal-safe-top,0px) var(--tomzal-safe-right,0px) var(--tomzal-safe-bottom,0px) var(--tomzal-safe-left,0px)!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    width:auto!important;height:auto!important;
    padding:0!important;
  }
  #modal.modal:not(.hidden)>.modal-card{
    width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;
    margin:0!important;border-radius:0!important;transform:none!important;
  }
  #modal.modal:not(.hidden) .modal-head{
    min-height:58px!important;
    padding:10px 14px!important;
    margin:0!important;
    overflow:visible!important;
  }
  #modal.modal:not(.hidden) .modal-head>div,
  #modal.modal:not(.hidden) .modal-head h3,
  #modal.modal:not(.hidden) #modalTitle{min-width:0!important;margin-left:0!important;padding-left:0!important}
}

/* CRM DEMO 5.0.17 — belka wyszukiwarki w landscape dokładnie jak w oknach
   umów: cała warstwa zaczyna się poniżej górnej strefy systemowej i obok
   aktywnego bocznego pasa. Safe-area nie jest drugi raz nakładana na nagłówek. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  .crm-command-layer{
    position:fixed!important;
    inset:auto!important;
    left:calc(var(--crm-vv-left,0px) + var(--tomzal-safe-left,0px))!important;
    top:calc(var(--crm-vv-top,0px) + var(--tomzal-safe-top,0px))!important;
    right:auto!important;
    bottom:auto!important;
    width:calc(var(--crm-vv-width,100vw) - var(--tomzal-safe-left,0px) - var(--tomzal-safe-right,0px))!important;
    max-width:calc(var(--crm-vv-width,100vw) - var(--tomzal-safe-left,0px) - var(--tomzal-safe-right,0px))!important;
    height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    max-height:calc(var(--crm-vv-height,100dvh) - var(--tomzal-safe-top,0px) - var(--tomzal-safe-bottom,0px))!important;
    padding:0!important;
    margin:0!important;
  }

  .crm-command-shell{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }

  .crm-command-head{
    position:relative!important;
    top:0!important;
    width:100%!important;
    min-height:58px!important;
    padding:10px 14px!important;
    margin:0!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    overflow:hidden!important;
    flex:0 0 auto!important;
    z-index:40!important;
  }

  .crm-command-head>div{
    min-width:0!important;
    padding:0!important;
    margin:0!important;
  }

  .crm-command-head h2{
    margin:0!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .crm-command-close{
    position:relative!important;
    top:auto!important;
    right:auto!important;
    flex:0 0 46px!important;
    width:46px!important;
    height:46px!important;
    margin:0!important;
  }
}


/* CRM DEMO 5.1.0 — wspólna warstwa regresyjna dla Android WebView/PWA. */
:root{
  --crm-safe-top:max(env(safe-area-inset-top,0px),var(--crm-vv-top,0px));
  --crm-safe-right:max(env(safe-area-inset-right,0px),var(--crm-vv-right,0px),var(--crm-system-right,0px));
  --crm-safe-bottom:max(env(safe-area-inset-bottom,0px),var(--crm-vv-bottom,0px));
  --crm-safe-left:max(env(safe-area-inset-left,0px),var(--crm-vv-left,0px),var(--crm-system-left,0px));
}
html,body,#app{max-width:100%;min-width:0}
*,*::before,*::after{box-sizing:border-box}
.modal:not(.hidden),.crm-command-layer,.client-contract-review-layer,.contract-pdf-viewer-layer{
  max-width:100%;max-height:100%;
}
@media (orientation:landscape) and (pointer:coarse),
       (orientation:landscape) and (hover:none){
  #modal.modal:not(.hidden),.crm-command-layer,.client-contract-review-layer,.contract-pdf-viewer-layer{
    top:var(--crm-safe-top)!important;
    right:var(--crm-safe-right)!important;
    bottom:var(--crm-safe-bottom)!important;
    left:var(--crm-safe-left)!important;
    width:auto!important;height:auto!important;
  }
  #modal.modal:not(.hidden)>.modal-card{
    width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
    min-width:0!important;min-height:0!important;overflow:hidden!important;
  }
  #modal.modal:not(.hidden) #modalBody{
    min-width:0!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important;
  }
}
html.crm-keyboard-open #modal.modal:not(.hidden),html.crm-keyboard-open .crm-command-layer,
html.crm-keyboard-open .client-contract-review-layer,html.crm-keyboard-open .contract-pdf-viewer-layer{
  height:var(--crm-vv-height)!important;max-height:var(--crm-vv-height)!important;
}
button,.btn,[role="button"]{touch-action:manipulation}

/* CRM DEMO 5.3.41 — landscape Android: popupy i wiadomości nigdy pod paskiem systemowym.
   5.3.40 wymuszało inset:0 z wysoką specyficznością. Ten blok jest ładowany na końcu
   i przywraca realną boczną strefę navigation bar wyliczoną w app.js. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  html.crm-mobile-device{
    --crm-landscape-nav-left:max(var(--crm-system-left,0px),env(safe-area-inset-left,0px));
    --crm-landscape-nav-right:max(var(--crm-system-right,0px),env(safe-area-inset-right,0px));
  }

  /* Wszystkie pełnoekranowe warstwy/popupy kończą się PRZED przyciskami Androida. */
  html.crm-mobile-device #modal.modal:not(.hidden),
  html.crm-mobile-device .crm-command-layer,
  html.crm-mobile-device .mobile-select-layer,
  html.crm-mobile-device .mobile-date-layer,
  html.crm-mobile-device .mobile-datetime-layer,
  html.crm-mobile-device .change-origin-overlay,
  html.crm-mobile-device .client-contract-review-layer,
  html.crm-mobile-device .contract-pdf-viewer-layer,
  html.crm-mobile-device .client-sign-layer,
  html.crm-mobile-device .signature-layer,
  html.crm-mobile-device .fullscreen-layer{
    position:fixed!important;
    top:max(var(--crm-vv-top,0px),env(safe-area-inset-top,0px))!important;
    bottom:max(var(--crm-vv-bottom,0px),env(safe-area-inset-bottom,0px))!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    box-sizing:border-box!important;
  }

  html.crm-mobile-device.crm-system-nav-right #modal.modal:not(.hidden),
  html.crm-mobile-device.crm-system-nav-right .crm-command-layer,
  html.crm-mobile-device.crm-system-nav-right .mobile-select-layer,
  html.crm-mobile-device.crm-system-nav-right .mobile-date-layer,
  html.crm-mobile-device.crm-system-nav-right .mobile-datetime-layer,
  html.crm-mobile-device.crm-system-nav-right .change-origin-overlay,
  html.crm-mobile-device.crm-system-nav-right .client-contract-review-layer,
  html.crm-mobile-device.crm-system-nav-right .contract-pdf-viewer-layer,
  html.crm-mobile-device.crm-system-nav-right .client-sign-layer,
  html.crm-mobile-device.crm-system-nav-right .signature-layer,
  html.crm-mobile-device.crm-system-nav-right .fullscreen-layer{
    left:0!important;
    right:var(--crm-landscape-nav-right)!important;
  }

  html.crm-mobile-device.crm-system-nav-left #modal.modal:not(.hidden),
  html.crm-mobile-device.crm-system-nav-left .crm-command-layer,
  html.crm-mobile-device.crm-system-nav-left .mobile-select-layer,
  html.crm-mobile-device.crm-system-nav-left .mobile-date-layer,
  html.crm-mobile-device.crm-system-nav-left .mobile-datetime-layer,
  html.crm-mobile-device.crm-system-nav-left .change-origin-overlay,
  html.crm-mobile-device.crm-system-nav-left .client-contract-review-layer,
  html.crm-mobile-device.crm-system-nav-left .contract-pdf-viewer-layer,
  html.crm-mobile-device.crm-system-nav-left .client-sign-layer,
  html.crm-mobile-device.crm-system-nav-left .signature-layer,
  html.crm-mobile-device.crm-system-nav-left .fullscreen-layer{
    left:var(--crm-landscape-nav-left)!important;
    right:0!important;
  }

  /* Standardowa karta popupu ma dokładnie szerokość bezpiecznej warstwy. */
  html.crm-mobile-device #modal.modal:not(.hidden)>.modal-card{
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    max-height:100%!important;
    min-width:0!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  html.crm-mobile-device #modal.modal:not(.hidden) .modal-head,
  html.crm-mobile-device #modal.modal:not(.hidden) #modalBody,
  html.crm-mobile-device #modal.modal:not(.hidden) .modal-actions{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Wiadomości też są warstwą fixed — 5.3.40 miało left:0/right:0. */
  html.crm-mobile-device.crm-system-nav-right body[data-crm-view="messages"] .chat-layout.mobile-chat-open{
    left:0!important;
    right:var(--crm-landscape-nav-right)!important;
    width:auto!important;
  }
  html.crm-mobile-device.crm-system-nav-left body[data-crm-view="messages"] .chat-layout.mobile-chat-open{
    left:var(--crm-landscape-nav-left)!important;
    right:0!important;
    width:auto!important;
  }
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose,
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose-input,
  html.crm-mobile-device body[data-crm-view="messages"] .chat-layout.mobile-chat-open .chat-compose-bottom{
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}

/* CRM DEMO 5.3.42 — Android landscape: panel „Więcej” respektuje boczny pasek systemowy.
   Starsza reguła body.tomzal-menu-open .mobile-menu miała większą specyficzność i ponownie
   ustawiała inset 0, dlatego drawer nachodził pod Wstecz/Home/Ostatnie aplikacje. */
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu:not(.hidden){
    position:fixed!important;
    top:max(var(--crm-vv-top,0px),env(safe-area-inset-top,0px))!important;
    bottom:max(var(--crm-vv-bottom,0px),env(safe-area-inset-bottom,0px))!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    max-height:none!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    z-index:2147483000!important;
  }
  html.crm-mobile-device.crm-system-nav-right body.tomzal-menu-open .mobile-menu:not(.hidden){
    left:0!important;
    right:calc(var(--crm-landscape-nav-right,0px) + 8px)!important;
  }
  html.crm-mobile-device.crm-system-nav-left body.tomzal-menu-open .mobile-menu:not(.hidden){
    left:calc(var(--crm-landscape-nav-left,0px) + 8px)!important;
    right:0!important;
  }
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    max-height:100%!important;
    margin:0!important;
    padding-left:14px!important;
    padding-right:14px!important;
    padding-bottom:calc(18px + max(var(--crm-vv-bottom,0px),env(safe-area-inset-bottom,0px)))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    box-sizing:border-box!important;
  }
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card .mobile-menu-item,
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card .modal-head{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}

/* CRM DEMO 5.4.43 — usunięto historyczne ograniczenia panelu „Więcej” z wersji 5.3.43–5.4.8.
   Reguły 80 px / 160 px / 45dvh oraz touch-action:none powodowały zbyt niskie menu
   i gubienie tapnięć na Chrome/Android. Geometria menu jest teraz utrzymywana w
   assets/css/app/99-stabilization.css, a przewijana jest wyłącznie lista pozycji. */
/* CRM DEMO 5.4.42 — końcowa warstwa stabilizacyjna (przeniesiona z 5.4.41 bez zmiany kaskady).
   Nowe poprawki responsywne trafiają tutaj zamiast dopisywania kolejnych globalnych reguł do app.css. */

.shell,.main,.content{min-width:0;}
.tablewrap,.workflow-tablewrap,.calendar-card{max-width:100%;}

@media (max-width:900px){
  html.crm-browser-mobile,html.crm-browser-mobile body,html.crm-browser-mobile #app{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  html.crm-browser-mobile .shell,
  html.crm-browser-mobile .main,
  html.crm-browser-mobile .content,
  html.crm-browser-mobile .card,
  html.crm-browser-mobile #modalBody{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.crm-browser-mobile .tablewrap,
  html.crm-browser-mobile .workflow-tablewrap,
  html.crm-browser-mobile .calendar-card{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  html.crm-browser-mobile #modal.modal:not(.hidden)>.modal-card{
    min-width:0!important;
    max-width:100%!important;
    max-height:var(--crm-vv-height,100dvh)!important;
    box-sizing:border-box!important;
  }
}

@media (max-width:900px) and (orientation:landscape){
  html.crm-browser-mobile .content{overflow-x:hidden!important;}
  html.crm-browser-mobile .tablewrap>.table,
  html.crm-browser-mobile .workflow-tablewrap>.table{max-width:none!important;}
}

/* CRM DEMO 5.4.43 — stabilne menu „Więcej” na telefonie.
   Nagłówek i lista są osobnymi warstwami: nic nie może „przebić” nad tytuł Menu,
   a przewijanie dotyczy tylko listy. */
html.crm-mobile-device body.tomzal-menu-open .mobile-menu:not(.hidden){
  position:fixed!important;
  inset:var(--tomzal-safe-top,0px) 0 var(--tomzal-safe-bottom,0px) 0!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:rgba(2,6,23,.64)!important;
  backdrop-filter:blur(2px)!important;
  -webkit-backdrop-filter:blur(2px)!important;
  z-index:2147483645!important;
  isolation:isolate!important;
  pointer-events:auto!important;
  touch-action:pan-y!important;
}
html.crm-browser-mobile body.tomzal-menu-open .mobile-menu:not(.hidden){
  left:var(--crm-vv-left,0px)!important;
  right:auto!important;
  top:var(--crm-vv-top,0px)!important;
  bottom:auto!important;
  width:var(--crm-vv-width,100vw)!important;
  height:var(--crm-vv-height,100dvh)!important;
  max-width:var(--crm-vv-width,100vw)!important;
  max-height:var(--crm-vv-height,100dvh)!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(80dvh,calc(var(--crm-vv-height,100dvh) - 72px))!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:pan-y!important;
  background:#fff!important;
  border-radius:24px 24px 0 0!important;
  box-shadow:0 -18px 48px rgba(15,23,42,.20)!important;
  isolation:isolate!important;
  z-index:1!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card>.modal-head{
  position:relative!important;
  inset:auto!important;
  flex:0 0 auto!important;
  order:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-height:66px!important;
  margin:0!important;
  padding:12px 18px 10px!important;
  border-bottom:1px solid var(--line)!important;
  background:#fff!important;
  z-index:20!important;
  box-sizing:border-box!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card>.modal-head h3{
  margin:0!important;
  padding:0!important;
  font-size:21px!important;
  line-height:1.2!important;
  color:var(--ink)!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card>.modal-head .icon-btn{
  flex:0 0 44px!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  margin:0!important;
  touch-action:manipulation!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list{
  position:relative!important;
  flex:1 1 auto!important;
  order:1!important;
  min-height:0!important;
  width:100%!important;
  margin:0!important;
  padding:0 14px max(12px,env(safe-area-inset-bottom,0px))!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  background:#fff!important;
  z-index:1!important;
  box-sizing:border-box!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list>.mobile-menu-item{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-height:56px!important;
  margin:0!important;
  padding:12px 12px!important;
  border:0!important;
  border-bottom:1px solid var(--line)!important;
  background:#fff!important;
  color:var(--ink)!important;
  text-align:left!important;
  font-weight:750!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:rgba(213,165,66,.18)!important;
  z-index:1!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list>.mobile-menu-item:active{
  background:#f3f6fa!important;
}

html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list>.mobile-menu-item.active{
  background:#eef3f9!important;
  box-shadow:inset 3px 0 var(--gold)!important;
  color:var(--ink)!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list>.salon-tablet-menu-item.is-active{
  background:#edf9f2!important;
  box-shadow:inset 3px 0 #2f9e6f!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list>.danger-link{
  color:var(--red)!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card.mobile-menu-no-scroll,
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card.mobile-menu-needs-scroll{
  overflow:hidden!important;
  touch-action:pan-y!important;
}
html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card.mobile-menu-no-scroll .mobile-menu-list{
  overflow-y:auto!important;
  touch-action:pan-y!important;
}
@media (orientation:landscape) and (max-width:1400px) and (pointer:coarse),
       (orientation:landscape) and (max-width:1400px) and (hover:none){
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card{
    width:min(720px,100%)!important;
    max-height:calc(var(--crm-vv-height,100dvh) - 20px)!important;
    border-radius:20px 20px 0 0!important;
  }
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu-card>.modal-head{
    min-height:56px!important;
    padding:8px 14px!important;
  }
  html.crm-mobile-device body.tomzal-menu-open .mobile-menu-list>.mobile-menu-item{
    min-height:48px!important;
    padding:9px 12px!important;
  }
}

/* CRM DEMO 5.4.45 — mobilne menu „Więcej” napisane od zera.
   Celowo używa nowych klas crm-mobile-more*, aby nie dziedziczyć historycznych
   reguł .mobile-menu z wcześniejszych wersji CRM. */

.crm-mobile-more{display:none}
.crm-mobile-more.hidden{display:none!important}

@media (pointer:coarse), (max-width:900px){
  html.crm-mobile-device.crm-mobile-more-root-lock,
  html.crm-mobile-device body.crm-mobile-more-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  html.crm-mobile-device .crm-mobile-more:not(.hidden){
    position:fixed!important;
    z-index:2147483600!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    inset:var(--crm-vv-top,0px) var(--crm-vv-right,0px) var(--crm-vv-bottom,0px) var(--crm-vv-left,0px)!important;
    width:auto!important;
    height:auto!important;
    padding:10px!important;
    background:rgba(8,18,32,.62)!important;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    overflow:hidden!important;
    isolation:isolate!important;
  }

  html.crm-mobile-device .crm-mobile-more-panel{
    position:relative!important;
    z-index:1!important;
    display:flex!important;
    flex-direction:column!important;
    width:min(680px,100%)!important;
    height:auto!important;
    max-height:min(calc(var(--crm-more-height,100dvh) - 20px),760px)!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fff!important;
    color:#102033!important;
    border:1px solid rgba(148,163,184,.28)!important;
    border-radius:24px!important;
    box-shadow:0 24px 70px rgba(2,8,23,.34)!important;
    transform:none!important;
  }

  html.crm-mobile-device .crm-mobile-more-header{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
    min-height:72px!important;
    box-sizing:border-box!important;
    padding:14px 16px 13px 20px!important;
    border-bottom:1px solid #e6ebf2!important;
    background:#fff!important;
    position:relative!important;
    z-index:2!important;
  }
  html.crm-mobile-device .crm-mobile-more-header>div{
    min-width:0!important;
    display:block!important;
  }
  html.crm-mobile-device .crm-mobile-more-header span{
    display:block!important;
    margin:0 0 2px!important;
    color:#7b8798!important;
    font-size:10px!important;
    line-height:1.2!important;
    font-weight:800!important;
    letter-spacing:.14em!important;
  }
  html.crm-mobile-device .crm-mobile-more-header h3{
    margin:0!important;
    padding:0!important;
    color:#102033!important;
    font-size:24px!important;
    line-height:1.2!important;
    font-weight:800!important;
  }
  html.crm-mobile-device .crm-mobile-more-close{
    appearance:none!important;
    -webkit-appearance:none!important;
    flex:0 0 48px!important;
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid #dfe5ed!important;
    border-radius:15px!important;
    background:#fff!important;
    color:#16243a!important;
    font:700 28px/1 system-ui,sans-serif!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }

  html.crm-mobile-device .crm-mobile-more-grid{
    flex:0 1 auto!important;
    min-height:0!important;
    max-height:calc(var(--crm-more-height,100dvh) - 105px)!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:minmax(58px,auto)!important;
    align-content:start!important;
    gap:9px!important;
    padding:12px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:auto!important;
    scroll-behavior:auto!important;
    touch-action:pan-y!important;
    background:#f7f9fc!important;
  }

  html.crm-mobile-device .crm-mobile-more-item{
    appearance:none!important;
    -webkit-appearance:none!important;
    position:relative!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    min-height:58px!important;
    margin:0!important;
    padding:9px 11px!important;
    border:1px solid #e2e8f0!important;
    border-radius:16px!important;
    background:#fff!important;
    color:#142238!important;
    text-align:left!important;
    box-shadow:none!important;
    cursor:pointer!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  html.crm-mobile-device .crm-mobile-more-item:active{
    transform:scale(.985)!important;
    background:#edf3f9!important;
  }
  html.crm-mobile-device .crm-mobile-more-item.active{
    border-color:#c2a24d!important;
    background:#fff8e6!important;
    box-shadow:inset 3px 0 0 #d5aa38!important;
  }
  html.crm-mobile-device .crm-mobile-more-item:focus-visible{
    outline:3px solid rgba(37,99,235,.22)!important;
    outline-offset:1px!important;
  }
  html.crm-mobile-device .crm-mobile-more-icon{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    display:grid!important;
    place-items:center!important;
    overflow:hidden!important;
    border-radius:11px!important;
    background:#eef2f7!important;
    color:#142238!important;
    font-size:20px!important;
    line-height:1!important;
  }
  html.crm-mobile-device .crm-mobile-more-icon .mobile-profile-avatar,
  html.crm-mobile-device .crm-mobile-more-icon .user-avatar-img,
  html.crm-mobile-device .crm-mobile-more-icon img{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    border-radius:11px!important;
    object-fit:cover!important;
  }
  html.crm-mobile-device .crm-mobile-more-item>b{
    min-width:0!important;
    display:block!important;
    margin:0!important;
    color:inherit!important;
    font-size:14px!important;
    line-height:1.22!important;
    font-weight:750!important;
    overflow-wrap:anywhere!important;
  }
  html.crm-mobile-device .crm-mobile-more-badge{
    position:absolute!important;
    top:7px!important;
    right:8px!important;
    min-width:21px!important;
    height:21px!important;
    padding:0 5px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:999px!important;
    background:#dc2626!important;
    color:#fff!important;
    font-size:11px!important;
    font-style:normal!important;
    font-weight:800!important;
  }
  html.crm-mobile-device .crm-mobile-more-tablet.is-active{
    border-color:#86c99a!important;
    background:#ecf9ef!important;
  }
  html.crm-mobile-device .crm-mobile-more-logout{
    border-color:#f1c9c9!important;
    color:#a21d1d!important;
    background:#fff8f8!important;
  }

  
}

@media (orientation:landscape) and (pointer:coarse) and (max-height:620px){
  html.crm-mobile-device .crm-mobile-more:not(.hidden){
    padding-top:max(6px,calc(env(safe-area-inset-top,0px) + 4px))!important;
    padding-right:max(18px,calc(env(safe-area-inset-right,0px) + 58px))!important;
    padding-bottom:max(6px,calc(env(safe-area-inset-bottom,0px) + 4px))!important;
    padding-left:max(8px,calc(env(safe-area-inset-left,0px) + 4px))!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  html.crm-mobile-device .crm-mobile-more-panel{
    width:min(860px,calc(100vw - max(26px,calc(env(safe-area-inset-left,0px) + env(safe-area-inset-right,0px) + 72px))))!important;
    max-width:100%!important;
    height:auto!important;
    max-height:min(calc(var(--crm-more-height,100dvh) - 12px),100%)!important;
    border-radius:18px!important;
  }
  html.crm-mobile-device .crm-mobile-more-header{
    min-height:56px!important;
    padding:8px 14px 8px 16px!important;
  }
  html.crm-mobile-device .crm-mobile-more-header h3{font-size:20px!important}
  html.crm-mobile-device .crm-mobile-more-header span{font-size:9px!important}
  html.crm-mobile-device .crm-mobile-more-close{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;border-radius:13px!important;
  }
  html.crm-mobile-device .crm-mobile-more-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:minmax(52px,auto)!important;
    gap:7px!important;
    padding:8px!important;
  }
  html.crm-mobile-device .crm-mobile-more-item{
    min-height:52px!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:8px!important;
    padding:7px 9px!important;
    border-radius:13px!important;
  }
  html.crm-mobile-device .crm-mobile-more-icon,
  html.crm-mobile-device .crm-mobile-more-icon .mobile-profile-avatar,
  html.crm-mobile-device .crm-mobile-more-icon .user-avatar-img,
  html.crm-mobile-device .crm-mobile-more-icon img{
    width:34px!important;height:34px!important;min-width:34px!important;border-radius:9px!important;
  }
  html.crm-mobile-device .crm-mobile-more-item>b{font-size:12px!important}
}


@media (orientation:landscape) and (pointer:coarse) and (max-height:620px) and (min-width:980px){
  html.crm-mobile-device .crm-mobile-more-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}

@media (max-width:360px) and (orientation:portrait){
  html.crm-mobile-device .crm-mobile-more-grid{gap:7px!important;padding:9px!important}
  html.crm-mobile-device .crm-mobile-more-item{grid-template-columns:34px minmax(0,1fr)!important;gap:7px!important;padding:8px!important}
  html.crm-mobile-device .crm-mobile-more-icon{width:34px!important;height:34px!important;min-width:34px!important}
  html.crm-mobile-device .crm-mobile-more-item>b{font-size:13px!important}
}

/* Nowa dolna nawigacja mobilna nie korzysta już z historycznego data-v. */
@media (pointer:coarse), (max-width:900px){
  html.crm-mobile-device .mobilebar button[data-mobile-primary-route],
  html.crm-mobile-device .mobilebar button[data-mobile-more-open]{
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:rgba(213,165,66,.16)!important;
  }
  html.crm-mobile-device .mobilebar button[data-mobile-primary-route]>* ,
  html.crm-mobile-device .mobilebar button[data-mobile-more-open]>*{
    pointer-events:none!important;
  }
  html.crm-mobile-device body.crm-mobile-more-open .mobilebar{
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
}

/* CRM DEMO 5.4.55 — Android 7 / stary WebView: nawigacja bez CSS Grid, min(), inset i flex-gap. */


html.crm-android7-legacy .main{margin-left:0!important;}
html.crm-android7-legacy .content{padding-bottom:84px!important}
html.crm-android7-legacy .mobilebar{
  display:-webkit-flex!important;
  display:flex!important;
  -webkit-flex-direction:row!important;
  flex-direction:row!important;
  -webkit-align-items:stretch!important;
  align-items:stretch!important;
  position:fixed!important;
  left:0!important;right:0!important;bottom:0!important;top:auto!important;
  width:100%!important;height:64px!important;
  padding:0!important;margin:0!important;
  background:#0b1220!important;
  border:0!important;
  z-index:2147482000!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:hidden!important;
}
html.crm-android7-legacy .mobilebar>button{
  display:block!important;
  -webkit-flex:1 1 16.666%!important;
  flex:1 1 16.666%!important;
  width:16.666%!important;
  min-width:0!important;
  height:64px!important;
  margin:0!important;
  padding:7px 1px 5px!important;
  border:0!important;
  background:#0b1220!important;
  color:#94a3b8!important;
  font-size:10px!important;
  text-align:center!important;
  overflow:hidden!important;
}
html.crm-android7-legacy .mobilebar>button.active{background:#152238!important;color:#fff!important;font-weight:800!important}
html.crm-android7-legacy .mobilebar>button>div{display:block!important;font-size:18px!important;line-height:22px!important;height:22px!important}
html.crm-android7-legacy .mobilebar>button>span{display:block!important;font-size:9px!important;line-height:12px!important;margin-top:3px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* Nowe menu Więcej — fallback na Flexbox. */
html.crm-android7-legacy .crm-mobile-more:not(.hidden){
  display:-webkit-flex!important;display:flex!important;
  -webkit-align-items:center!important;align-items:center!important;
  -webkit-justify-content:center!important;justify-content:center!important;
  position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;
  width:100%!important;height:100%!important;
  padding:8px!important;
  background:rgba(8,18,32,.72)!important;
  z-index:2147483600!important;
  overflow:hidden!important;
}
html.crm-android7-legacy .crm-mobile-more-panel{
  display:-webkit-flex!important;display:flex!important;
  -webkit-flex-direction:column!important;flex-direction:column!important;
  width:96%!important;max-width:680px!important;
  height:auto!important;max-height:90vh!important;
  margin:auto!important;padding:0!important;
  overflow:hidden!important;
  background:#fff!important;border:1px solid #dfe5ed!important;border-radius:20px!important;
}
html.crm-android7-legacy .crm-mobile-more-header{
  display:-webkit-flex!important;display:flex!important;
  -webkit-align-items:center!important;align-items:center!important;
  -webkit-justify-content:space-between!important;justify-content:space-between!important;
  min-height:62px!important;padding:10px 12px 10px 16px!important;
}
html.crm-android7-legacy .crm-mobile-more-grid{
  display:-webkit-flex!important;display:flex!important;
  -webkit-flex-wrap:wrap!important;flex-wrap:wrap!important;
  width:100%!important;max-height:70vh!important;
  padding:6px!important;overflow-y:auto!important;overflow-x:hidden!important;
  background:#f7f9fc!important;
}
html.crm-android7-legacy .crm-mobile-more-item{
  display:-webkit-flex!important;display:flex!important;
  -webkit-align-items:center!important;align-items:center!important;
  -webkit-flex:1 1 46%!important;flex:1 1 46%!important;
  width:46%!important;min-width:0!important;min-height:56px!important;
  margin:4px!important;padding:8px 9px!important;
  border:1px solid #e2e8f0!important;border-radius:14px!important;background:#fff!important;
}
html.crm-android7-legacy .crm-mobile-more-icon{
  display:-webkit-flex!important;display:flex!important;
  -webkit-align-items:center!important;align-items:center!important;
  -webkit-justify-content:center!important;justify-content:center!important;
  -webkit-flex:0 0 36px!important;flex:0 0 36px!important;
  width:36px!important;height:36px!important;min-width:36px!important;margin-right:8px!important;
}
html.crm-android7-legacy .crm-mobile-more-item>b{display:block!important;min-width:0!important;font-size:12px!important;line-height:15px!important}
html.crm-android7-legacy body.crm-mobile-more-open .mobilebar{display:none!important}

@media (orientation:landscape){
  html.crm-android7-legacy .crm-mobile-more-panel{width:90%!important;max-width:820px!important;max-height:94vh!important}
  html.crm-android7-legacy .crm-mobile-more-grid{max-height:72vh!important}
  html.crm-android7-legacy .crm-mobile-more-item{-webkit-flex-basis:30%!important;flex-basis:30%!important;width:30%!important}
}

/* 5.4.63 — multimedia klienta */
.customer-photo-source-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.customer-video-thumb{height:112px;width:100%;display:grid;place-items:center;align-content:center;gap:4px;background:#111827;color:#fff;border-radius:8px}.customer-video-thumb span{font-size:34px;line-height:1}.customer-video-thumb small{font-size:10px;letter-spacing:.12em;color:#cbd5e1}.customer-video-viewer{display:grid;gap:10px}.customer-video-viewer video{display:block;width:100%;max-height:72vh;border-radius:14px;background:#000}.customer-video-viewer p{margin:0;color:#64748b;font-size:12px}.customer-photo-card.is-video .archive-photo-thumb{background:#fff}

/* CRM DEMO 5.4.66 — szybkie dane kontaktowe klienta */
.customer-contact-card{display:grid;gap:0;min-width:min(520px,100%)}
.customer-contact-name{font-size:18px;padding:2px 0 14px;border-bottom:1px solid var(--line)}
.customer-contact-line{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:13px 0;border-bottom:1px solid var(--line);align-items:start}
.customer-contact-line span{color:var(--muted);font-size:13px;font-weight:700}
.customer-contact-line strong{overflow-wrap:anywhere}
.customer-contact-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:16px}
@media(max-width:700px){.customer-contact-line{grid-template-columns:1fr;gap:4px}.customer-contact-actions{display:grid;grid-template-columns:1fr}.customer-contact-actions .btn{width:100%}.customer-contact-btn{font-size:11px!important}}


/* CRM DEMO 5.4.67 — animowany postęp wysyłania multimediów */
.customer-media-upload-box{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:11px;margin:0 0 14px;padding:12px 14px;border:1px solid #dbe3ec;border-radius:14px;background:#f8fafc;text-align:left}.customer-media-upload-box[hidden]{display:none!important}.customer-media-upload-copy{display:grid;gap:3px;min-width:0}.customer-media-upload-copy b{font-size:13px}.customer-media-upload-copy small{display:block;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-media-spinner{display:block;width:30px;height:30px;border:3px solid #e2e8f0;border-top-color:#b68a2d;border-radius:50%;animation:crmMediaSpin .72s linear infinite;flex:none}@keyframes crmMediaSpin{to{transform:rotate(360deg)}}.crm-media-progress{position:relative;height:6px;margin-top:5px;overflow:hidden;border-radius:999px;background:#e2e8f0}.crm-media-progress i{display:block;height:100%;min-width:8px;border-radius:inherit;background:#b68a2d;transition:width .25s ease}.crm-media-progress i.is-indeterminate{width:28%!important;animation:crmMediaProgress 1.15s ease-in-out infinite}@keyframes crmMediaProgress{0%{transform:translateX(-115%)}50%{transform:translateX(155%)}100%{transform:translateX(360%)}}.crm-media-upload-floating{position:fixed;z-index:90;right:18px;bottom:86px;display:grid;grid-template-columns:30px minmax(170px,260px);align-items:center;gap:9px;padding:10px 12px;border:1px solid #dbe3ec;border-radius:15px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.18)}.crm-media-upload-floating[hidden]{display:none!important}.crm-media-upload-floating .crm-media-spinner{width:25px;height:25px}.crm-media-upload-floating b{display:block;font-size:12px}.crm-media-upload-floating small{display:block;max-width:250px;margin-top:2px;color:#64748b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-media-upload-box.has-error,.crm-media-upload-floating.has-error{border-color:#fecaca;background:#fff7f7}.customer-media-upload-box.has-error .crm-media-spinner,.crm-media-upload-floating.has-error .crm-media-spinner{animation:none;border-color:#fecaca;border-top-color:#dc2626}@media(max-width:700px){.crm-media-upload-floating{left:10px;right:10px;bottom:calc(74px + env(safe-area-inset-bottom));grid-template-columns:28px 1fr}.customer-media-upload-box{grid-template-columns:32px 1fr;padding:10px 11px}.customer-media-upload-copy small{white-space:normal}.crm-media-spinner{width:26px;height:26px}}

/* 5.4.74 — trwała ikona/favicona: podgląd aktualnie zapisanego medium w panelu aktualizacji. */
.brand-current-media{display:flex;align-items:center;gap:14px;margin:14px 0 18px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#f8fafc;min-height:92px}.brand-current-media>img{width:76px;height:76px;flex:0 0 76px;border-radius:18px;object-fit:cover;background:#fff;border:1px solid #e5eaf1;box-shadow:0 4px 14px rgba(15,23,42,.08)}.brand-current-copy{display:grid;gap:2px;min-width:0}.brand-current-copy b{font-size:14px}.brand-current-copy span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:480px}.brand-current-copy small{font-size:11px;color:#0f7a55;font-weight:700}.brand-current-placeholder{display:grid;gap:3px;color:var(--muted)}.brand-current-placeholder b{color:var(--ink)}.brand-file-field{margin-bottom:4px}@media(max-width:540px){.brand-current-media{align-items:flex-start}.brand-current-media>img{width:68px;height:68px;flex-basis:68px}.brand-current-copy span{white-space:normal;overflow-wrap:anywhere}}


/* 5.4.76 — pokazuj ikonę/favikonę używaną w witrynie; podgląd otwierany wyłącznie kliknięciem miniatury. */
.brand-current-help-5475{margin-top:-2px;margin-bottom:12px}.brand-current-grid-5475{display:grid;grid-template-columns:86px minmax(0,1fr) 132px;gap:14px;align-items:center;width:100%}.brand-current-thumb-5475,.brand-current-favicon-5475{appearance:none;border:0;background:transparent;padding:0;cursor:pointer;color:inherit;font:inherit}.brand-current-thumb-5475{display:grid;gap:5px;justify-items:center}.brand-current-thumb-5475 img{width:82px;height:82px;border-radius:18px;object-fit:cover;background:#fff;border:1px solid #e5eaf1;box-shadow:0 4px 14px rgba(15,23,42,.08)}.brand-current-thumb-5475 span{font-size:9px;color:var(--muted)}.brand-current-favicon-5475{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #e5eaf1;border-radius:13px;background:#fff;text-align:left}.brand-current-favicon-5475 img{width:40px;height:40px;object-fit:contain;image-rendering:auto;background:#fff;border:1px solid #edf0f4;border-radius:8px}.brand-current-favicon-5475 span{font-size:11px;font-weight:700}.brand-current-favicon-5475 small{font-size:9px;color:var(--muted);font-weight:500}.brand-current-copy small.is-current{color:#475569}.brand-current-copy small.is-persistent{color:#0f7a55}.brand-image-viewer-5475{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(2,6,23,.82);backdrop-filter:blur(3px)}.brand-image-viewer-5475[hidden]{display:none!important}.brand-image-viewer-card-5475{position:relative;display:grid;gap:10px;justify-items:center;max-width:min(760px,94vw);max-height:92vh;padding:18px;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.35)}.brand-image-viewer-card-5475 img{display:block;max-width:min(680px,86vw);max-height:75vh;object-fit:contain;background:#f8fafc;border-radius:12px}.brand-image-viewer-title-5475{font-size:13px;font-weight:700}.brand-image-viewer-close-5475{position:absolute;right:8px;top:8px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:#0f172a;color:#fff;font-size:24px;line-height:34px;cursor:pointer}.brand-current-thumb-5475:focus-visible,.brand-current-favicon-5475:focus-visible{outline:3px solid rgba(182,138,45,.35);outline-offset:3px}@media(max-width:700px){.brand-current-grid-5475{grid-template-columns:76px minmax(0,1fr)}.brand-current-thumb-5475 img{width:72px;height:72px}.brand-current-favicon-5475{grid-column:1/-1;width:100%}.brand-image-viewer-5475{padding:10px}.brand-image-viewer-card-5475{padding:12px}}


/* CRM DEMO 5.4.79 — inteligentny grafik: wyłącznie dyskretny dymek, bez automatycznych zmian */
.day{position:relative}
.ai-calendar-hint{position:absolute;right:7px;bottom:7px;z-index:3;display:inline-flex;align-items:center;gap:5px;max-width:calc(100% - 14px);min-height:28px;padding:5px 8px;border:1px solid #e3bf68;border-radius:999px;background:#fff8e8;color:#67470a;box-shadow:0 4px 12px rgba(15,23,42,.10);font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}
.ai-calendar-hint:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(15,23,42,.14)}
.ai-calendar-hint span{font-size:13px}.ai-calendar-hint b{overflow:hidden;text-overflow:ellipsis}
.ai-hints-loading{display:grid;gap:6px;padding:18px}.ai-hints-loading span{color:var(--muted);font-size:12px}
.ai-hints-modal-head h3{margin:3px 0 6px}.ai-hints-modal-head p{margin:0 0 14px;color:var(--muted);line-height:1.6}
.ai-calendar-suggestions{display:grid;gap:10px;margin-top:14px}.ai-calendar-suggestion{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.ai-calendar-suggestion h3{margin:3px 0 4px}.ai-calendar-suggestion p{margin:0 0 5px}.ai-calendar-suggestion>.btn{flex:none}
@media(max-width:700px){.ai-calendar-hint{position:static;margin-top:8px;max-width:100%;width:auto}.ai-calendar-suggestion{display:grid}.ai-calendar-suggestion>.btn{width:100%}}

/* 5.4.84 — dymek AI o kliencie oczekującym w pobliżu istniejącej wizyty. */
.ai-calendar-hint-nearby{white-space:normal;line-height:1.2;max-width:calc(100% - 14px);text-align:left;border-radius:12px;padding:6px 8px}
.ai-calendar-hint-nearby b{white-space:normal;overflow:visible;text-overflow:clip}
@media(min-width:701px){.ai-calendar-hint-nearby{max-width:calc(100% - 14px)}}


/* CRM DEMO 5.4.89 — podstawowe dymki dla pracowników; pełna analiza czasu włączana przez administratora. */
.ai-workflow-nearby-hint{display:flex;align-items:center;gap:7px;width:100%;margin:0 0 8px;padding:8px 10px;border:1px solid #e3bf68;border-radius:12px;background:#fff8e8;color:#67470a;box-shadow:0 3px 10px rgba(15,23,42,.08);font:inherit;font-size:11px;font-weight:800;line-height:1.25;text-align:left;cursor:pointer}
.ai-workflow-nearby-hint:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.12)}.ai-workflow-nearby-hint span{font-size:15px;flex:none}.ai-workflow-nearby-hint b{white-space:normal}
@media(max-width:700px){.ai-workflow-nearby-hint{margin-top:8px;margin-bottom:8px}}

/* 5.4.89 — druga linia dymka jest widoczna administratorowi wyłącznie po włączeniu pełnych podpowiedzi AI. */
.ai-hint-copy{display:grid;gap:2px;min-width:0}.ai-hint-admin-capacity{display:block;color:#8a5b08;font-size:9px;font-weight:750;line-height:1.25;white-space:normal}.ai-workflow-nearby-hint .ai-hint-copy{flex:1}.ai-workflow-nearby-hint .ai-hint-admin-capacity{font-size:10px;margin-top:2px}.ai-calendar-hint .ai-hint-copy>b{display:block}.ai-calendar-hint:has(.ai-hint-admin-capacity){border-radius:12px;white-space:normal;align-items:flex-start}


/* CRM DEMO 5.4.89 — dymek AI w kalendarzu jest elementem układu, a nie nakładką na termin. */
.ai-calendar-hint-inline{position:static;inset:auto;display:flex;width:100%;max-width:100%;margin-top:2px;justify-self:stretch;box-shadow:0 2px 8px rgba(15,23,42,.08)}
.ai-calendar-hint-inline.ai-calendar-hint-nearby{max-width:100%}
.day:has(.ai-calendar-hint-inline){padding-bottom:8px}
@media(max-width:700px){.ai-calendar-hint-inline{width:100%;margin-top:3px}}

/* 5.4.97 — licznik wiadomości także na mobilnym przycisku Więcej. */
.mobilebar [data-mobile-more-open]{position:relative}
.mobilebar .crm-mobile-more-nav-badge{position:absolute;top:3px;right:calc(50% - 23px);z-index:4;margin:0;min-width:19px;height:19px;padding:0 5px;font-size:9px;border:2px solid #fff}
.side .nav[data-v="messages"] .messages-unread-badge{margin-left:auto;flex:0 0 auto}

/* 5.4.98 — desktop: czerwony licznik bezpośrednio przy napisie „Wiadomości”, jak w widoku mobilnym. */
.side .nav[data-v="messages"]{justify-content:flex-start}
.side .nav[data-v="messages"] .messages-unread-badge{margin-left:8px!important;margin-right:0!important;flex:0 0 auto!important;min-width:20px;height:20px;padding:0 5px;border:2px solid rgba(255,255,255,.92);font-size:10px;line-height:1}

/* CRM DEMO 5.4.153 — stałe boczne marginesy standardowych popupów.
   Reguła jest celowo w końcowej warstwie, aby żaden tryb mobile/landscape
   nie mógł ponownie wyzerować paddingu i przykleić karty do krawędzi ekranu. */
:root{--crm-popup-side-gutter:clamp(10px,2vw,18px)}
#modal.modal:not(.hidden){
  box-sizing:border-box!important;
  padding-left:max(var(--crm-popup-side-gutter),env(safe-area-inset-left,0px))!important;
  padding-right:max(var(--crm-popup-side-gutter),env(safe-area-inset-right,0px))!important;
}
#modal.modal:not(.hidden)>.modal-card{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}


/* CRM DEMO 5.4.154 — stabilny formularz umowy przy klawiaturze tabletu + drobniejsza kratka notatnika. */
html.crm-tablet-device.crm-keyboard-open #modal.modal.modal-contract-editor:not(.hidden) .contract-form-grid,
html.crm-tablet-device.crm-keyboard-open #modal.modal.modal-contract-editor:not(.hidden) .contract-money-grid,
html.crm-tablet-device.crm-keyboard-open #modal.modal.modal-contract-editor:not(.hidden) .contract-product-row{
  grid-template-columns:1fr!important;
}
html.crm-tablet-device.crm-keyboard-open #modal.modal.modal-contract-editor:not(.hidden) .contract-form-grid>.field,
html.crm-tablet-device.crm-keyboard-open #modal.modal.modal-contract-editor:not(.hidden) .contract-money-grid>.field,
html.crm-tablet-device.crm-keyboard-open #modal.modal.modal-contract-editor:not(.hidden) .contract-product-row>*{
  grid-column:1/-1!important;
  min-width:0!important;
}
@media (min-width:601px) and (max-width:1366px){
  html.crm-tablet-device .contract-notebook-work canvas.notebook-bg-grid{
    background-size:24px 24px!important;
    background-position:0 0!important;
  }
}


/* CRM DEMO 5.4.156 — Nowa wiadomość na tablecie nie zmienia geometrii po otwarciu klawiatury.
   Android potrafi chwilowo zgłosić viewport jako landscape, mimo że fizycznie tablet nadal jest w pionie.
   Guard JS utrzymuje crm-portrait-compose-open, a ta warstwa odtwarza pełny panel bez zależności od media orientation. */
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open.mobile-chat-open{
  display:block!important;
  position:fixed!important;
  top:var(--crm-chat-top,calc(var(--tomzal-safe-top,0px) + 66px))!important;
  right:0!important;
  bottom:var(--crm-chat-bottom,var(--tomzal-mobile-nav-height,64px))!important;
  left:0!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  transform:none!important;
  overflow:hidden!important;
  background:#fff!important;
  z-index:1200!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .chat-sidebar{
  display:none!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .chat-pane{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  background:#fff!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-inline-shell{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-inline-head{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto!important;
  width:100%!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-inline{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:none!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-intro{
  flex:0 0 auto!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  flex:1 1 auto!important;
  min-width:0!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  padding-bottom:28px!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-grid>.field{
  grid-column:1/-1!important;
  min-width:0!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .message-compose-inline-actions{
  position:relative!important;
  inset:auto!important;
  bottom:auto!important;
  flex:0 0 auto!important;
  width:100%!important;
  min-height:68px!important;
  margin:0!important;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
  background:#fff!important;
  border-top:1px solid var(--line)!important;
  box-shadow:0 -8px 24px rgba(15,23,42,.08)!important;
  z-index:20!important;
  box-sizing:border-box!important;
}
html.crm-tablet-device.crm-keyboard-open body[data-crm-view="messages"] .chat-layout.crm-portrait-compose-open .chat-mobile-back{
  display:inline-flex!important;
}


/* 5.4.159 — status montażu + zdalny odbiór */
.installation-incomplete-btn{border:1px solid #d8a321!important;background:#fff8e6!important;color:#7a5100!important;font-weight:800!important}
.installation-incomplete-btn:hover{background:#ffefbd!important}
.today-gps-finish-hint{display:block;margin-top:7px;padding:7px 9px;border:1px solid #b9cbe4;border-radius:9px;background:#f0f6ff;color:#274566;font-style:normal;font-size:12px;font-weight:700;line-height:1.35}
.receipt-remote-status{box-shadow:none!important;margin:14px 0!important;padding:12px 14px!important;display:flex;flex-direction:column;gap:4px;background:#f4f7fb}
.receipt-remote-status.receipt-remote-ready{background:#edf9f0;border-color:#a9d9b4}
.receipt-review footer{gap:8px;flex-wrap:wrap}
@media(max-width:900px){.receipt-review footer .btn{flex:1 1 150px}.today-plan-actions .installation-incomplete-btn{width:auto}}

/* CRM DEMO 5.4.161 — Sprawy: bez pustej szczeliny po prawej stronie tabel procesu. */
body[data-crm-view="tasks"] .workflow-card .workflow-tablewrap,
body[data-crm-view="tasks"] .workflow-card .tablewrap{
  scrollbar-gutter:auto!important;
}

/* CRM DEMO 5.4.171 — Montaże ustalone: czytelny układ akcji 2×2. */
body[data-crm-view="tasks"] .workflow-card .workflow-actions .installation-incomplete-btn{
  overflow-wrap:normal!important;
  line-height:1.18!important;
  min-height:48px!important;
  padding:7px 8px!important;
  font-size:12px!important;
}
body[data-crm-view="tasks"] .workflow-card .workflow-actions .installation-incomplete-btn + .btn,
body[data-crm-view="tasks"] .workflow-card .workflow-actions .installation-incomplete-btn ~ .btn{
  min-height:44px!important;
}
@media (min-width:701px){
  body[data-crm-view="tasks"] .workflow-card .workflow-actions .installation-incomplete-btn{
    align-self:stretch!important;
  }
}


/* 5.4.172 — montaże ustalone: 2x2 przyciski na telefonie/tablecie mobilnym */




/* 5.4.173 — Montaże ustalone: stabilny układ 2x2 również na desktopie. */






/* 5.4.174 — wymuszone dwuwierszowe "Montaż niedokończony" w Sprawach. */



/* 5.4.175 — rzeczywisty stan urządzeń GPS i historia starych telefonów */
.gps-device-state-line{margin:5px 0 3px}.gps-state-active{background:#dcfce7;color:#166534}.gps-state-offline{background:#fef3c7;color:#92400e}.gps-state-logged_out,.gps-state-stale,.gps-stale{background:#eef2f7;color:#64748b}.gps-device-old{opacity:.78}.gps-device-history{margin-top:16px;border-top:1px solid var(--line,#dbe3ee);padding-top:12px}.gps-device-history>summary{cursor:pointer;font-weight:800;display:flex;align-items:center;gap:8px;padding:8px 0}.gps-device-history .tablewrap{margin-top:8px}.gps-device-history .gps-map-link{opacity:.85}

/* 5.4.178 — automatyczny przewidywany czas wizyty */
.appointment-predicted-duration{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
  box-sizing:border-box;
}
.appointment-predicted-duration b{font-size:14px;line-height:1.2;color:var(--ink)}
.appointment-predicted-duration span{font-size:11px;line-height:1;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
@media(max-width:700px){
  .appointment-predicted-duration{min-height:44px;padding:9px 12px}
  .appointment-predicted-duration b{font-size:13px}
}

/* 5.4.186 — dyskretniejszy dymek „Masz jeszcze klienta w okolicy”. */




/* 5.4.187 — kalendarz: mniejszy i lekko węższy dymek „Masz jeszcze klienta w okolicy”. */






/* 5.4.190 — pusta lista klientów bez sztucznej kolumny Akcje */
body[data-crm-view="customers"] .customer-list-card .tablewrap.customer-empty-table .table thead{
  display:none!important;
}
body[data-crm-view="customers"] .customer-list-card .tablewrap.customer-empty-table .table tbody tr{
  background:transparent!important;
}
body[data-crm-view="customers"] .customer-list-card .tablewrap.customer-empty-table .table tbody td{
  width:100%!important;
  text-align:center!important;
  padding:0!important;
  border:0!important;
}
body[data-crm-view="customers"] .customer-list-card .tablewrap.customer-empty-table .empty-state{
  min-height:230px!important;
  width:100%!important;
}

/* 5.4.230 — dużo większy skrót Plan na dziś na pulpicie */
.dashboard-today-plan-shortcut{
  margin-top:18px;
  width:min(100%, 380px);
  max-width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"icon title" "icon desc";
  column-gap:14px;
  align-items:center;
  border:1px solid #d8e1ec;
  border-radius:16px;
  background:#fff;
  padding:20px 24px;
  color:var(--ink);
  text-align:left;
  cursor:pointer;
  box-shadow:0 7px 18px rgba(15,23,42,.08);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.dashboard-today-plan-shortcut:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(15,23,42,.11);border-color:#c4d0df}
.dashboard-today-plan-shortcut>span{grid-area:icon;font-size:38px;line-height:1}
.dashboard-today-plan-shortcut>b{grid-area:title;font-size:22px;line-height:1.12}
.dashboard-today-plan-shortcut>small{grid-area:desc;color:var(--muted);font-size:14px;line-height:1.4;margin-top:5px}
@media(max-width:700px){
 .dashboard-today-plan-shortcut{width:100%;padding:18px 18px;margin-top:14px;border-radius:15px;column-gap:12px}
 .dashboard-today-plan-shortcut>span{font-size:34px}
 .dashboard-today-plan-shortcut>b{font-size:20px}
 .dashboard-today-plan-shortcut>small{font-size:13px}
}

/* 5.4.196 — notatka rysikiem: jawny szkic / zapis i lekki pasek akcji */





/* 5.4.198 — tablet: formularz umowy nie zmienia liczby kolumn po otwarciu/zamknięciu klawiatury. */



/* 5.4.199 — umowa na urządzeniu dotykowym: blokada 1 kolumny niezależna od zmian viewportu po otwarciu klawiatury. */





/* 5.4.201 — niezależny stan połączenia telefonu i akcja wylogowania. */
.gps-connection-online{background:#dcfce7;color:#166534}.gps-connection-offline{background:#fef3c7;color:#92400e}.gps-device-logout{white-space:nowrap}


/* CRM DEMO 5.4.203 — desktop: kompaktowe akcje produktów i ten sam panel notatki co na Androidzie. */
@media (min-width:1101px) and (pointer:fine){
  
  
  

  /* Jeden wspólny interfejs notatnika: desktop korzysta z mobilnego paska Android. */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}


/* 5.4.205 — desktop: wyśrodkowany pasek Notatki rysikiem oraz komunikat diagnostyki GPS. */





/* 5.4.207 — diagnostyka telefonów: ostatnia kolumna nie tworzy pustego pasa po prawej. */


/* 5.4.208 — tabela telefonów wypełnia całą szerokość bez pozornej pustej kolumny. */


/* 5.4.211 — szczegółowa diagnostyka aktywnych urządzeń jak w starszym CRM. */
.gps-na{background:#eef2f7;color:#64748b}
.gps-device-diagnostics{width:100%!important;min-width:1280px!important;table-layout:auto!important}
.gps-device-diagnostics th,.gps-device-diagnostics td{width:auto!important;text-align:left!important;white-space:normal!important;vertical-align:top!important}

.gps-device-diagnostics th:nth-child(1),.gps-device-diagnostics td:nth-child(1){min-width:235px!important}
.gps-device-diagnostics th:nth-child(6),.gps-device-diagnostics td:nth-child(6){min-width:270px!important}
.gps-device-diagnostics th:nth-child(7),.gps-device-diagnostics td:nth-child(7){min-width:170px!important}
.gps-device-diagnostics th:nth-child(8),.gps-device-diagnostics td:nth-child(8){min-width:165px!important}
.gps-device-diagnostics th:last-child,.gps-device-diagnostics td:last-child{width:1%!important;white-space:nowrap!important;text-align:right!important}
.gps-device-diagnostics .gps-device-id{font-size:10px;opacity:.72;overflow-wrap:anywhere}

/* 5.4.217 — historia użytkowników aktywnych w ostatnich 3 godzinach pod tabelą urządzeń */
#gpsAdminPanel .gps-recent-panel{margin-top:16px;height:auto}
#gpsAdminPanel .gps-recent-panel td:nth-child(2){min-width:280px}

/* 5.4.232 — „Masz jeszcze klienta w okolicy”: pół rozmiaru, pod treścią/akcjami, po prawej. */
body[data-crm-view="calendar"] .calendar-page .day.ai-hint-layout-fixed > .ai-calendar-hint-inline.ai-calendar-hint-nearby{
  width:50%!important;max-width:50%!important;font-size:7.5px!important;line-height:1.05!important;justify-content:center!important;text-align:center!important;
}
body[data-crm-view="calendar"] .calendar-page .day.ai-hint-layout-fixed > .ai-calendar-hint-inline.ai-calendar-hint-nearby > span:first-child{font-size:8px!important}
body[data-crm-view="calendar"] .calendar-page .day.ai-hint-layout-fixed > .ai-calendar-hint-inline.ai-calendar-hint-nearby .ai-hint-copy{text-align:center!important}
body[data-crm-view="calendar"] .calendar-page .day.ai-hint-layout-fixed > .ai-calendar-hint-inline.ai-calendar-hint-nearby .ai-hint-copy b{font-size:7.5px!important;line-height:1.05!important}
body[data-crm-view="calendar"] .calendar-page .day.ai-hint-layout-fixed > .ai-calendar-hint-inline.ai-calendar-hint-nearby .ai-hint-admin-capacity{font-size:7px!important;line-height:1.05!important}

body[data-crm-view="calendar"] .today-plan-item > .ai-today-nearby-hint{width:50%!important;font-size:8px!important;line-height:1.08!important;justify-content:center!important;text-align:center!important;
}
body[data-crm-view="calendar"] .today-plan-item > .ai-today-nearby-hint > span:first-child{font-size:9px!important}
body[data-crm-view="calendar"] .today-plan-item > .ai-today-nearby-hint .ai-hint-copy{text-align:center!important}
body[data-crm-view="calendar"] .today-plan-item > .ai-today-nearby-hint .ai-hint-copy b{font-size:8px!important;line-height:1.08!important}

body[data-crm-view="tasks"] .workflow-card .workflow-actions + .ai-workflow-nearby-hint,
body[data-crm-view="tasks"] .workflow-card td > .ai-workflow-nearby-hint{
  width:50%!important;font-size:8px!important;line-height:1.08!important;justify-content:center!important;text-align:center!important;
}
body[data-crm-view="tasks"] .workflow-card .ai-workflow-nearby-hint > span:first-child{font-size:9px!important}
body[data-crm-view="tasks"] .workflow-card .ai-workflow-nearby-hint .ai-hint-copy{text-align:center!important}
body[data-crm-view="tasks"] .workflow-card .ai-workflow-nearby-hint .ai-hint-copy b{font-size:8px!important;line-height:1.08!important}
body[data-crm-view="tasks"] .workflow-card .ai-workflow-nearby-hint .ai-hint-admin-capacity{font-size:7px!important;line-height:1.05!important}

@media(max-width:700px){
  body[data-crm-view="calendar"] .today-plan-item > .ai-today-nearby-hint{width:50%!important;max-width:none!important;}
  body[data-crm-view="tasks"] .workflow-card .ai-workflow-nearby-hint{width:50%!important;max-width:none!important;}
}
/* 5.4.234 — finalne wymuszenie dymku AI po prawej krawędzi. */







/* 5.4.239 — telefon: prawdziwe przełączanie Widok listy / Widok miesiąca. */


/* Telefon/tablet dotykowy w poziomie: lista nie może dziedziczyć min-width:760px z miesiąca. */




/* 5.4.240 — Termin realizacji: picker wyśrodkowany na ekranie na urządzeniach dotykowych. */
@media (max-width:1366px) and (pointer:coarse){
  #modal .contract-term-picker[open] > .contract-term-menu,
  .contract-term-picker[open] > .contract-term-menu{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    width:min(360px,calc(100vw - 28px))!important;
    max-width:calc(100vw - 28px)!important;
    max-height:min(70dvh,520px)!important;
    overflow:auto!important;
    margin:0!important;
    transform:translate(-50%,-50%)!important;
    z-index:2147483000!important;
  }
}

/* 5.4.242 — telefon: miesiąc nadal mieści się na ekranie, ale jest wyraźnie czytelniejszy. */


/* 5.4.243 — telefon: dzisiejsza kolumna miesiąca szersza od pozostałych. */



/* 5.4.245 — Potwierdzenie odbioru: przyciski jak w pierwszym wyborze podpisu umowy. */
.receipt-review>footer .btn{min-height:50px!important;font-weight:800!important}
.receipt-review>footer #startReceiptSignature{white-space:normal!important;text-align:center!important}

/* 5.4.262 — wyróżnienie własnych klientów i przełącznik pracownika salonu */
.customer-list-card tr.customer-row-mine{box-shadow:inset 4px 0 0 var(--gold,#c89b3c);background:rgba(200,155,60,.07)}
.my-client-badge{display:inline-flex;align-items:center;margin:0 7px 5px 0;padding:3px 8px;border-radius:999px;background:rgba(200,155,60,.16);font-size:11px;font-weight:800;letter-spacing:.02em;color:var(--text,#172033)}
.salon-worker-switch{max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.salon-worker-picker{display:grid;gap:10px}
.salon-worker-picker>p{margin:0 0 4px}
.salon-worker-option{width:100%;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line,#e3e7ee);border-radius:14px;background:var(--card,#fff);text-align:left;cursor:pointer}
.salon-worker-option:hover,.salon-worker-option.active{border-color:var(--gold,#c89b3c);box-shadow:0 0 0 2px rgba(200,155,60,.12)}
.salon-worker-option span:not(.salon-worker-avatar):not(.user-avatar-img):not(.avatar-fallback){display:flex;flex-direction:column;gap:3px}
.salon-worker-option small{opacity:.7}.salon-worker-option em{font-style:normal;font-size:20px;font-weight:800}
.salon-worker-avatar,.salon-worker-avatar.user-avatar-img{width:44px;height:44px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--soft,#f3f5f8);font-weight:800}
.salon-worker-avatar img{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.salon-worker-switch{max-width:150px;padding-left:9px;padding-right:9px;font-size:12px}.salon-worker-option{grid-template-columns:42px 1fr auto;padding:10px}.salon-worker-avatar,.salon-worker-avatar.user-avatar-img{width:40px;height:40px}}


/* 5.4.268 — status wpłaty zaliczki */
.contract-deposit-line{margin-top:5px}
.contract-deposit-status{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:5px 9px;border-radius:999px;font-size:12px;line-height:1.2;font-weight:800;white-space:nowrap;border:1px solid transparent}
.contract-deposit-status.is-unpaid{background:#fee2e2;color:#b42318;border-color:#fecaca}
.contract-deposit-status.is-paid{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.contract-deposit-status.is-none{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}
.contract-deposit-cell{min-width:190px}.contract-deposit-cell .contract-deposit-status{margin-top:7px}.contract-deposit-amount{font-weight:800}.contract-deposit-method{margin-top:2px;color:#64748b;font-size:12px}
.contract-deposit-action{white-space:nowrap}
.customer-preview-deposit{margin-top:8px}
@media (max-width:720px){.contract-deposit-status{white-space:normal}.contract-deposit-action{width:100%}}


/* 5.4.269 — prywatny tryb testowy klienta */
.test-mode-field{margin-top:4px}
.test-mode-toggle{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px dashed #d2a106;border-radius:14px;background:#fff9e8;cursor:pointer}
.test-mode-toggle input{width:20px;height:20px;margin:2px 0 0;flex:0 0 auto}
.test-mode-toggle span{display:flex;flex-direction:column;gap:4px}
.test-mode-toggle b{font-size:14px;color:#6b4f00}
.test-mode-toggle small{line-height:1.45;color:#6f5a1b}
.test-mode-banner{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid #d2a106;border-radius:12px;background:#fff9e8}
.test-mode-banner b{font-size:13px;letter-spacing:.04em;color:#6b4f00}
.test-mode-banner span{font-size:12px;line-height:1.45;color:#6f5a1b}
.test-client-badge{display:inline-flex;align-items:center;padding:2px 7px;margin-right:4px;border-radius:999px;background:#fff0b8;color:#6b4f00;font-size:10px;font-weight:900;letter-spacing:.06em;vertical-align:1px}


/* 5.4.272 — statusy rozliczenia w oknie płatności */
.payment-quick-statuses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.payment-quick-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:112px;overflow:hidden;border:1px solid #e3e8ef;border-radius:14px;padding:15px 16px 15px 18px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.03)}.payment-quick-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#cbd5e1}.payment-quick-card.is-paid:before{background:#22a06b}.payment-quick-card.is-unpaid:before{background:#e34b4b}.payment-quick-card.is-none:before{background:#94a3b8}.payment-quick-card-body{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:4px}.payment-quick-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.payment-quick-title{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.055em}.payment-quick-state{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:800;color:#475569;white-space:nowrap}.payment-quick-dot{display:inline-block;width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.12)}.payment-quick-card.is-paid .payment-quick-dot{background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.12)}.payment-quick-card.is-unpaid .payment-quick-dot{background:#e34b4b;box-shadow:0 0 0 3px rgba(227,75,75,.11)}.payment-quick-card.is-paid .payment-quick-state{color:#157347}.payment-quick-card.is-unpaid .payment-quick-state{color:#b42318}.payment-quick-value{display:block;margin-top:2px;font-size:18px;line-height:1.2;font-weight:850;color:#142033;letter-spacing:-.015em}.payment-quick-card small{font-size:11px;color:#7a8798;line-height:1.35}.payment-quick-action{flex:0 0 auto;min-height:38px;max-width:185px;padding:9px 13px!important;border-radius:10px!important;font-size:12px!important;line-height:1.15;white-space:normal;text-align:center}.payment-quick-card .payment-quick-action.primary{background:#132136!important;color:#fff!important;box-shadow:none!important}.payment-quick-card .payment-quick-action.soft{background:#f2f5f8!important;color:#243247!important;border-color:#e3e8ef!important}.payment-quick-card.is-paid{border-color:#dce8e2;background:#fcfefd}.payment-quick-card.is-unpaid{border-color:#eadede;background:#fffdfd}.payment-quick-card.is-none{background:#fcfdff}@media(max-width:760px){.payment-quick-statuses{grid-template-columns:1fr}.payment-quick-card{min-height:0;align-items:stretch;flex-direction:column;padding:14px 14px 14px 17px}.payment-quick-head{align-items:flex-start;flex-direction:column;gap:5px}.payment-quick-action{width:100%;max-width:none}.payment-quick-value{font-size:17px}}

/* 5.4.273 — zaliczka na liście umów: kwota + kropka statusu w jednej linii */
.contract-deposit-cell{min-width:110px}
.contract-deposit-line{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;min-height:20px}
.contract-deposit-line .contract-deposit-amount{font-weight:800}
.contract-deposit-dot{display:inline-block;width:10px;height:10px;min-width:10px;border-radius:50%;vertical-align:middle}
.contract-deposit-dot.is-paid{background:#22c55e}
.contract-deposit-dot.is-unpaid{background:#ef4444}
.contract-deposit-empty{color:#94a3b8;font-weight:700}

/* 5.4.275 — czytelny audyt zmian w historii klienta */
.timeline-actor{display:inline-flex;align-items:center;gap:5px;margin:0 0 7px;padding:4px 8px;border:1px solid #d9e1ea;border-radius:999px;background:#fff;color:#475467;font-size:12px;font-weight:800;line-height:1.2}
.timeline-change-list{display:grid;gap:7px;margin-top:10px}
.timeline-change-row{display:grid;grid-template-columns:minmax(135px,.72fr) minmax(0,1.28fr);gap:10px;align-items:start;padding:9px 10px;border:1px solid #e1e7ef;border-radius:10px;background:#fff;font-size:12px;line-height:1.45}
.timeline-change-row>span{font-weight:850;color:#344054;word-break:break-word}
.timeline-change-row>div{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;min-width:0}
.timeline-content .timeline-change-row b{display:inline!important;color:#98a2b3;font-weight:800}
.timeline-change-row del{color:#8a4b4b;word-break:break-word;white-space:pre-wrap}
.timeline-change-row strong{color:#176b3a;word-break:break-word;white-space:pre-wrap}
@media(max-width:650px){.timeline-change-row{grid-template-columns:1fr;gap:4px}}

/* CRM DEMO 5.4.303 — AI w głównej belce od pierwszego renderu */
#crmAiTopBtn.crm-ai-topbtn{position:relative!important;overflow:visible!important;font-size:19px!important;font-weight:400!important;color:#2563eb!important}
#crmAiTopBtn.crm-ai-topbtn.on{background:#122033!important;color:#fff!important;border-color:#122033!important}
#crmAiTopBtn .crm-ai-count{position:absolute;top:-7px;right:-7px;z-index:2;min-width:18px;height:18px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;padding:0 4px;box-shadow:0 0 0 2px #fff}
/* 5.4.346 — Synology w wyszukiwaniu / archiwum */
.crm-synology-section{margin-top:14px}.crm-synology-result{border-color:rgba(53,110,170,.22)}.crm-synology-result .crm-search-card-side span{white-space:nowrap}.crm-synology-note{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:#f5f8fb;color:var(--muted);font-size:13px}.crm-synology-note.warn{background:#fff8e8;color:#7b5a13}.crm-synology-note b{color:inherit}.synology-archive-panel{margin:16px 12px 12px;padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fbfdff,#f6f9fc)}.synology-archive-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.synology-archive-head h3{margin:3px 0 4px}.synology-archive-head p{margin:0;color:var(--muted);font-size:13px}.synology-browser-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.synology-browser-head h3{margin:3px 0 0;word-break:break-word}.synology-browser-list,.synology-file-list{display:flex;flex-direction:column;gap:8px}.synology-browser-row,.synology-file-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:11px 12px;color:var(--text);cursor:pointer}.synology-browser-row:hover,.synology-file-row:hover{background:#f7fafc}.synology-browser-row span:nth-child(2),.synology-file-row span:nth-child(2){min-width:0;display:flex;flex-direction:column}.synology-browser-row b,.synology-file-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.synology-browser-row small,.synology-file-row small{color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.synology-browser-icon{font-size:20px}.synology-file-row strong{font-size:12px;color:var(--accent)}.synology-index-status{display:block;margin-top:8px;color:var(--muted)}.synology-customer-files>.small{display:block;margin:-4px 0 12px}
@media(max-width:700px){.synology-archive-panel{margin:12px 0}.synology-archive-head{flex-direction:column}.synology-browser-row,.synology-file-row{padding:10px}.crm-synology-result .crm-search-card-side span{white-space:normal;text-align:right}}

.crm-audience-hint{padding:12px 14px;margin:0 0 15px;border:1px solid #b9cee6;border-radius:12px;background:#eef5ff;color:#173859;font-size:13px;line-height:1.6}.crm-audience-hint strong{font-weight:800;display:inline-block;margin-right:8px}


/* 5.4.357 — Sprawy: „Pomiary wykonane — bez umowy” na całą szerokość. Dzięki temu pary
   „Pomiary do ustalenia | Pomiary ustalone” oraz „Montaż do ustalenia | Montaże ustalone”
   zawsze stoją obok siebie w jednej linii. Na telefonie siatka i tak ma jedną kolumnę. */
.workflow-grid > .measurement-done-card{grid-column:1 / -1!important}


/* 5.4.358 — zmiana prowadzącego klienta + ręczny czas wizyty. */
.workflow-lead-card .crm-lead-change{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:5px 11px;border:1px solid #dbe3ee;border-radius:999px;background:#fff;color:#334155;font-size:12px;font-weight:750;line-height:1.2;cursor:pointer;width:max-content;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.workflow-lead-card .crm-lead-change:hover{border-color:var(--gold);background:var(--gold-soft);color:#7a5410}
.workflow-lead-card .crm-lead-change span{font-size:13px}
.crm-lead-dialog .crm-lead-card{width:min(520px,100%);padding:22px}
.crm-lead-dialog .modal-head{margin-bottom:14px}
.crm-lead-dialog .form-intro{margin-bottom:14px}
.crm-lead-dialog .form-intro b{font-size:15px}
.crm-lead-list{display:grid;gap:8px;max-height:min(52vh,420px);overflow:auto;padding:2px}
.crm-lead-option{--staff:#2563eb;display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;cursor:pointer;font:inherit;color:var(--ink);transition:border-color .15s,background .15s,box-shadow .15s}
.crm-lead-option:hover{border-color:var(--staff);background:#fbfcfe}
.crm-lead-option.selected{border-color:var(--staff);background:color-mix(in srgb,var(--staff) 7%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--staff) 14%,transparent)}
.crm-lead-avatar{flex:none;width:40px;height:40px;border-radius:12px;background:var(--staff);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:900;letter-spacing:.02em}
.crm-lead-info{display:grid;min-width:0;flex:1}
.crm-lead-info b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-lead-info small{color:var(--muted);font-size:12px;line-height:1.35}
.crm-lead-check{flex:none;width:24px;height:24px;border-radius:8px;background:#e9edf3;color:transparent;display:grid;place-items:center;font-weight:900;font-size:13px}
.crm-lead-option.selected .crm-lead-check{background:var(--staff);color:#fff}
.crm-lead-loading{display:flex;align-items:center;gap:10px;padding:18px;color:var(--muted)}
.crm-lead-loading .spinner{width:20px;height:20px;border-width:2px}
.crm-lead-note{margin:12px 0 0}
@media(max-width:640px){.crm-lead-dialog{align-items:end;padding:0}.crm-lead-dialog .crm-lead-card{border-radius:22px 22px 0 0;max-height:90vh;padding:18px 14px calc(18px + env(safe-area-inset-bottom))}.crm-lead-dialog .modal-actions .btn{flex:1}}
.crm-dur-view{cursor:text;transition:border-color .15s,box-shadow .15s}
.crm-dur-view:hover{border-color:#c6d0dc}
.crm-dur-view:focus-within,.crm-dur-view:focus{outline:none;border-color:#6d8cb6;box-shadow:0 0 0 4px #dce9f755}
.crm-dur-view .crm-dur-input,.field .crm-dur-view .crm-dur-input:focus{flex:1;min-width:0;width:auto!important;border:0!important;outline:0!important;background:transparent!important;padding:0!important;margin:0;font:inherit;font-weight:800;color:inherit;box-shadow:none!important;border-radius:0!important;min-height:0!important}
.crm-dur-view .crm-dur-input::placeholder{font-weight:500;color:#94a3b8}

.appointment-form .crm-avail-hint{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}
