:root{
  --bg:#F6F7F9; --surface:#FFFFFF; --ink:#10131A; --muted:#5B6472; --line:#E4E7EC;
  --accent:#FF6A3D; --accent-dark:#E24E1F; --accent-2:#14B8A6;
  --dark:#0E1013; --dark-surface-2:#20242B; --dark-line:rgba(255,255,255,0.08);
  --dark-text:#F5F6F7; --dark-muted:#8A93A1; --danger:#E5484D; --ok:#166534; --ok-bg:#F0FDF4; --ok-line:#86EFAC; --warn:#854D0E; --warn-bg:#FEFCE8; --warn-line:#FACC15; --err:#B91C1C; --err-strong:#991B1B; --err-bg:#FEF2F2; --err-line:#FCA5A5;
  --font-logo:'Special Gothic Expanded One', 'Special Gothic', sans-serif; --font-display:'Special Gothic', sans-serif; --font-body:'Schibsted Grotesk', sans-serif; --font-mono:'Azeret Mono', monospace;
}
*{box-sizing:border-box;}
body{margin:0; font-family:var(--font-body); color:var(--ink); background:var(--bg); line-height:1.55;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0 0 .4em 0; letter-spacing:-0.01em;}
h1{font-size:32px;}
p{margin:0 0 .8em 0; color:var(--muted);}

.demo-banner{background:var(--line); color:var(--ink); text-align:center; padding:10px 20px; font-size:12px; font-weight:600;}

header{background:var(--dark); color:var(--dark-text); padding:16px 28px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.logo{font-family:var(--font-logo); font-weight:400; font-size:20px; display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--dark-text);}
.logo-mark{width:24px; height:24px; border-radius:6px; background:linear-gradient(135deg,var(--accent),var(--accent-2));}
.user-chip{display:flex; align-items:center; gap:12px; font-size:14px;}
.user-avatar{width:32px; height:32px; border-radius:50%; background:var(--accent); color:var(--ink); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px;}
.logout-link{font-size:14px; color:var(--dark-muted); text-decoration:none;}
.logout-link:hover{color:#fff;}

.notif-bell{position:relative; background:none; border:none; cursor:pointer; color:var(--dark-text); padding:6px;}
.notif-dot{position:absolute; top:-2px; right:-4px; min-width:16px; height:16px; padding:0 4px; box-sizing:border-box; border-radius:9px; background:var(--accent); color:var(--ink); font-family:var(--font-body); font-size:11px; font-weight:700; line-height:16px; text-align:center;}
.notif-dropdown{position:absolute; top:56px; right:28px; width:320px; background:var(--surface); border-radius:14px; box-shadow:0 12px 30px rgba(0,0,0,0.15); z-index:100; display:none; overflow:hidden;}
.notif-dropdown.open{display:block;}
.notif-dropdown h4{padding:14px 16px; margin:0; font-size:16px; border-bottom:1px solid var(--line); color:var(--ink);}
.notif-item{display:block; padding:12px 16px; text-decoration:none; border-bottom:1px solid var(--line); font-size:12px; color:var(--ink);}
.notif-item:last-child{border-bottom:none;}
.notif-item .ni-time{font-family:var(--font-mono); font-size:11px; color:var(--muted); display:block; margin-top:3px;}
.notif-item.unread{background:var(--bg);}

.layout{display:grid; grid-template-columns:220px 1fr; max-width:1180px; margin:0 auto;}
nav.side{padding:28px 0; border-right:1px solid var(--line);}
nav.side a{display:flex; align-items:center; gap:10px; padding:11px 24px; text-decoration:none; color:var(--muted); font-size:14px; font-weight:600; border-left:3px solid transparent;}
nav.side a:hover{color:var(--ink); background:var(--surface);}
nav.side a.active{color:var(--accent-dark); border-left-color:var(--accent); background:var(--surface);}
main{padding:32px 32px 80px;}
section{margin-bottom:44px; scroll-margin-top:20px;}
.eyebrow{font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-dark); margin-bottom:8px;}

.card{background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:26px;}

.order-switcher{margin-bottom:20px;}
.order-switcher select{padding:12px 14px; border-radius:9px; border:1px solid var(--line); font-size:14px; font-family:var(--font-body); background:var(--surface); min-width:280px;}

.stepper{display:flex; margin-top:24px;}
.step-item{flex:1; text-align:center; position:relative;}
.step-item::before{content:""; position:absolute; top:15px; left:-50%; width:100%; height:2px; background:var(--line); z-index:0;}
.step-item:first-child::before{display:none;}
.step-item.done::before{background:var(--accent);}
.step-dot{width:32px; height:32px; border-radius:50%; background:var(--surface); border:2px solid var(--line); display:flex; align-items:center; justify-content:center; margin:0 auto 10px; position:relative; z-index:1;}
.step-item.done .step-dot{background:var(--accent); border-color:var(--accent);}
.step-item.current .step-dot{border-color:var(--accent); background:var(--accent); box-shadow:inset 0 0 0 6px var(--surface);}
.step-label{font-size:12px; font-weight:600; color:var(--muted); max-width:110px; margin:0 auto;}
.step-item.done .step-label, .step-item.current .step-label{color:var(--ink);}

.summary-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:20px;}
.summary-item .k{font-family:var(--font-mono); font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; display:block; margin-bottom:4px;}
.summary-item .v{font-size:14px; font-weight:600;}

.contact-cards{display:flex; gap:16px; flex-wrap:wrap;}
.contact-card{flex:1; min-width:230px; border:1px solid var(--line); border-radius:12px; padding:16px 18px; display:flex; gap:14px; align-items:flex-start;}
.contact-avatar{width:44px; height:44px; border-radius:50%; background:var(--accent); color:var(--ink); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex-shrink:0; font-family:var(--font-display);}
.contact-name{font-weight:700; font-size:14px;}
.contact-role{font-size:12px; color:var(--muted); margin:2px 0 9px;}
.contact-line{font-size:14px; margin-top:4px;}
.contact-line a{color:var(--accent-dark); text-decoration:none; font-weight:600;}
.contact-line a:hover{text-decoration:underline;}

.order-card{border:1px solid var(--line); border-radius:14px; padding:20px; margin-bottom:14px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
.order-card h2{margin:0 0 4px; font-size:16px;}
.order-card .oc-meta{font-size:12px; color:var(--muted); font-family:var(--font-mono);}
.status-pill{font-family:var(--font-mono); font-size:11px; padding:4px 10px; border-radius:999px; font-weight:600; display:inline-block;}
/* Pastylki statusów: osobna paleta sygnałowa (nie kolory marki). Grupy różnią się barwą i jasnością,
   żeby były czytelne także przy daltonizmie czerwono-zielonym; ! ✓ ✕ jako dodatkowy znak. */
.status-new{background:#FACC15; color:#10131A;}
.status-contact{background:#60A5FA; color:#10131A;}
.status-progress{background:#10131A; color:#FFFFFF;}
.status-confirmed{background:#22C55E; color:#10131A;}
.status-done{background:var(--line); color:#4B5563;}
.status-incomplete, .status-cancelled{background:#991B1B; color:#FFFFFF;}
.status-new::before{content:"!";}
.status-confirmed::before{content:"\2713";}
.status-incomplete::before, .status-cancelled::before{content:"\2715";}
.status-new::before, .status-confirmed::before, .status-incomplete::before, .status-cancelled::before{display:inline-block; margin-right:5px; font-weight:700;}


.doc-list{margin-top:6px;}
.doc-row{display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--line);}
.doc-row:last-child{border-bottom:none;}
.doc-icon{width:38px; height:38px; border-radius:9px; background:var(--bg); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.doc-name{font-weight:600; font-size:14px;}
.doc-meta{font-size:12px; color:var(--muted); font-family:var(--font-mono);}
.doc-download{margin-left:auto; font-size:14px; font-weight:600; color:var(--accent-dark); text-decoration:none; display:flex; align-items:center; gap:5px;}

.empty-state{text-align:center; padding:36px 20px; color:var(--muted);}
.empty-state .icon-wrap{width:52px; height:52px; border-radius:14px; background:var(--bg); display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:18px;}
.form-grid .full{grid-column:1/-1;}
label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px; font-family:var(--font-mono);}
input[type=text], input[type=email], input[type=tel], input[type=password], select, textarea{width:100%; padding:12px 14px; border-radius:9px; border:1px solid var(--line); font-size:14px; font-family:var(--font-body); background:var(--bg);}
textarea{resize:vertical; min-height:90px; font-family:inherit;}
input.is-invalid{border-color:var(--err) !important;}
.field-error{color:var(--err); font-size:12px; min-height:16px; margin-top:4px;}
.field-error:not(:empty)::before{content:"\2715\00a0"; font-weight:700;}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:inherit; text-decoration:none; font-weight:600; font-size:14px; padding:12px 22px; border-radius:10px; border:none; cursor:pointer; background:var(--accent); color:var(--ink); margin-top:18px;}
.btn:hover{background:#E24E1F;}
.btn-outline{background:transparent; border:1px solid var(--line); color:var(--ink);}
.btn-sm{padding:8px 14px; font-size:14px; margin-top:0;}

.rating-cat{margin-bottom:22px;}
.rating-cat-label{font-weight:600; font-size:14px; margin-bottom:8px; display:block;}
.star-rate{display:flex; gap:4px;}
.star-rate button{all:unset; cursor:pointer; font-size:26px; line-height:1; color:transparent; -webkit-text-stroke:1.2px var(--muted);}
.star-rate button.on{color:var(--accent-dark); -webkit-text-stroke-color:var(--accent-dark);}

/* Bramka logowania/rejestracji panelu klienta (client-shared.js: clientAuthGate) — podmienia
   całą treść <main>, gdy brak ważnego tokena. Osobna od login.blade.php/register.blade.php w
   backend/, bo to inny origin i inny localStorage. */

@media (max-width:800px){
  .layout{grid-template-columns:1fr;}
  nav.side{display:flex; overflow-x:auto; border-right:none; border-bottom:1px solid var(--line); padding:14px 16px; gap:6px;}
  nav.side a{border-left:none; border-bottom:3px solid transparent; padding:8px 12px; white-space:nowrap;}
  nav.side a.active{border-left:none; border-bottom-color:var(--accent);}
  .summary-grid, .form-grid{grid-template-columns:1fr;}
  .notif-dropdown{right:16px; width:280px;}
}
