*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Arial,Helvetica,sans-serif;color:#12233b;background:#f4f7fa;font-size:14px}a{text-decoration:none;color:inherit}button,input,select,textarea{font-family:Arial,Helvetica,sans-serif}button,.btn{background:#0867d9;color:#fff;border:0;border-radius:6px;padding:10px 18px;font-weight:700;cursor:pointer}button:hover,.btn:hover{background:#075abf}.secondary{background:#e8edf3;color:#24364d}.preview-btn{background:#6b7280}.preview-btn:hover{background:#555d68}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#12233b;outline:none}input:focus,select:focus,textarea:focus{border-color:#7aaee8;box-shadow:0 0 0 2px rgba(8,103,217,.08)}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;font-weight:700;margin:10px 0}.muted{color:#6b7787}
.app{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.app aside{background:#102c49;color:#fff;padding:25px 12px;display:flex;flex-direction:column;gap:8px}.app aside b{font-size:18px;margin:0 10px 28px}.app aside a{padding:12px;border-radius:6px}.app aside a:hover,.app aside .active{background:#14548c}.logout{margin-top:auto}.app main{padding:28px;max-width:1250px;width:100%;margin:auto}.head{display:flex;justify-content:space-between;align-items:center;gap:18px}.card{background:#fff;border:1px solid #dce4ec;border-radius:8px;padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.05)}.form section{border:1px solid #dce4ec;border-radius:8px;padding:16px;margin-bottom:14px;background:#fff}.form h3{margin:0 0 12px}.grid3{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:14px}.grid2{display:grid;grid-template-columns:1fr 1.6fr;gap:14px}.actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:12px;border-bottom:1px solid #e1e7ee;text-align:left;vertical-align:top}th{background:#eef3f8}.edit{color:#0867d9;font-weight:700}.ops{display:flex;gap:9px;flex-wrap:wrap}.status{font-weight:700}.ok{background:#e8f7ed;color:#176a34;padding:12px;border-radius:6px}.err{background:#ffe8e8;color:#9b1c1c;padding:12px;border-radius:6px}.auth{max-width:500px;margin:9vh auto;background:#fff;padding:30px;border-radius:10px;border:1px solid #dce4ec}
.bip-header{background:#fff;border-bottom:1px solid #d7e0e8}.bip-header-inner{max-width:1120px;height:126px;margin:0 auto;padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}.office-brand{display:flex;align-items:center;gap:18px}.office-crest{display:block;width:auto;height:105px;max-width:100px;object-fit:contain}.office-name{font-size:25px;line-height:1.08;font-weight:700;color:#0b2039;white-space:nowrap}.bip-brand{display:flex;align-items:center;gap:15px;padding:12px 18px;border:1px solid #efb9b9;border-radius:10px;background:#fff7f7;color:#c9151e;min-width:340px}.bip-brand:hover{background:#ffeded}.bip-icon{width:54px;height:54px;min-width:54px;border-radius:50%;background:#d71920;display:flex;align-items:center;justify-content:center}.bip-icon svg{width:29px;height:29px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bip-text{display:flex;flex-direction:column;gap:3px}.bip-text strong{font-size:27px;line-height:1;color:#c9151e;letter-spacing:.03em}.bip-text small{font-size:13px;line-height:1.2;color:#536779}.bip-nav{background:#d71920;color:#fff}.bip-nav-inner{max-width:1120px;height:52px;margin:0 auto;display:flex;align-items:center}.bip-nav a{display:flex;align-items:center;gap:9px;height:52px;padding:0 22px;font-size:16px;color:#fff;border-left:1px solid rgba(255,255,255,.15)}.bip-nav a:last-child{border-right:1px solid rgba(255,255,255,.15)}.bip-nav a:hover{background:#b81218}.nav-home,.nav-doc{font-size:22px;line-height:1}.public main{padding:24px 0 55px;max-width:1120px;width:calc(100% - 32px);margin:0 auto}.breadcrumbs{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;color:#657789}.breadcrumbs a{color:#a9141a;font-weight:700}.public main>h1{margin:0 0 22px;font-size:29px;line-height:1.2;color:#0a2442}.filters{display:grid;grid-template-columns:125px 220px minmax(260px,1fr) auto;gap:16px;align-items:end;margin:0 0 18px}.filters label{margin:0;font-size:12px;font-weight:700;color:#132a43}.filters select,.filters input{height:38px;margin-top:5px;padding:0 10px;border:1px solid #cbd6e2;border-radius:6px;background:#fff;font-size:13px}.filters button{height:38px;min-width:82px;padding:0 18px}.petition{background:#fff;border:1px solid #dce4ec;border-radius:8px;margin:0 0 12px;padding:13px 12px;display:grid;grid-template-columns:150px minmax(0,1fr) 205px;gap:14px;box-shadow:0 1px 2px rgba(0,0,0,.015)}.date{border-right:1px solid #dce4ec;padding:3px 14px 3px 2px;display:flex;flex-direction:column;align-items:flex-start;gap:0}.date b{font-size:15px;line-height:1.25;font-weight:700;color:#10263f;margin:0 0 9px}.date small{display:block;margin:0 0 3px;font-size:11px;color:#5d6c7b}.date span{font-size:12px;color:#10263f}.details{min-width:0;padding:1px 0}.details h2{margin:0 0 7px;font-size:14px;line-height:1.35;font-weight:700;color:#10243d}.details h2 a:hover{color:#b81218;text-decoration:underline}.details dl{margin:0;display:grid;grid-template-columns:180px minmax(0,1fr);font-size:11px;line-height:1.3}.details dt,.details dd{margin:0;padding:4px 0;border-bottom:1px solid #edf1f4}.details dt{padding-right:12px;color:#657382}.details dd{color:#172a40}.status-public,.status-chip,.status-badge{display:inline-flex;align-items:center;gap:7px;font-weight:700}.status-public::before,.status-chip::before,.status-badge::before{content:"";display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;min-width:14px;border-radius:50%;color:#fff;font-size:9px;font-weight:700}.status-answered::before{content:"✓";background:#34a853}.status-wait::before{background:#f5b400}.status-forwarded::before{content:"→";background:#2684d8}.status-left::before{content:"!";background:#8795a5}.status-closed::before{content:"✓";background:#14733b}.status-neutral::before{background:#8795a5}.status-chip{font-size:12px;white-space:nowrap}.status-badge{padding:8px 11px;border-radius:18px;background:#f3f6f9;white-space:nowrap}.docs{border-left:1px solid #dce4ec;padding-left:12px;display:flex;flex-direction:column;justify-content:center;gap:8px}.docs a,.detail-docs a,.timeline-content a{min-height:48px;background:#edf5fe;border-radius:6px;padding:7px 10px;display:flex;align-items:center;gap:10px;color:#153858}.docs a:hover,.detail-docs a:hover,.timeline-content a:hover{background:#e2effd}.pdf-icon{width:24px;height:30px;min-width:24px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px;border:2px solid #ff3131;border-radius:2px;background:#fff;color:#ff3131;font-size:7px;font-weight:700;position:relative}.pdf-icon::after{content:"";position:absolute;right:-2px;top:-2px;width:7px;height:7px;background:#edf5fe;border-left:2px solid #ff3131;border-bottom:2px solid #ff3131}.doc-label,.detail-docs a>span:last-child,.timeline-content a>span:last-child{display:flex;flex-direction:column;gap:2px}.doc-label b,.detail-docs strong,.timeline-content strong{font-size:12px}.doc-label small,.detail-docs small,.timeline-content small{font-size:10px;color:#687789}.more-docs{justify-content:center!important;min-height:34px!important;background:#fff!important;border:1px dashed #cbd6e2!important;color:#a9141a!important;font-size:11px!important}.back-link{display:inline-block;margin-bottom:14px;color:#a9141a;font-weight:700}.petition-detail{padding:26px}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;border-bottom:1px solid #e5ebf1;padding-bottom:18px}.detail-head h1{font-size:25px;line-height:1.3;margin:6px 0 8px}.detail-date{font-size:14px;font-weight:700;color:#687789}.detail-number{font-size:13px}.detail-grid{display:grid;grid-template-columns:250px 1fr;margin:20px 0 26px}.detail-grid dt,.detail-grid dd{margin:0;padding:10px 0;border-bottom:1px solid #edf1f4}.detail-grid dt{color:#657382}.petition-detail h2{font-size:18px;margin:24px 0 12px}.detail-docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.timeline{border-left:2px solid #e4eaf0;margin-left:8px;padding-left:22px}.timeline-item{position:relative;margin:0 0 16px}.timeline-dot{position:absolute;left:-29px;top:12px;width:12px;height:12px;border-radius:50%;background:#d71920;border:3px solid #fff;box-shadow:0 0 0 1px #d71920}.timeline-meta{font-size:11px;color:#6b7787;margin-bottom:5px}.existing-docs{margin:12px 0 16px}.existing-doc{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px;border:1px solid #e1e7ee;border-radius:6px;margin-bottom:8px}.existing-doc small{display:block;color:#6b7787;margin-top:3px}.remove-check{margin:0;display:flex;align-items:center;gap:6px;font-weight:400}.remove-check input{width:auto}.new-doc-row{padding:14px;background:#f7f9fb;border:1px dashed #c9d4df;border-radius:7px;margin:10px 0}.remove-doc{background:#fff;color:#a9141a;border:1px solid #e0b3b6;padding:7px 10px}.add-doc-btn{margin-top:5px}.history-list{padding:0}.history-row{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:16px 18px;border-bottom:1px solid #e8edf2}.history-row:last-child{border-bottom:0}.history-date{font-size:12px;color:#657382}.history-row p{margin:5px 0}.history-row small{color:#657382}.preview-modal{position:fixed;inset:0;background:rgba(10,22,36,.66);display:none;align-items:center;justify-content:center;padding:25px;z-index:999}.preview-modal.open{display:flex}.preview-dialog{position:relative;background:#f4f7fa;border-radius:10px;width:min(1100px,100%);max-height:90vh;overflow:auto;padding:24px}.preview-close{position:absolute;right:14px;top:12px;background:transparent;color:#22364d;font-size:30px;padding:0 8px}.preview-note{background:#fff3cd;color:#725800;padding:10px 12px;border-radius:6px;margin:0 45px 16px 0}.preview-card{margin:0}.preview-file{background:#edf5fe;border-radius:6px;padding:9px}.preview-file small{display:block;color:#687789;margin-top:2px}
@media(max-width:900px){.bip-header-inner{padding-left:18px;padding-right:18px}.bip-nav-inner{padding:0 18px}.bip-brand{min-width:0}.filters{grid-template-columns:1fr 1fr}.filters .search{grid-column:1/-1}.filters button{width:100%}.petition{grid-template-columns:130px minmax(0,1fr)}.docs{grid-column:1/-1;border-left:0;border-top:1px solid #dce4ec;padding-left:0;padding-top:10px;display:grid;grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr}.detail-docs{grid-template-columns:1fr}.detail-head{flex-direction:column}.status-badge{align-self:flex-start}}
@media(max-width:650px){.bip-header-inner{height:auto;min-height:105px;padding:10px 14px;gap:12px}.office-crest{height:72px;max-width:68px}.office-name{font-size:18px}.bip-brand{padding:7px 9px;gap:8px}.bip-icon{width:38px;height:38px;min-width:38px}.bip-icon svg{width:21px;height:21px}.bip-text strong{font-size:19px}.bip-text small{font-size:9px}.bip-nav-inner{height:46px;padding:0 8px}.bip-nav a{height:46px;padding:0 13px;font-size:13px}.nav-home,.nav-doc{font-size:17px}.public main{width:calc(100% - 24px);padding-top:18px}.public main>h1{font-size:25px}.filters{grid-template-columns:1fr;gap:9px}.filters .search{grid-column:auto}.petition{display:block;padding:14px}.date{border-right:0;border-bottom:1px solid #dce4ec;padding:0 0 10px;margin:0 0 10px}.details dl{display:block;font-size:12px}.details dt{border:0;padding:5px 0 1px}.details dd{padding:0 0 6px}.docs{display:flex;flex-direction:column;margin-top:8px;border-left:0;border-top:1px solid #dce4ec;padding:10px 0 0}.app{grid-template-columns:1fr}.app aside{display:none}.grid3,.grid2{grid-template-columns:1fr}.app main{padding:20px 14px 35px}.tablewrap{padding:8px}.actions{justify-content:stretch}.actions .btn,.actions button{width:100%}.detail-grid{display:block}.detail-grid dt{padding-bottom:2px;border-bottom:0}.detail-grid dd{padding-top:0}.petition-detail{padding:16px}.detail-head h1{font-size:20px}.existing-doc{grid-template-columns:1fr}.history-row{grid-template-columns:1fr;gap:4px}.preview-dialog{padding:14px}}

/* =========================================================
   v1.2 - WCAG 2.1 AA / PANEL UZYTKOWNIKOW
   ========================================================= */

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:12px;top:12px;z-index:10000;background:#111;color:#fff;padding:12px 16px;border-radius:6px;transform:translateY(-180%);transition:transform .15s ease;font-weight:700}.skip-link:focus{transform:translateY(0);outline:3px solid #fff;outline-offset:2px}
:focus-visible{outline:3px solid #111!important;outline-offset:3px!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#111!important}
.public a:focus-visible,.bip-nav a:focus-visible{outline-color:#111!important}
button,.btn,.admin-nav a,.logout{min-height:44px}
.field{display:flex;flex-direction:column;gap:6px}.field label{margin:0;font-weight:700}.field input,.field select,.field textarea{margin:0}.help,.muted,.current-file{color:#536779}.required-note{font-size:13px;color:#536779;margin:-8px 0 14px}.check-row{display:flex;align-items:center;gap:9px;margin:14px 0}.check-row input{width:auto}.form fieldset{border:1px solid #dce4ec;border-radius:8px;padding:16px;margin:0 0 14px;background:#fff}.form legend{font-size:17px;font-weight:700;padding:0 7px}.form fieldset fieldset{background:#f7f9fb;border-style:dashed;margin:0}.form fieldset fieldset legend{font-size:14px}.existing-docs h2{font-size:15px;margin:12px 0}.history-row h2{font-size:15px;margin:0}.meta-label{display:block;margin:0 0 3px;font-size:11px;color:#5d6c7b}

.admin-sidebar{background:#102c49;color:#fff;padding:24px 12px;display:flex;flex-direction:column;gap:8px;min-height:100vh}.admin-brand{font-size:18px;font-weight:700;line-height:1.15;padding:0 10px 18px}.admin-brand small{display:block;margin-top:7px;font-size:11px;font-weight:400;color:#c7d7e7}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav a{display:flex;align-items:center;gap:9px;padding:11px 12px;border-radius:6px;color:#fff}.admin-nav a:hover,.admin-nav a.active{background:#14548c}.nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#adc5da;padding:16px 12px 5px}.admin-user{margin-top:auto;padding:14px 10px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;gap:3px}.admin-user span,.admin-user small{font-size:11px;color:#c7d7e7}.admin-user strong{font-size:13px}.admin-sidebar .logout{display:flex;align-items:center;padding:11px 12px;border-radius:6px;color:#fff}.admin-sidebar .logout:hover{background:#7f1d1d}

.tablewrap table caption{text-align:left;font-weight:700;padding:0 0 12px;color:#23364d}.ops{display:flex;flex-wrap:wrap;gap:10px}.ops a{white-space:nowrap}.user-state{display:inline-flex;align-items:center;gap:6px;font-weight:700}.user-state::before{content:"";width:10px;height:10px;border-radius:50%;background:#6b7280}.user-state.is-active::before{background:#20883d}.user-state.is-inactive::before{background:#b42318}.user-form{max-width:760px}.log-filters{display:grid;grid-template-columns:1fr 1fr auto auto;gap:14px;align-items:end;margin-bottom:16px}

.login-page{min-height:100vh;background:#f4f7fa;display:flex;align-items:center;justify-content:center;padding:25px}.login-page .auth{margin:0;width:min(430px,100%)}.login-public{margin:20px 0 0}.login-public a{text-decoration:underline}

.status-public::before,.status-chip::before,.status-badge::before{border:1px solid rgba(0,0,0,.12)}
.status-wait::before{content:"…";color:#111;background:#f5b400}.status-forwarded::before{content:"→"}.status-left::before{content:"!"}.status-neutral::before{content:"•"}

.preview-dialog:focus{outline:none!important}.preview-close{min-width:44px;min-height:44px}.preview-note{font-weight:700}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:900px){.log-filters{grid-template-columns:1fr 1fr}.log-filters button,.log-filters .btn{width:100%}}
@media(max-width:650px){
  .app{display:block}.admin-sidebar{display:flex!important;min-height:auto;padding:12px}.admin-brand{padding:4px 8px 10px}.admin-nav{display:grid;grid-template-columns:1fr 1fr}.nav-section{grid-column:1/-1;padding-top:10px}.admin-user{margin-top:10px}.admin-sidebar .logout{margin-top:0}.app main{padding:18px 12px 35px}.head{align-items:flex-start;flex-direction:column}.head .btn{width:100%}.tablewrap{overflow-x:auto}.tablewrap table{min-width:800px}.log-filters{grid-template-columns:1fr}.actions{display:grid;grid-template-columns:1fr}.actions .btn,.actions button{width:100%}.bip-nav a{min-height:44px}.office-brand,.bip-brand{min-height:44px}
}


/* =========================================================
   v1.2.1 - PUBLICZNA DOSTEPNOSC + STOPKA
   Uwaga: panel narzedzi jest funkcja pomocnicza; WCAG nie wymaga
   osobnych przyciskow powiekszania/kontrastu, ale ulatwia korzystanie.
   ========================================================= */
.accessibility-bar{background:#fff;border-bottom:1px solid #d7e0e8}.accessibility-inner{max-width:1120px;margin:0 auto;min-height:48px;display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:6px 0}.accessibility-label{font-weight:700;font-size:13px;margin-right:3px}.a11y-btn{min-height:36px;min-width:42px;padding:7px 10px;background:#fff;color:#10243d;border:2px solid #10243d;border-radius:5px;font-weight:700}.a11y-btn:hover{background:#eef3f8}.a11y-contrast{min-width:auto}.public-footer{margin-top:0;background:#102c49;color:#fff;border-top:4px solid #d71920}.public-footer-inner{max-width:1120px;margin:0 auto;min-height:74px;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px}.public-footer span:last-child{font-weight:700}
html.a11y-font-large{font-size:112.5%}html.a11y-font-xlarge{font-size:125%}html.a11y-font-small{font-size:93.75%}
html.a11y-font-large body,html.a11y-font-xlarge body,html.a11y-font-small body{font-size:1rem}html.a11y-font-large .details h2,html.a11y-font-xlarge .details h2,html.a11y-font-small .details h2{font-size:1rem}html.a11y-font-large .details dl,html.a11y-font-xlarge .details dl,html.a11y-font-small .details dl{font-size:.86rem}
html.high-contrast body,html.high-contrast .public,html.high-contrast .public main{background:#000!important;color:#fff!important}html.high-contrast .bip-header,html.high-contrast .accessibility-bar,html.high-contrast .petition,html.high-contrast .card,html.high-contrast .petition-detail{background:#000!important;color:#fff!important;border-color:#fff!important}html.high-contrast .office-name,html.high-contrast .public main>h1,html.high-contrast .details h2,html.high-contrast .details h2 a,html.high-contrast .date span,html.high-contrast .date strong,html.high-contrast .detail-head h1,html.high-contrast .petition-detail h2,html.high-contrast .accessibility-label{color:#fff!important}html.high-contrast .details dt,html.high-contrast .detail-date,html.high-contrast .breadcrumbs,html.high-contrast .muted{color:#ddd!important}html.high-contrast .details dd,html.high-contrast .detail-number{color:#fff!important}html.high-contrast .filters input,html.high-contrast .filters select{background:#000!important;color:#fff!important;border:2px solid #fff!important}html.high-contrast .a11y-btn{background:#000!important;color:#ff0!important;border-color:#ff0!important}html.high-contrast .docs a,html.high-contrast .detail-docs a,html.high-contrast .timeline-content a{background:#111!important;color:#fff!important;border:1px solid #fff!important}html.high-contrast .bip-nav,html.high-contrast .public-footer{background:#000!important;border-color:#ff0!important}html.high-contrast .bip-nav a{border-color:#fff!important}html.high-contrast a{color:#ff0!important}html.high-contrast .bip-nav a,html.high-contrast .public-footer,html.high-contrast .public-footer span{color:#fff!important}html.high-contrast :focus-visible{outline-color:#ff0!important}
@media(max-width:900px){.accessibility-inner,.public-footer-inner{padding-left:18px;padding-right:18px}}
@media(max-width:650px){.accessibility-inner{justify-content:flex-start;flex-wrap:wrap;padding:8px 12px}.accessibility-label{width:100%}.public-footer-inner{padding:18px 14px;flex-direction:column;align-items:flex-start;min-height:auto}}
