/* Splitrock Mining Co. — Ore Appraisal Terminal
   Industrial / utilitarian theme: gunmetal, hazard orange, stenciled type. */

:root{
  --bg:#0c0d0f;
  --panel:#14161a;
  --panel-2:#1b1e23;
  --line:#2a2e34;
  --line-2:#3a3f47;
  --text:#cfd3d8;
  --muted:#7f858d;
  --dim:#5a5f66;
  --accent:#f4c20d;      /* hazard yellow */
  --accent-2:#ffd633;    /* bright yellow */
  --accent-dk:#b8900a;
  --good:#86b34a;
  --bad:#cf5235;
  --mono:'Share Tech Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
  --head:'Oswald', 'Arial Narrow', system-ui, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--head);
  font-size:16px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background-image:
    radial-gradient(circle at 50% -10%, rgba(244,194,13,.07), transparent 60%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 1px, transparent 1px 3px);
}

.wrap{max-width:1040px;margin:0 auto;padding:20px 20px}

/* hazard stripe */
.hazard-bar{
  height:8px;
  background:repeating-linear-gradient(-45deg,
    var(--accent) 0 16px, #111 16px 32px);
  opacity:.9;
}

/* header */
.site-header{background:linear-gradient(180deg,#16181c,#101216);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px}
.brand{display:flex;align-items:center;gap:16px}
.emblem{width:50px;height:50px;color:var(--accent);flex:none}
.corp{font-size:12px;letter-spacing:.32em;color:var(--muted);font-weight:600}
.title{
  margin:0;font-size:26px;font-weight:700;letter-spacing:.06em;
  color:#f1f2f3;text-transform:uppercase;line-height:1;
}
.header-meta{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.tag{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted);
  border:1px solid var(--line-2);padding:2px 8px;background:#0e1013;
}
.tag-accent{color:#0c0d0f;background:var(--accent);border-color:var(--accent)}

/* readout strip */
.readout{background:#0a0b0d;border-bottom:1px solid var(--line)}
.readout-inner{
  display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;
  padding:9px 20px;font-family:var(--mono);font-size:12px;color:var(--muted);
}
.readout b{color:var(--accent-2);font-weight:400}
.readout .sep{color:var(--dim)}
.readout .src{margin-left:auto;color:var(--dim)}
.readout a{color:var(--muted)}

main{padding:24px 0 40px}

/* panels */
.panel{
  background:var(--panel);
  border:1px solid var(--line);
  margin-bottom:20px;
  position:relative;
}
.panel::before{ /* corner notch accent */
  content:"";position:absolute;top:-1px;left:-1px;width:14px;height:14px;
  border-top:2px solid var(--accent);border-left:2px solid var(--accent);
}
.panel-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:11px 16px;border-bottom:1px solid var(--line);background:#101216;
}
.panel-title{font-family:var(--mono);letter-spacing:.12em;color:var(--accent);font-size:13px}
.panel-sub{font-family:var(--mono);font-size:12px;color:var(--muted)}
.panel-body{padding:16px}
.panel-body.no-pad{padding:0}

/* add form */
.add-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:5px}
.field.grow{flex:1 1 320px;position:relative}
.field.qty{width:150px}
.field label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted)}
input,textarea{
  font-family:var(--mono);font-size:15px;color:var(--text);
  background:#0a0b0d;border:1px solid var(--line-2);padding:10px 12px;width:100%;
  border-radius:0;
}
input::placeholder,textarea::placeholder{color:var(--dim)}
input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}

/* autocomplete dropdown */
.ac-menu{
  position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:30;
  background:#0a0b0d;border:1px solid var(--accent);
  max-height:288px;overflow-y:auto;
  box-shadow:0 12px 30px rgba(0,0,0,.55);
}
.ac-item{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:8px 12px;cursor:pointer;font-family:var(--mono);font-size:14px;
  border-bottom:1px solid var(--line);
}
.ac-item:last-child{border-bottom:none}
.ac-item .ac-name{color:var(--text)}
.ac-item .ac-cat{font-size:10px;letter-spacing:.08em;color:var(--dim);text-transform:uppercase}
.ac-item.active,.ac-item:hover{background:rgba(244,194,13,.14)}
.ac-item.active .ac-name{color:#fff}

/* buttons */
.btn{
  font-family:var(--head);font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  font-size:14px;color:var(--text);background:#1f2329;border:1px solid var(--line-2);
  padding:10px 18px;cursor:pointer;border-radius:0;transition:.12s;white-space:nowrap;
}
.btn:hover{border-color:var(--accent);color:#fff}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--line)}
.btn:disabled:hover{color:var(--text)}
.btn-primary{
  background:var(--accent);color:#0c0d0f;border-color:var(--accent);
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.25);
}
.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:#0c0d0f}
.btn-primary:disabled{background:#5a5226;border-color:#5a5226;color:#0c0d0f}
.btn-ghost{background:transparent}
.btn-lg{padding:14px 28px;font-size:16px}

/* paste import */
.paste{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}
.paste summary{
  font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--accent-2);
  cursor:pointer;list-style:none;user-select:none;
}
.paste summary::before{content:"▸ ";color:var(--accent)}
.paste[open] summary::before{content:"▾ "}
.paste .hint{font-size:13px;color:var(--muted);font-family:var(--head);margin:10px 0}
.paste .hint code{font-family:var(--mono);background:#0a0b0d;padding:1px 5px;border:1px solid var(--line);color:var(--text)}
.paste textarea{margin-top:4px;resize:vertical}
.paste-actions{display:flex;align-items:center;gap:14px;margin-top:10px}
.paste-status{font-family:var(--mono);font-size:12px;color:var(--muted)}

/* table */
.table-scroll{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:14px}
.data-table th{
  text-align:left;font-weight:400;font-size:11px;letter-spacing:.1em;color:var(--muted);
  padding:10px 14px;border-bottom:1px solid var(--line-2);background:#101216;white-space:nowrap;
}
.data-table th.sortable{cursor:pointer;user-select:none}
.data-table th.sortable:hover{color:var(--text)}
.data-table th.sorted{color:var(--accent)}
.data-table th .sort-ind{color:var(--accent);font-size:10px}
.data-table td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.data-table tbody tr:nth-child(even){background:rgba(255,255,255,.015)}
.data-table tbody tr:hover{background:rgba(244,194,13,.07)}
.num{text-align:right}
.c-ore{min-width:200px}
.ore-name{color:var(--text)}
.ore-cat{font-size:10px;letter-spacing:.08em;color:var(--dim);margin-left:8px}
.cell-dim{color:var(--dim)}
.basis-pill{
  font-size:11px;letter-spacing:.06em;padding:2px 7px;border:1px solid var(--line-2);
  text-transform:uppercase;color:var(--muted);
}
.basis-pill.comp{color:var(--accent-2);border-color:var(--accent-dk)}
.basis-pill.uncomp{color:var(--good);border-color:#4a6a2f}
.val-cell{color:#fff}
.qty-edit{
  width:120px;font-size:14px;padding:5px 8px;text-align:right;
  background:#0a0b0d;border:1px solid var(--line);
}
.row-remove{
  background:transparent;border:1px solid var(--line-2);color:var(--muted);
  width:26px;height:26px;line-height:1;cursor:pointer;font-family:var(--mono);
}
.row-remove:hover{border-color:var(--bad);color:var(--bad)}
.col-appr{display:none}
.data-table.appraised .col-appr{display:table-cell}
.row-unavailable td{color:var(--bad)}
.note-unavail{color:var(--bad);font-size:11px}

.empty{padding:30px 16px;text-align:center;font-family:var(--mono);font-size:13px;color:var(--dim);letter-spacing:.06em}

/* action bar */
.actionbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.actionbar .spacer{flex:1}
.totals{display:flex;gap:24px;align-items:stretch}
.total-block{display:flex;flex-direction:column;gap:3px;text-align:right}
.total-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--muted)}
.total-val{font-family:var(--mono);font-size:18px;color:var(--text)}
.total-isk .total-val{font-size:24px;color:var(--accent-2);font-weight:400}
.total-isk{border-left:2px solid var(--accent);padding-left:20px}

/* result actions */
.result-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding-top:14px;border-top:1px solid var(--line)}
.action-status{font-family:var(--mono);font-size:12px;color:var(--good)}
.priced-at{font-family:var(--mono);font-size:11px;color:var(--dim);margin-left:auto}

/* footer */
.site-footer{margin-top:auto;border-top:1px solid var(--line)}
.footer-inner{display:flex;flex-direction:column;gap:6px;padding:18px 20px 28px;
  font-family:var(--mono);font-size:12px;color:var(--muted)}
.footer-inner b{color:var(--accent)}
.footer-inner .disc{color:var(--dim);font-size:11px}

/* buyback slider */
.buyback{display:flex;align-items:center;gap:10px}
.buyback label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.buyback input[type=range]{
  width:130px;accent-color:var(--accent);cursor:pointer;
  background:transparent;padding:0;border:none;box-shadow:none;
}
.buyback input[type=range]:focus{outline:none;box-shadow:none}
.buyback output{
  font-family:var(--mono);font-size:15px;color:var(--accent-2);
  min-width:46px;text-align:right;
}
.total-label .sub{color:var(--muted);margin-left:2px}

/* alert flag + tooltip */
.alert-flag{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;margin-left:9px;vertical-align:middle;
  background:var(--accent);color:#0c0d0f;font-family:var(--head);font-weight:700;
  font-size:13px;line-height:1;border-radius:2px;cursor:help;
  box-shadow:0 0 0 1px rgba(0,0,0,.4);
}
.alert-flag:hover,.alert-flag:focus{background:var(--accent-2);outline:none}
.alert-tip{
  position:absolute;z-index:60;max-width:330px;
  background:#0a0b0d;border:1px solid var(--accent);
  padding:9px 12px;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--text);
  box-shadow:0 10px 30px rgba(0,0,0,.6);pointer-events:none;
}
.alert-tip .tip-line{padding:3px 0}
.alert-tip .tip-line + .tip-line{border-top:1px solid var(--line);margin-top:3px}

/* toast */
.toast{
  position:fixed;left:50%;bottom:28px;
  transform:translateX(-50%) translateY(40px);
  background:#1b1e23;border:1px solid var(--accent);color:var(--text);
  font-family:var(--mono);font-size:13px;padding:11px 18px;
  opacity:0;pointer-events:none;transition:.22s;z-index:50;
  box-shadow:0 8px 30px rgba(0,0,0,.5);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.hidden{display:none !important}

/* loading state */
.btn-loading{position:relative;color:transparent !important}
.btn-loading::after{
  content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;
  border:2px solid rgba(12,13,15,.4);border-top-color:#0c0d0f;border-radius:50%;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:680px){
  .title{font-size:21px}
  .header-meta{display:none}
  .total-isk .total-val{font-size:20px}
  .actionbar .spacer{display:none}
  .totals{width:100%;justify-content:space-between}
}
