/* geowycena.pl client portal. Palette + type match demo.konsultingai.pl. */
:root{
  --paper:#F4EFE6; --paper-edge:#EFE9DD; --card:#FBF8F2;
  --ink:#1C2A39; --ink-soft:#46566A; --ink-mute:#7E8A99;
  --line:#DFD7C8; --accent:#C8741A; --accent-soft:#E9C9A3;
  --good:#2E7D32; --watch:#B8860B; --alert:#9A3412;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
  --serif:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',monospace;
  --shadow:0 10px 30px rgba(28,42,57,.14);
}
*{box-sizing:border-box}
/* our display:flex rules on .view/.centered outrank the UA [hidden] rule, so force it */
[hidden]{display:none!important}
html,body{margin:0}
body{
  font-family:var(--sans); color:var(--ink);
  background:var(--paper);
  background-image:radial-gradient(1200px 500px at 50% -200px, #fff 0%, var(--paper) 60%);
  min-height:100vh; display:flex; flex-direction:column;
}
h1{font-family:var(--serif); font-weight:700; font-size:26px; margin:0 0 6px}
h2.sec-h{font-family:var(--serif); font-weight:600; font-size:20px; margin:0 0 16px; color:var(--ink)}
.lead{color:var(--ink-soft); font-size:14.5px; line-height:1.55; margin:0 0 18px}
.muted{color:var(--ink-mute)}
.spacer{flex:1}

/* Masthead */
.mast{
  display:flex; align-items:center; gap:14px;
  padding:14px 22px; background:var(--card);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(28,42,57,.03);
}
.mast .ti{font-family:var(--serif); font-weight:600; font-size:18px; line-height:1.1}
.mast .sub{color:var(--ink-mute); font-size:12.5px; margin-top:2px}
.seal{
  width:40px; height:40px; border-radius:50%; flex:0 0 auto;
  display:grid; place-items:center; font-family:var(--mono); font-weight:500;
  color:#fff; background:linear-gradient(140deg,var(--accent),#9c5410);
  letter-spacing:.5px; box-shadow:var(--shadow);
}
.seal-lg{width:56px; height:56px; font-size:18px; margin:0 auto 14px}

/* Layout */
main#app{flex:1; display:flex; flex-direction:column}
.view{flex:1}
.centered{display:flex; align-items:center; justify-content:center; padding:40px 18px}
.wrap{max-width:820px; margin:0 auto; padding:34px 18px 60px; width:100%}

/* Cards / auth */
.card{
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  box-shadow:var(--shadow);
}
.auth-card{width:100%; max-width:400px; padding:32px 30px; text-align:center}
.auth-card h1{text-align:center}
.auth-card .lead{text-align:center}
form{display:flex; flex-direction:column; gap:14px; text-align:left; margin-top:6px}
label{font-size:13px; color:var(--ink-soft); font-weight:500; display:flex; flex-direction:column; gap:6px}
input[type=email],input[type=password]{
  font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:11px 13px; border:1px solid var(--line); border-radius:9px;
  background:#fff; transition:border-color .15s, box-shadow .15s;
}
input:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft)}
.btn-primary{
  font-family:var(--sans); font-weight:600; font-size:15px; color:#fff;
  background:linear-gradient(140deg,var(--accent),#a85e12); border:0;
  padding:12px 16px; border-radius:9px; cursor:pointer; margin-top:4px;
  transition:filter .15s, transform .05s;
}
.btn-primary:hover{filter:brightness(1.05)}
.btn-primary:active{transform:translateY(1px)}
.btn-primary:disabled{opacity:.6; cursor:progress}
.btn-ghost{
  font-family:var(--sans); font-size:13.5px; color:var(--ink-soft);
  background:transparent; border:1px solid var(--line); border-radius:8px;
  padding:8px 13px; cursor:pointer; text-decoration:none; transition:background .15s;
}
.btn-ghost:hover{background:var(--paper-edge)}
.err{color:var(--alert); font-size:13px; margin:2px 0 0}

/* Reports list */
.reports{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.report{
  background:var(--card); border:1px solid var(--line); border-radius:12px;
  padding:16px 18px; cursor:pointer; display:flex; align-items:center; gap:16px;
  transition:border-color .15s, box-shadow .15s, transform .05s;
}
.report:hover{border-color:var(--accent-soft); box-shadow:var(--shadow)}
.report:active{transform:translateY(1px)}
.report .r-body{flex:1; min-width:0}
.report .r-title{font-family:var(--serif); font-weight:600; font-size:17px; margin:0 0 3px}
.report .r-parcel{color:var(--ink-soft); font-size:13.5px; margin:0}
.report .r-meta{display:flex; align-items:center; gap:10px; margin-top:6px}
.report .r-date{font-family:var(--mono); font-size:12px; color:var(--ink-mute)}
.badge{
  font-size:11px; font-weight:600; letter-spacing:.3px; text-transform:uppercase;
  padding:2px 8px; border-radius:20px;
}
.badge-rev{color:var(--watch); background:#fbf3dd; border:1px solid #ecdca6}
.report .chev{color:var(--ink-mute); font-size:20px; flex:0 0 auto}

/* Viewer */
.viewer-bar{
  display:flex; align-items:center; gap:14px;
  padding:11px 18px; background:var(--card); border-bottom:1px solid var(--line);
}
.viewer-title{font-family:var(--serif); font-weight:600; font-size:15px; color:var(--ink); flex:1; text-align:center}
.viewer-frame{width:100%; border:0; background:#fff; height:calc(100vh - 108px)}

/* Footer + spinner */
.foot{padding:16px; text-align:center; color:var(--ink-mute); font-size:12px; border-top:1px solid var(--line)}
.spinner{
  width:34px; height:34px; border-radius:50%;
  border:3px solid var(--accent-soft); border-top-color:var(--accent);
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:560px){
  .mast{padding:12px 16px}
  .wrap{padding:24px 14px 48px}
  h1{font-size:23px}
}
