/* Adaptacje formularzy Django; tokeny i wygląd pochodzą z panel.css. */
.errorlist{color:var(--warn);padding-left:20px}.spaced{margin-top:var(--s7)}
.login-screen{margin:calc(-1 * var(--s7)) calc(-1 * var(--gutter)) calc(-1 * var(--s8))}
.inline-form{display:inline}.field select{font:inherit;color:var(--ink);background:var(--card);padding:10px;border:1px solid var(--line)}
.variant:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:4px}
button.link{background:none;color:inherit;border:0;border-bottom:1px solid currentColor;padding:0 0 2px;font:inherit;font-size:14px}
.form-actions{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap;margin-top:var(--s5)}
.editor .sheet{align-self:start}.row form{margin:0}.plan-row input[type=checkbox]{width:20px}.plan-row .grip{cursor:default}

.field input[type=checkbox]{width:20px;height:20px;accent-color:var(--ink)}
/* Dodatki zachowują geometrię komponentów makiety. */
.pf img{height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
input[type=checkbox]{accent-color:var(--ink);width:20px;height:20px;flex-shrink:0}
.items input[type=checkbox]{width:20px;height:20px}
.items .item{grid-template-columns:minmax(0,1fr) 120px 68px}
.items .item label{display:flex;align-items:center;gap:6px;font-size:13px}
.discount-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.switch input[type=date]{width:auto;max-width:100%}
.switch input[type=checkbox]{appearance:none;width:44px;height:26px;border:1px solid var(--line);border-radius:0;background:transparent;padding:3px;cursor:pointer}
.switch input[type=checkbox]::before{content:"";display:block;width:18px;height:18px;background:var(--muted)}
.switch input[type=checkbox]:checked{background:var(--ink);border-color:var(--ink)}
.switch input[type=checkbox]:checked::before{transform:translateX(18px);background:var(--paper)}
[hidden]{display:none!important}
@media(max-width:600px){.discount-row{grid-template-columns:1fr}.items .item{grid-template-columns:minmax(0,1fr) 90px 62px;gap:6px}.switch{flex-wrap:wrap}.sheet .r{white-space:normal}}

.api-scopes{border:0;padding:0;margin:var(--s5) 0 0;min-width:0}
.api-scopes legend{font-size:14px;color:var(--muted)}
#nowy-klucz{scroll-margin-top:calc(var(--header) + 72px)}

.field select{width:auto;max-width:100%;justify-self:start;border-radius:0}
.modes button.mode{font:inherit;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--line);text-align:left;padding:var(--s5) 0;cursor:pointer}
.modes button.mode:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.form-test-note{margin:0 0 var(--s5)}

.prop-price b [data-total]{font:inherit;color:inherit;padding:0}

/* Private file uploads share the mockup drop area and file rows. */
.drop input[type="file"]{max-width:100%;font:inherit;color:var(--muted)}
.drop progress{width:min(100%,24rem);accent-color:var(--ink)}
.file h3{overflow-wrap:anywhere}
.file form{margin-top:var(--s2)}
/* Shared controls and meeting availability. */
select, select.in, .field select { appearance:none; width:auto; max-width:100%; min-width:7rem; padding:10px 38px 10px 12px; border:1px solid var(--line); border-radius:0; background-color:var(--card); color:var(--ink); font:inherit; background-image:url("select-chevron.768aef0f21d3.svg"); background-position:right 12px center; background-repeat:no-repeat; }
select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
[hidden] { display:none !important; }
.week-row { display:grid; grid-template-columns:160px 1fr; gap:var(--s4); padding:var(--s4) 0; border-bottom:1px solid var(--line); }
.hours-interval, .hours-form { display:flex; align-items:center; flex-wrap:wrap; gap:var(--s4); }
.hours-interval { margin-bottom:var(--s3); }
.hours-form { margin-top:var(--s4); }
.meeting-note { padding:var(--s4) 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.meeting-note + form { margin-top:var(--s5); }
.calendar { width:280px; max-width:100%; padding:var(--s3); margin:var(--s3) 0; border:1px solid var(--line); border-radius:0; background:var(--card); }
.calendar-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }
.calendar-grid button { padding:8px 2px; border:0; border-radius:4px; background:transparent; color:var(--ink); cursor:pointer; font:inherit; }
.calendar-grid button:hover, .calendar-grid button[aria-pressed=true] { background:var(--accent); color:#111110; }
.calendar-grid small { padding:8px 0; }
.file-picker { position:relative; display:inline-block; }
.file-picker input { position:absolute; width:1px; height:1px; padding:0; opacity:0; }
.file-picker:focus-within { outline:2px solid var(--accent); outline-offset:4px; }
.drop .form-actions { justify-content:center; }
.file-selection { list-style:none; padding:0; overflow-wrap:anywhere; }
@media(max-width:600px) { .week-row { grid-template-columns:1fr; gap:var(--s2); } }

.drop:has(input[type=file]:invalid) .form-actions { display:none; }

.meeting-choice { display:inline-flex; align-items:center; gap:var(--s2); margin:var(--s4) var(--s5) var(--s4) 0; }

/* Shared date picker and compact two-step meeting selection. */
.date-control{position:relative;display:inline-flex;width:max-content;max-width:100%;vertical-align:middle}
.date-control input.in{width:155px;padding-right:30px;min-width:0}
.date-toggle{position:absolute;right:0;top:0;width:32px;height:100%;border:0;background:transparent;color:var(--ink);font:inherit;cursor:pointer}
.calendar.calendar-popover{position:absolute;top:100%;left:0;z-index:20;width:300px;max-width:calc(100vw - 64px);box-shadow:0 8px 24px #0002;margin:4px 0}
.calendar-grid button{min-height:44px;border-radius:0}
.calendar-grid button:disabled{color:var(--muted);opacity:.4;cursor:default;background:transparent}
.calendar-grid button[aria-current=date]{text-decoration:underline;text-underline-offset:5px}
.calendar-grid button[aria-pressed=true],.calendar-grid button:not(:disabled):hover{background:var(--ink);color:var(--paper)}
.calendar button:focus-visible,.date-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.date-range-row,.date-range-part{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.date-range-row{gap:var(--s5);margin:var(--s4) 0}
.date-range-part select{min-width:100px}
.date-range-part label{margin:0}
.slot-picker{max-width:100%;min-width:0;margin:var(--s4) 0}
.booking-calendar{width:360px;box-sizing:border-box}
.slot-hours{border:0;padding:0;min-width:0;margin:var(--s5) 0}
.slot-hours .form-actions{margin-top:var(--s3);gap:var(--s3)}
.slot-option{position:relative;cursor:pointer}
.slot-option input{position:absolute;opacity:0;width:1px;height:1px}
.slot-option .btn{min-height:44px;box-sizing:border-box}
.slot-option input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.slot-option input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}
.slot-days{display:flex;flex-wrap:wrap;gap:var(--s2)}
.slot-days p{width:100%}
@media(max-width:600px){
  .booking-calendar{width:100%;padding:var(--s2);min-width:0}
  .booking-calendar .calendar-grid{display:flex;overflow-x:auto;gap:4px;margin-top:var(--s3);padding-bottom:var(--s2);scroll-snap-type:x mandatory}
  .booking-calendar .calendar-grid small,.booking-calendar .calendar-blank{display:none}
  .booking-calendar .calendar-grid button{flex:0 0 calc((100% - 24px)/7);min-width:32px;scroll-snap-align:start}
  .booking-calendar .calendar-grid button::before{content:attr(data-weekday);display:block;font-size:11px;margin-bottom:6px}
  .date-range-part{width:100%;gap:8px}
  .date-range-part label{width:22px}
  .date-range-part .date-control input.in{width:140px}
  .date-range-part select{min-width:90px;padding-left:8px}
  .date-range-row{gap:var(--s3)}
}

/* Podpis umowy: ten sam komponent zgody w obu krokach, także bez JS. */
[data-signature-form] .check{min-height:44px;cursor:pointer;margin-bottom:var(--s4)}
[data-signature-form] .check input{appearance:none;position:relative;border:1px solid var(--ink);border-radius:0;background:var(--card);padding:0}
[data-signature-form] .check input:checked{background:var(--ink)}
[data-signature-form] .check input:checked::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--paper);border-width:0 2px 2px 0;transform:rotate(45deg)}
[data-signature-form] .check input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
[data-signature-form] button.link{min-height:44px;cursor:pointer}
[data-signature-form] [aria-busy=true]{cursor:wait}
@media(max-width:600px){[data-signature-form] .code .field{width:100%;min-width:0}[data-signature-form] .code .btn{justify-content:center;width:100%}}

/* Etap 4: wspólne stany i spokojna hierarchia panelu. */
:root{--fast:160ms}
.notice{display:flex;align-items:flex-start;gap:var(--s3);background:var(--soft);padding:var(--s5);margin:0 0 var(--s6);border:0;overflow-wrap:anywhere}
.notice>svg{flex-shrink:0}.notice>div{flex:1}.notice-warning,.notice-error{border-left:3px solid var(--warn)}
.notice .icon-btn{margin:-10px -10px -10px 0;flex-shrink:0}.empty{border:0;padding:var(--s5) 0}.empty .link{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--s3)}
input[type=radio],input[type=checkbox]{appearance:none;border:1px solid var(--muted);background:var(--card);width:20px;height:20px;padding:0;vertical-align:middle;flex-shrink:0}
input[type=radio]{border-radius:50%}input[type=radio]:checked{background:var(--ink);box-shadow:inset 0 0 0 4px var(--card)}
input[type=checkbox]:checked{background:var(--ink)}input[type=checkbox]:checked:after{content:'✓';display:block;color:var(--paper);text-align:center;font-size:15px;line-height:18px}
.switch input:after{display:none!important}
.segmented{display:flex;flex-wrap:wrap;gap:4px;margin:var(--s3) 0 var(--s5)}
.segmented label,.segment{position:relative;display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 16px;border:1px solid var(--line);cursor:pointer;background:var(--card)}
.segmented label:has(:checked),.segment[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented label:has(:focus-visible){outline:2px solid var(--ink);outline-offset:3px}
summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;gap:12px;padding:10px 0}summary::-webkit-details-marker{display:none}summary:after{content:'+';margin-left:auto}details[open]>summary:after{content:'−'}
summary .link{border:0}.btn+.btn,.btn+.link{margin-left:var(--s3)}
.btn,.row,.segment,.slot-option span,summary{transition:background-color 160ms,color 160ms,transform 160ms}.btn:active,.segment:active{transform:translateY(1px)}
button.link,a.link{min-height:44px;display:inline-flex;align-items:center}label.check,.switch{min-height:44px}
.field+h2{margin-top:var(--s6)}
.caretaker{display:flex;justify-content:space-between;gap:var(--s5);align-items:center;background:var(--soft);padding:var(--s5);margin:var(--s5) 0 var(--s7)}.caretaker .meta a{display:inline-flex;align-items:center;min-height:44px}.onboarding{list-style:none;padding:0;counter-reset:step}.onboarding li{counter-increment:step;display:flex;gap:var(--s5);padding:var(--s5) 0;border-bottom:1px solid var(--line)}.onboarding li:before{content:'0' counter(step);color:var(--muted)}.onboarding [aria-current=step]{font-weight:600}
.settings-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}.settings-fields .field input{width:100%}.block>h2{margin-bottom:var(--s4)}
:root[data-theme=dark] .login-art,:root[data-theme=dark] .preview{background:var(--soft);color:var(--ink)}
:root[data-theme=dark] .login-art p,:root[data-theme=dark] .preview p{color:var(--muted)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .login-art,:root:not([data-theme=light]) .preview{background:var(--soft);color:var(--ink)}:root:not([data-theme=light]) .login-art p,:root:not([data-theme=light]) .preview p{color:var(--muted)}}
@media(max-width:700px){.caretaker{align-items:flex-start;flex-direction:column}.settings-fields{grid-template-columns:1fr 1fr}.decide{position:static;margin-bottom:0}.meeting-list .block-head{align-items:flex-start;flex-direction:column;gap:4px}.payments-table,.payments-table tbody,.payments-table tr,.payments-table td{display:block;width:100%}.payments-table thead{display:none}.payments-table tr{padding:var(--s5) 0;border-bottom:1px solid var(--line)}.payments-table td{border:0;padding:6px 0;text-align:left;white-space:normal}.payments-table td[data-label]:before{content:attr(data-label) ': ';color:var(--muted)}.payments-table .hide-m{display:block}.payments-table .billing-mobile-invoice{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.confirmed-proposal .variant{cursor:default}.confirmed-proposal .variant:has(input){border-color:var(--line)}
.segment[aria-current=page]{background:var(--ink);color:var(--paper)}

.notice:not(:has(>svg)){display:block;padding-left:var(--s5)}
.notice:not(:has(>svg)):before{content:'i';display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;margin-right:10px;font-size:13px}
.welcome-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s7)}.welcome-grid .projects{border:0}.welcome-grid .caretaker{align-self:start;display:block;margin:0}.welcome-grid .caretaker .btn{margin-top:var(--s4)}
.segmented .meeting-choice{margin:0}.nav-shell{position:sticky;top:var(--header);z-index:15}.nav-shell .tabs{position:static}
.row:hover{background:var(--soft)}.row:focus-within{background:var(--soft)}
form[aria-busy=true] [aria-disabled=true]{cursor:progress}.date-toggle{width:44px}.date-control input.in{padding-right:44px;width:170px}.calendar.calendar-popover{width:334px;max-width:calc(100vw - 40px);padding:6px}.calendar-grid{gap:0}.calendar-grid button{min-width:44px}
:root[data-theme=dark] .preview .btn{background:var(--ink);color:var(--paper);border-color:var(--ink)}
:root[data-theme=dark] .preview .btn:hover{background:var(--card);color:var(--ink)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .preview .btn{background:var(--ink);color:var(--paper);border-color:var(--ink)}:root:not([data-theme=light]) .preview .btn:hover{background:var(--card);color:var(--ink)}}
@media(max-width:900px){.welcome-grid{grid-template-columns:1fr}.welcome-grid .caretaker{margin-top:0}}
@media(max-width:600px){.calendar.calendar-popover{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.booking-calendar{padding:6px}.settings-fields{grid-template-columns:1fr}.page-head>.form-actions{width:100%}.row{overflow-wrap:anywhere}}

/* Etap 4b: wspólny pasek i menu poza obszarem przewijania. */
.nav-shell{display:flex;align-items:stretch;background:var(--paper);border-bottom:1px solid var(--line);padding-right:var(--gutter)}
.nav-scroll{position:relative;flex:1;min-width:0}
.nav-shell .tabs{border:0;padding-right:var(--s5)}
.nav-scroll:before,.nav-scroll:after{content:'';position:absolute;top:0;bottom:0;width:40px;z-index:16;pointer-events:none;opacity:0}
.nav-scroll:before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.nav-scroll:after{right:0;background:linear-gradient(90deg,transparent,var(--paper))}
.nav-scroll[data-left=true]:before,.nav-scroll[data-right=true]:after{opacity:1}
.nav-shell:after{display:none}
.settings-nav{position:relative;flex:none;display:flex;align-items:center;padding:0 0 0 var(--s3);border:0;border-left:1px solid var(--line);margin-left:var(--s2)}
.settings-trigger{display:flex;align-items:center;gap:8px;min-height:58px;color:var(--muted);font-size:15px;text-decoration:none;border-bottom:2px solid transparent}
.settings-trigger[aria-current=page],.settings-trigger[aria-expanded=true]{color:var(--ink);border-bottom-color:var(--ink)}
.settings-menu{position:absolute;right:0;top:calc(100% + 8px);width:240px;max-width:calc(100vw - 40px);padding:8px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 28px #0002}
.settings-menu a{display:flex;align-items:center;min-height:44px;padding:10px 16px;color:var(--ink);text-decoration:none}
.settings-menu a:hover,.settings-menu a:focus-visible,.settings-menu a[aria-current=page]{background:var(--soft)}
.tabs.subnav{position:static;z-index:auto;padding:0;margin-bottom:var(--s5);background:transparent;border:0;border-bottom:1px solid var(--line);flex-wrap:nowrap;gap:var(--s6)}
.tabs.subnav a{min-height:44px}
.meeting-mode{border:0;padding:0;margin:var(--s5) 0}
.meeting-mode .segmented{margin:var(--s3) 0}
.segment:disabled{color:var(--muted);background:var(--soft);cursor:not-allowed}
@media(max-width:700px){.nav-shell{padding-right:20px}.nav-shell .tabs{gap:var(--s5)}.settings-trigger{min-height:58px}.tabs.subnav{gap:var(--s5)}}
.client-now .row{grid-template-columns:minmax(0,1fr) auto auto}
.client-now .row>.link{min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end}
@media(max-width:700px){.client-now .row{grid-template-columns:minmax(0,1fr) auto}.client-now .row>.link{grid-column:1/-1}.client-now .state{max-width:150px;white-space:normal}}
/* ekran „Link jest już w drodze” */
.sent-box .sent-icon{color:var(--ink);margin-bottom:var(--s5)}
.sent-box h2{margin-bottom:var(--s3)}
.sent-tips{list-style:none;padding:0;margin:var(--s5) 0 0;border-top:1px solid var(--line)}
.sent-tips li{padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.sent-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4) var(--s5);margin-top:var(--s6)}
.login-form .sent-actions .btn{width:auto;margin-top:0}
/* notice bez ikony SVG: znak „i” w osobnej kolumnie, treść obok (a nie pod ikoną) */
.notice:not(:has(>svg)){display:grid;grid-template-columns:20px 1fr;column-gap:var(--s3)}
.notice:not(:has(>svg))>*{grid-column:2}
.notice:not(:has(>svg)):before{grid-column:1;grid-row:1;margin-right:0}
