/* portal.css — Adampol SA · Portal systemów firmowych (nowy wygląd) */
:root{
  --bg:#eef2f7; --panel:#ffffff; --ink:#1d2837; --muted:#647489;
  --line:#e4e9f1; --brand:#2f6cc9; --brand-deep:#235196; --brand-soft:#e9f1fb;
  --radius:10px;
  --shadow:0 1px 2px rgba(20,40,70,.05), 0 8px 24px rgba(20,40,70,.06);
  --top-grad:linear-gradient(180deg,#ffffff 0%,#f4f8fd 100%);
  --pill-bg:#eef3f9; --chip-soft:#eef3f9;
  --footer-bg:rgba(0,0,0,.015); --scrim-to:rgba(255,255,255,0);
  --input-bg:#ffffff; --shot-base:.12; --shot-hi:.30; --feat-shot-base:.18; --feat-shot-hi:.44;
  --login-grad:linear-gradient(135deg,#eef2f7 0%,#e1ecf8 100%);
}
html[data-theme="dark"]{
  --bg:#0e1726; --panel:#16223a; --ink:#e9eff8; --muted:#90a1bd;
  --line:rgba(255,255,255,.09); --brand:#5b9bff; --brand-deep:#7fb2ff; --brand-soft:rgba(91,155,255,.15);
  --shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 10px 30px rgba(0,0,0,.4);
  --top-grad:linear-gradient(180deg,#1a2942 0%,#141f33 100%);
  --pill-bg:rgba(255,255,255,.07); --chip-soft:rgba(255,255,255,.06);
  --footer-bg:rgba(0,0,0,.18); --scrim-to:rgba(22,34,58,0);
  --input-bg:#0f1a2c; --shot-base:.16; --shot-hi:.4; --feat-shot-base:.2; --feat-shot-hi:.46;
  --login-grad:linear-gradient(135deg,#0e1726 0%,#172642 100%);
  color-scheme:dark;
}
html[data-theme="dark"] .pt-logo{ filter:brightness(0) invert(1) brightness(1.4); }
@font-face{ font-family:'Overpass'; src:url('../fonts/Overpass-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Overpass'; src:url('../fonts/Overpass-SemiBold.ttf') format('truetype'); font-weight:600; font-display:swap; }
@font-face{ font-family:'Overpass'; src:url('../fonts/Overpass-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }
@font-face{ font-family:'Overpass'; src:url('../fonts/Overpass-ExtraBold.ttf') format('truetype'); font-weight:800; font-display:swap; }
@font-face{ font-family:'Overpass'; src:url('../fonts/Overpass-Black.ttf') format('truetype'); font-weight:900; font-display:swap; }

*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  font-family:'Overpass','Segoe UI',system-ui,sans-serif;
  background:var(--bg); color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; }
.ic{ fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.inner{ max-width:1180px; margin:0 auto; padding:0 40px; }

/* top band (logo + powitanie + chips — scalone w jeden pas) */
.pt-top{ background:var(--top-grad); border-bottom:1px solid var(--line); }
.pt-top .inner{ padding:20px 40px 24px; }
.pt-top-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.pt-logo{ height:26px; display:block; }
.pill{ display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px;
  font-size:13px; font-weight:600; background:var(--pill-bg); color:var(--muted); }
.pt-chips{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.pt-chips .pill{ padding:9px 15px; white-space:nowrap; }
/* przełącznik motywu */
.theme-switch{ position:relative; flex:none; width:58px; height:30px; border-radius:999px; border:1px solid var(--line);
  background:var(--pill-bg); cursor:pointer; padding:0; display:inline-flex; align-items:center; transition:background .2s; }
.theme-switch .ts-knob{ position:absolute; top:2px; left:2px; width:24px; height:24px; border-radius:50%;
  background:var(--panel); box-shadow:0 1px 3px rgba(0,0,0,.25); display:grid; place-items:center; color:var(--brand);
  transition:left .22s cubic-bezier(.4,.1,.3,1.4); }
html[data-theme="dark"] .theme-switch .ts-knob{ left:32px; }
.theme-switch .ts-sun{ display:block; }
.theme-switch .ts-moon{ display:none; }
html[data-theme="dark"] .theme-switch .ts-sun{ display:none; }
html[data-theme="dark"] .theme-switch .ts-moon{ display:block; }
.pt-chips .pill strong{ color:var(--ink); font-weight:800; }
.pt-greet-date{ font-size:14px; font-weight:600; color:var(--muted); margin-bottom:4px; }
.pt-greet-title{ margin:0; font-size:30px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }

/* sections */
.pt-main{ padding:38px 40px 8px; }
.section-label{ display:flex; align-items:baseline; gap:12px; margin:0 0 16px; }
.section-label h2{ margin:0; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); }
.section-label .kicker{ font-size:12.5px; color:var(--muted); font-weight:500; }
.section-label .rule{ flex:1; height:1px; background:var(--line); }

.grid-feature{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:42px; }
.grid-apps{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:16px; }

/* shared tile bits */
.tile-wrap{ position:relative; }
.shot,.scrim{ position:absolute; }
.shot{ top:0; bottom:0; right:0; background-size:cover; background-position:top left;
  filter:saturate(.9); transition:opacity .22s ease;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 55%); mask-image:linear-gradient(to right,transparent,#000 55%); }
.scrim{ inset:0; pointer-events:none; }

/* feature tile */
.feat{ position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between;
  width:100%; min-height:162px; padding:20px 20px 18px; border-radius:var(--radius);
  background:var(--panel); color:var(--ink); border:1px solid var(--line); box-shadow:var(--shadow);
  cursor:pointer; text-align:left; text-decoration:none; font:inherit; appearance:none;
  transition:transform .15s ease, box-shadow .15s ease; }
.feat:hover{ transform:translateY(-3px); }
.feat .shot{ left:34%; opacity:var(--feat-shot-base); }
.feat:hover .shot{ opacity:var(--feat-shot-hi); }
.feat .scrim{ background:linear-gradient(100deg,var(--panel) 30%,var(--scrim-to) 78%); }
.feat-top{ position:relative; z-index:1; display:flex; justify-content:space-between; align-items:flex-start; }
.feat-badge{ display:grid; place-items:center; width:46px; height:46px; border-radius:10px; background:var(--brand-soft); color:var(--brand); }
.feat-catwrap{ display:flex; align-items:center; gap:7px; }
.feat-caret{ display:grid; place-items:center; width:20px; height:20px; border-radius:6px; background:var(--brand-soft); color:var(--brand); }
.feat-cat{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); opacity:.9; }
.feat-body{ position:relative; z-index:1; }
.feat-name{ display:block; font-size:22px; font-weight:800; letter-spacing:-.01em; margin-bottom:3px; }
.feat-desc{ display:block; font-size:13.5px; color:var(--muted); font-weight:500; }

/* compact tile */
.app{ position:relative; overflow:hidden; display:flex; align-items:center; gap:13px; width:100%;
  padding:13px 15px; border-radius:8px; background:var(--panel); color:var(--ink);
  border:1px solid var(--line); box-shadow:var(--shadow); cursor:pointer; text-align:left;
  text-decoration:none; font:inherit; appearance:none;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.app:hover{ transform:translateY(-3px); }
.app .shot{ left:50%; opacity:var(--shot-base); }
.app:hover .shot{ opacity:var(--shot-hi); }
.app .scrim{ background:linear-gradient(100deg,var(--panel) 42%,var(--scrim-to) 90%); }
.app-badge{ position:relative; z-index:1; flex:none; display:grid; place-items:center; width:40px; height:40px;
  border-radius:9px; background:var(--brand-soft); color:var(--brand); }
.app-text{ position:relative; z-index:1; min-width:0; }
.app-name{ display:block; font-size:15px; font-weight:700; letter-spacing:-.01em; }
.app-desc{ display:block; font-size:12.5px; color:var(--muted); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.app-caret{ position:relative; z-index:1; margin-left:auto; flex:none; display:grid; place-items:center;
  width:24px; height:24px; border-radius:7px; background:var(--brand-soft); color:var(--brand); }

/* dropdown menu */
.menu-panel{ position:absolute; top:calc(100% + 6px); left:0; min-width:224px; max-width:108%;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 14px 36px rgba(20,40,70,.18), 0 2px 6px rgba(20,40,70,.08);
  padding:6px; z-index:30; display:none; }
.tile-wrap.open .menu-panel{ display:block; }
.menu-head{ font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); padding:6px 10px 4px; }
.menu-item{ display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:7px; text-decoration:none; color:var(--ink); transition:background .12s; }
.menu-item:hover{ background:var(--brand-soft); }
.menu-ic{ flex:none; display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:var(--brand-soft); color:var(--brand); }
.menu-label{ font-size:14px; font-weight:700; }
.menu-sub{ display:block; font-size:12px; color:var(--muted); font-weight:500; }

/* footer */
.pt-footer{ border-top:1px solid var(--line); margin-top:30px; background:var(--footer-bg); }
.pt-footer .cols{ padding:34px 40px 40px; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:30px; }
.fcol h3{ margin:0; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); }
.fcol .fhead{ display:flex; align-items:baseline; gap:8px; margin-bottom:12px; }
.fcol .fdate{ font-size:11px; color:var(--muted); }
.fcol .ftext{ margin:0 0 14px; font-size:13.5px; line-height:1.65; color:var(--muted); white-space:pre-line; }
.fcol .ftext a{ color:var(--brand); text-decoration:none; font-weight:600; }
.fcol .ftext a:hover{ opacity:.7; }
.fcta{ font-size:13px; font-weight:700; color:var(--brand); text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.fcta:hover{ opacity:.7; }
.flist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.flist a{ font-size:13.5px; color:var(--muted); text-decoration:none; display:inline-flex; align-items:center; gap:8px; font-weight:500; transition:opacity .15s; }
.flist a:hover{ opacity:.65; }
.flist .dot{ width:5px; height:5px; border-radius:50%; background:var(--brand); flex:none; }
.pt-footer .foot-bottom{ border-top:1px solid var(--line); }
.pt-footer .foot-bottom .row{ padding:16px 40px; display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:var(--muted); }

@media (max-width:900px){
  .grid-feature{ grid-template-columns:repeat(2,1fr); }
  .grid-apps{ grid-template-columns:repeat(2,1fr); }
  .pt-footer .cols{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .inner,.pt-top .inner,.pt-main,.pt-footer .cols,.pt-footer .foot-bottom .row{ padding-left:18px; padding-right:18px; }
  .grid-feature,.grid-apps{ grid-template-columns:1fr; }
  .pt-footer .cols{ grid-template-columns:1fr; }
  .howto-grid{ grid-template-columns:1fr; }
}

/* „Ustaw jako stronę startową” — link + instrukcja */
.foot-link{ border:none; background:none; font:inherit; color:var(--brand); font-weight:600; cursor:pointer; padding:0; }
.foot-link:hover{ opacity:.75; }
.howto-overlay{ position:fixed; inset:0; background:rgba(20,30,45,.45); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  display:none; align-items:center; justify-content:center; padding:24px; z-index:100; }
.howto-overlay.open{ display:flex; }
.howto{ position:relative; background:var(--panel); border-radius:14px; max-width:640px; width:100%; max-height:90vh; overflow:auto;
  padding:30px 30px 26px; box-shadow:0 30px 80px rgba(20,40,70,.3); }
.howto-x{ position:absolute; top:12px; right:16px; border:none; background:none; font-size:26px; line-height:1; color:var(--muted); cursor:pointer; }
.howto-x:hover{ color:var(--ink); }
.howto-title{ margin:0 0 8px; font-size:21px; font-weight:800; color:var(--ink); }
.howto-lead{ margin:0 0 12px; font-size:14px; color:var(--muted); line-height:1.55; }
.howto-url{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; background:var(--brand-soft); border:1px solid var(--line);
  border-radius:9px; padding:10px 12px; margin-bottom:22px; }
.howto-url code{ font-size:13.5px; color:var(--brand-deep); word-break:break-all; font-family:ui-monospace,Consolas,monospace; flex:1; min-width:160px; }
.howto-copy{ border:none; background:var(--brand); color:#fff; font:inherit; font-weight:700; font-size:12.5px; padding:7px 12px; border-radius:7px; cursor:pointer; white-space:nowrap; }
.howto-copy:hover{ background:var(--brand-deep); }
.howto-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
.howto-card{ border:1px solid var(--line); border-radius:10px; padding:14px; }
.howto-card h3{ margin:0 0 8px; font-size:13.5px; font-weight:800; color:var(--ink); }
.howto-card ol{ margin:0; padding-left:18px; display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--muted); line-height:1.45; }
.howto-card b{ color:var(--ink); font-weight:700; }
.howto-it{ font-size:12.5px; line-height:1.6; color:var(--muted); background:rgba(0,0,0,.02); border:1px solid var(--line); border-radius:9px; padding:12px 14px; }
.howto-it code{ font-family:ui-monospace,Consolas,monospace; font-size:11.5px; background:var(--brand-soft); color:var(--brand-deep); padding:1px 5px; border-radius:4px; }
.howto-actions{ display:flex; justify-content:flex-end; margin-top:18px; }
.howto-btn{ border:1px solid var(--line); background:var(--panel); color:var(--ink); font:inherit; font-weight:700; font-size:13px; padding:9px 18px; border-radius:8px; cursor:pointer; }
.howto-btn:hover{ background:var(--brand-soft); }

/* ============ Panel administracyjny ============ */
.adm-wrap{ max-width:1000px; margin:0 auto; padding:0 32px; }
.adm-head{ background:var(--panel); border-bottom:1px solid var(--line); }
.adm-head-row{ display:flex; align-items:center; gap:16px; height:66px; }
.adm-head .pt-logo{ height:24px; }
.adm-badge{ font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--brand);
  background:var(--brand-soft); padding:6px 11px; border-radius:999px; white-space:nowrap; }
.adm-home{ margin-left:auto; font-size:13px; font-weight:700; color:var(--muted); text-decoration:none; }
.adm-home:hover{ color:var(--brand); }
.adm-main{ padding:34px 32px 60px; }
.adm-card{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:22px; }
.adm-label{ display:block; font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--muted); margin:0 0 6px; }
.adm-input,.adm-textarea{ width:100%; box-sizing:border-box; font:inherit; font-size:14px; color:var(--ink); background:var(--input-bg);
  border:1px solid var(--line); border-radius:8px; padding:10px 12px; outline:none; transition:border-color .12s, box-shadow .12s; }
.adm-input:focus,.adm-textarea:focus{ border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-soft); }
.adm-textarea{ resize:vertical; min-height:120px; line-height:1.5; font-family:'Overpass','Segoe UI',system-ui,sans-serif; }
.adm-btn{ border:none; background:var(--brand); color:#fff; font:inherit; font-weight:700; font-size:14px;
  padding:10px 18px; border-radius:8px; cursor:pointer; white-space:nowrap; transition:background .12s; }
.adm-btn:hover{ background:var(--brand-deep); }
.adm-btn-block{ width:100%; margin-top:6px; padding:12px; }
.adm-upload{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.adm-file{ font:inherit; font-size:13.5px; color:var(--muted); flex:1; min-width:200px; }
.adm-file::file-selector-button{ font:inherit; font-weight:700; font-size:13px; color:var(--brand);
  background:var(--brand-soft); border:none; border-radius:7px; padding:8px 14px; margin-right:12px; cursor:pointer; }
.adm-empty{ font-size:13.5px; color:var(--muted); padding:6px 2px; }
.adm-table{ width:100%; border-collapse:collapse; font-size:14px; }
.adm-table th{ text-align:left; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); padding:8px 10px; border-bottom:1px solid var(--line); }
.adm-table td{ padding:11px 10px; border-bottom:1px solid var(--line); color:var(--ink); }
.adm-table tr:last-child td{ border-bottom:none; }
.adm-th-act,.adm-td-act{ text-align:right; }
.adm-link{ color:var(--brand); font-weight:700; text-decoration:none; }
.adm-link:hover{ text-decoration:underline; }
.adm-del{ color:#c0392b; font-weight:700; text-decoration:none; font-size:13.5px; }
.adm-del:hover{ text-decoration:underline; }
.adm-news-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.adm-news{ display:flex; flex-direction:column; gap:8px; }
.adm-news-no{ font-size:13px; font-weight:800; color:var(--ink); }
.adm-news .adm-btn{ align-self:flex-start; margin-top:10px; }
.adm-login{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:var(--login-grad); }
.adm-login-card{ width:100%; max-width:380px; background:var(--panel); border:1px solid var(--line);
  border-radius:14px; box-shadow:0 20px 60px rgba(20,40,70,.12); padding:34px 30px 30px; text-align:center; }
.adm-login-logo{ height:26px; margin-bottom:20px; }
.adm-login-title{ margin:0 0 6px; font-size:20px; font-weight:800; color:var(--ink); }
.adm-login-sub{ margin:0 0 22px; font-size:13.5px; color:var(--muted); }
.adm-login-card .adm-label{ text-align:left; }
@media (max-width:680px){ .adm-news-grid{ grid-template-columns:1fr; } }
