/* PS Master — Etap 2: czytelność, spójne kontrolki i responsywność. */

/* Kontrolki nigdy nie mogą wypchnąć kolumny ani rozciągnąć panelu. */
:where(.view,.page-view,main,section,article,aside,form,fieldset,div){min-width:0}
:where(input,select,textarea,button){max-width:100%}
textarea{inline-size:100%;min-inline-size:0;resize:block;overflow-wrap:anywhere}
pre,code{max-inline-size:100%}
pre{overflow:auto;overflow-wrap:normal}

/* Wybór języka jest jedną, wyraźną kontrolką — z własną strzałką i stanem focus. */
.language-picker{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(92px,1fr) auto;
  align-items:center;
  min-width:158px;
  min-height:40px;
  padding:0 10px;
  overflow:hidden;
}
.language-picker::after{content:"⌄";grid-column:3;color:currentColor;font-size:12px;pointer-events:none}
.language-picker #language-flag{grid-column:1;font-size:18px;filter:drop-shadow(0 2px 4px #0005)}
.language-picker select{
  grid-column:2;
  grid-row:1;
  width:100%;
  min-width:0;
  padding:8px 5px;
  border:0;
  background:transparent;
  color:inherit;
  appearance:none;
  box-shadow:none;
  text-overflow:ellipsis;
}
.language-picker:focus-within{outline:3px solid color-mix(in srgb,var(--mode-accent),transparent 68%);outline-offset:2px}

/* Jasny motyw obejmuje również górne menu, a nie tylko treść strony. */
body:not(.dark-theme) .topbar,
body:not(.dark-theme).linux-mode .topbar,
body:not(.dark-theme).macos-mode .topbar{
  color:#203238;
  border-bottom-color:#c7d5d9;
  background:
    radial-gradient(circle at 84% -45%,rgba(255,255,255,.95),transparent 34%),
    linear-gradient(112deg,#eef3f4 0%,#dce6e8 52%,#c9d8dc 100%);
  box-shadow:inset 0 1px #fff,0 13px 34px rgba(27,53,60,.14);
}
body:not(.dark-theme) .brand{color:#17292f}
body:not(.dark-theme) .brand small,
body:not(.dark-theme) .nav-group-label{color:#5e7379}
body:not(.dark-theme) .view-tab{color:#435960}
body:not(.dark-theme) .view-tab:hover,
body:not(.dark-theme) .view-tab.active{
  color:#17292f;
  background:linear-gradient(145deg,#fff,#dfe9eb);
  box-shadow:inset 0 1px #fff,0 8px 19px rgba(36,67,75,.12);
}
body:not(.dark-theme) .view-tab .nav-icon{stroke:currentColor;filter:none}
body:not(.dark-theme) .view-tab:after{color:#eaf3f4;background:#1c2a2f;border-color:#526970}
body:not(.dark-theme) .launch,
body:not(.dark-theme) .language-picker{
  border-color:#a9bcc1;
  background:linear-gradient(145deg,#fff,#e2eaec);
  color:#283e45;
  box-shadow:inset 0 1px #fff,0 7px 17px rgba(31,58,65,.1);
}
body:not(.dark-theme) .launch:hover,
body:not(.dark-theme) .language-picker:hover{border-color:#718d94;background:#fff}
body:not(.dark-theme) .launch.primary,
body:not(.dark-theme) .soft-launch{border-color:#58747c;background:linear-gradient(145deg,#728f97,#425e66);color:#fff}
body:not(.dark-theme) .language-picker option{background:#fff;color:#24363c}

/* Słowniczek: wysoki kontrast i osobne, skanowalne hasła w trybie ciemnym. */
.dark-theme .glossary-drawer{
  border-left-color:#4c6268;
  background:
    radial-gradient(circle at 100% 0,rgba(167,192,199,.13),transparent 25rem),
    linear-gradient(160deg,#172326,#0f181b 70%);
  color:#f1f7f8;
  box-shadow:-26px 0 72px #000a,inset 1px 0 #ffffff0b;
}
.dark-theme .glossary-head{padding-bottom:13px;border-bottom:1px solid #405257}
.dark-theme .glossary-head .kicker{color:#c1dadd}
.dark-theme .glossary-head h2{color:#fff}
.dark-theme .glossary-head button{border-color:#536a70;background:#26363b;color:#fff}
.dark-theme .glossary-head button:hover{border-color:#8ca7ae;background:#33474d;box-shadow:0 0 18px #a7c0c733}
.dark-theme .glossary-search{margin-top:16px;border-color:#52676d;background:#0a1113;box-shadow:inset 0 1px #ffffff0a,0 8px 22px #0004;color:#cfe3e6}
.dark-theme .glossary-search:focus-within{border-color:#a7c0c7;box-shadow:0 0 0 3px #a7c0c729,0 10px 25px #0005}
.dark-theme .glossary-search input{background:transparent;color:#f4f9fa;box-shadow:none}
.dark-theme .glossary-count{color:#aabdc1}
.dark-theme .glossary-list{display:grid;gap:9px;padding:0 5px 22px 0;scrollbar-color:#5e747a #111b1e}
.dark-theme .glossary-term{
  padding:14px 15px;
  border:1px solid #35484d;
  border-left:3px solid #7f9da4;
  border-radius:11px;
  background:linear-gradient(145deg,#1d2b2f,#151f22);
  box-shadow:inset 0 1px #ffffff0b,0 8px 20px #0003;
}
.dark-theme .glossary-term:first-child{border-top:1px solid #35484d}
.dark-theme .glossary-term h3{color:#d9edf0;text-shadow:0 0 15px #a7c0c72b}
.dark-theme .glossary-term p{color:#b6c7ca}

/* Start: trzy równorzędne karty zamiast dwóch sklejonych i jednej osobnej. */
.start-bottom-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.start-trust{display:contents;border:0;background:transparent;overflow:visible}
.start-trust article,
.start-trust article+article,
.start-support{
  min-height:100%;
  border:1px solid var(--line);
  border-radius:18px;
}
.start-trust article+article{border-left:1px solid var(--line)}
.start-support{padding:26px}

/* Komunikaty są zawsze widoczne i nie chowają się pod nagłówkiem. */
.notice{
  z-index:120;
  width:max-content;
  max-width:min(430px,calc(100vw - 32px));
  overflow-wrap:anywhere;
  box-shadow:0 18px 48px #07162e4a;
}

/* Okna dialogowe korzystają z jednego kontrolowanego obszaru przewijania. */
.feedback-dialog{
  width:min(1020px,calc(100vw - 28px));
  max-width:calc(100vw - 28px);
  max-height:calc(100dvh - 28px);
  overflow:hidden;
}
.feedback-shell{display:flex;max-height:calc(100dvh - 30px);min-height:0;flex-direction:column}
.feedback-head{flex:0 0 auto}
.feedback-grid{min-height:0;overflow:auto;overscroll-behavior:contain}
.feedback-form :where(input,select,textarea){min-width:0}
.company-delete-dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}

/* Oba wyniki diagnostyki wyglądają i zachowują się jak aktywne decyzje. */
.diagnostic-actions button{min-height:44px;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.diagnostic-actions .primary-action{border-color:#16885d;background:linear-gradient(145deg,#24a979,#11714f);color:#fff;box-shadow:inset 0 1px #ffffff55,0 8px 20px #08734d30}
.diagnostic-actions .secondary-action{border-color:#c47f28;background:linear-gradient(145deg,#fff9ee,#f4dfbb);color:#744714;font-weight:800;cursor:pointer;box-shadow:inset 0 1px #fff,0 8px 20px #75430e17}
.diagnostic-actions button:hover{transform:translateY(-2px);box-shadow:inset 0 1px #ffffff66,0 12px 26px #142d3430}
.diagnostic-actions button:focus-visible{outline:3px solid color-mix(in srgb,var(--mode-accent),transparent 58%);outline-offset:3px}
.dark-theme .diagnostic-actions .secondary-action{border-color:#9c713c;background:linear-gradient(145deg,#3b2d1d,#2a2117);color:#f3c982}

/* Mniejsze ekrany: bez bocznego przewijania, przyciski w wygodnych rzędach. */
@media(max-width:1100px){
  .start-bottom-grid{grid-template-columns:1fr}
  .start-trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
}

@media(max-width:800px){
  .topbar{padding-inline:14px}
  .platform-wrap,.brand{max-width:100%}
  .launchers{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .launchers .launch,.language-picker{width:100%;min-width:0;min-height:44px;white-space:normal;text-align:center}
  .language-picker{grid-template-columns:auto minmax(0,1fr) auto;text-align:left}
  .view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%}
  .view-tab{width:100%;min-height:44px;justify-content:flex-start;white-space:normal;text-align:left}
  .notice{position:fixed;inset:auto 12px 12px;width:auto;max-width:none}
  .feedback-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:15px}
  .feedback-shell{max-height:calc(100dvh - 18px)}
  .feedback-head{padding:20px 18px 17px}
  .feedback-head h2{font-size:26px}
  .feedback-head p{font-size:14px}
  .feedback-form,.feedback-support{padding:20px 18px}
}

@media(max-width:620px){
  .launchers{grid-template-columns:1fr}
  .view-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .start-trust{grid-template-columns:1fr}
  .start-trust article,.start-trust article+article{border:1px solid var(--line)}
  .diagnostic-actions{display:grid;grid-template-columns:1fr}
  .diagnostic-actions button{width:100%}
  .feedback-row{grid-template-columns:1fr}
  .feedback-actions{display:grid;grid-template-columns:1fr}
  .feedback-actions>*{width:100%}
  .glossary-drawer{width:100vw;max-width:100vw;padding:18px}
}

@media(max-height:820px) and (min-width:781px){
  .feedback-head{padding:22px 27px 18px}
  .feedback-head h2{font-size:31px}
  .feedback-form{padding:20px 27px}
  .feedback-form>label,.feedback-row>label{margin-bottom:11px}
  .feedback-form textarea{min-height:96px}
  .feedback-support{padding:24px}
  .feedback-support .feedback-kicker{margin-top:14px}
  .feedback-support>a{margin:16px 0 9px}
  .feedback-divider{margin:18px 0}
}

@media(prefers-reduced-motion:reduce){
  .diagnostic-actions button{transition:none}
  .diagnostic-actions button:hover{transform:none}
}
