:root{
  --bench:#15171B; --bench-panel:#1D2025; --bench-line:#2A2E35;
  --paper:#F7F5F0; --paper-line:#E7E3D8; --ink:#1B1B18;
  --muted:#8A8F98; --muted-dark:#5B6067;
  --laser:#FF4B2B; --laser-dark:#D8391D; --good:#3FA66B; --bad:#C13A2E;
}
*{box-sizing:border-box;}
body{
  margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  background:var(--bench); color:var(--ink);
}
.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;}
#app{display:flex; min-height:100vh; flex-direction:row;}
@media (max-width:700px){ #app{flex-direction:column;} }

#nav{background:var(--bench); padding:16px; display:flex; flex-direction:column; gap:6px; width:220px; flex-shrink:0; border-right:1px solid var(--bench-line);}
@media (max-width:700px){ #nav{width:auto; flex-direction:row; border-right:none; border-bottom:1px solid var(--bench-line); justify-content:space-between; flex-wrap:wrap;} }
#nav .brand{display:flex; align-items:center; gap:8px; color:#fff; font-size:18px; margin-bottom:20px;}
@media (max-width:700px){ #nav .brand{display:none;} }
#nav button{background:none; border:none; color:var(--muted); padding:10px 12px; border-radius:8px; font-size:14px; font-weight:500; text-align:left; cursor:pointer; display:flex; align-items:center; gap:8px; width:100%;}
@media (max-width:700px){ #nav button{width:auto; flex:1;} }
#nav button.active{background:var(--laser); color:#fff;}
#nav .who{color:var(--muted); font-size:12px; margin-top:auto; padding:10px 12px;}
@media (max-width:700px){ #nav .who{display:none;} }
#nav .signout{color:var(--muted); font-size:12px; text-decoration:underline; cursor:pointer; padding:0 12px 10px;}
#nav .nav-footer-links{display:flex; flex-direction:column; gap:4px; padding:0 12px 8px;}
@media (max-width:700px){ #nav .nav-footer-links{display:none;} }
#nav .nav-footer-links a{color:var(--muted); font-size:11px; text-decoration:none;}
#nav .nav-footer-links a:hover{text-decoration:underline;}

#main{
  flex:1; padding:32px; overflow-y:auto;
  background-color:var(--paper);
  background-image:linear-gradient(var(--paper-line) 1px, transparent 1px), linear-gradient(90deg, var(--paper-line) 1px, transparent 1px);
  background-size:28px 28px;
}
@media (max-width:700px){ #main{padding:16px;} }
h1{font-size:26px; margin:0 0 4px;}
h1 + p{color:var(--muted-dark); font-size:14px; margin:0 0 22px;}
h3.section-title{font-size:12px; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted-dark); margin:0 0 12px; font-weight:700;}

.card{background:#fff; border:1px solid var(--paper-line); border-radius:12px; padding:18px;}
.row{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.field{display:block; margin-bottom:12px;}
.field label{display:block; font-size:11px; text-transform:uppercase; letter-spacing:0.03em; color:var(--muted-dark); margin-bottom:5px; font-weight:600;}
input, select, textarea{
  width:100%; padding:9px 11px; border-radius:7px; border:1px solid var(--paper-line);
  font-size:14px; background:#fff; color:var(--ink); font-family:inherit; outline:none;
}
input:focus, select:focus{border-color:var(--laser);}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.grid5{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
@media (max-width:900px){ .grid5{grid-template-columns:1fr;} }
.col3{grid-column:span 3;} .col2{grid-column:span 2;}
@media (max-width:900px){ .col3, .col2{grid-column:span 1;} }

button.btn{
  background:var(--laser); color:#fff; border:none; padding:10px 16px; border-radius:8px;
  font-size:14px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:6px;
}
button.btn:disabled{opacity:0.5; cursor:not-allowed;}
button.btn:active{transform:scale(0.97);}
button.btn.ghost{background:#fff; color:var(--ink); border:1px solid var(--paper-line);}
button.btn-full{width:100%; justify-content:center;}
.icon-btn{background:none; border:none; color:var(--bad); cursor:pointer; padding:4px;}
.link-btn{background:none;border:none;color:var(--laser-dark);font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;}

.pill{padding:9px 15px; border-radius:999px; font-size:14px; font-weight:600; cursor:pointer; border:1px solid var(--paper-line); background:#fff; color:var(--ink);}
.pill.active{background:var(--ink); color:#fff;}

.quote-result{position:relative; border-radius:14px;}
.quote-result svg{position:absolute; inset:0; width:100%; height:100%; pointer-events:none;}
.cut-trace{animation:dash 1.4s linear infinite;}
@keyframes dash{ to{stroke-dashoffset:-28;} }

.kv{display:flex; justify-content:space-between; font-size:13px; margin-bottom:5px;}
.kv .k{color:var(--muted-dark);} .kv .v{font-weight:600;}
.divider{border-top:1px dashed var(--paper-line); margin:10px 0;}
.divider.solid{border-top:1px solid var(--paper-line);}

.total-line{display:flex; justify-content:space-between; align-items:baseline;}
.total-line .label{font-weight:600; font-size:14px;}
.total-line .value{font-size:26px; font-weight:800; color:var(--laser-dark);}

.client-item{display:flex; justify-content:space-between; align-items:center; cursor:pointer; margin-bottom:8px;}
.client-item:hover{opacity:0.85;}
.badge-success{color:var(--good); font-size:12px; display:flex; align-items:center; gap:5px; margin-top:8px;}
.error-banner{background:#FDEDEA; color:var(--bad); padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:16px; display:flex; align-items:center; gap:8px;}

.auth-screen{max-width:360px; margin:70px auto 0; text-align:center;}
.auth-screen p{color:var(--muted-dark); font-size:14px;}
.auth-screen .card{text-align:left; margin-top:16px;}

.admin-lock{max-width:340px; margin:80px auto 0; text-align:center;}
.admin-lock p{color:var(--muted-dark); font-size:14px;}

table.editor{width:100%; border-collapse:collapse; font-size:13px;}
table.editor td{padding:6px 4px; border-bottom:1px solid var(--paper-line); vertical-align:middle;}
table.editor th{padding:4px 4px 8px; text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:0.03em; color:var(--muted-dark); font-weight:700;}
table.editor input, table.editor select{padding:7px 8px; font-size:13px;}

.loading-screen{width:100%; min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--bench); color:var(--muted); font-size:14px;}

::-webkit-scrollbar{width:8px; height:8px;}
::-webkit-scrollbar-thumb{background:var(--bench-line); border-radius:4px;}

/* Report PDF export: window.print() with only the report card visible.
   Elements marked .no-print (filters, buttons, nav) are hidden, and the
   .printable-report block is pulled out to fill the printed page. */
@media print{
  body *{ visibility:hidden; }
  .printable-report, .printable-report *{ visibility:visible; }
  .printable-report{ position:absolute; left:0; top:0; width:100%; margin:0; padding:0; max-width:none; }
  .printable-report .card{ border:none; padding:0; }
  #nav, .no-print{ display:none !important; }
  #main{ background:none !important; padding:0 !important; }
}
