:root{--ink:#132b30;--muted:#5b7175;--line:#d7e2df;--paper:#f4f8f6;--white:#fff;--teal:#176b6a;--teal-dark:#0b5252;--amber:#a65c16;--red:#9a3d3d}.search-label{max-width:480px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{border:0;background:var(--teal);color:#fff;border-radius:9px;padding:.65rem 1rem;cursor:pointer;font-weight:650}button:hover{background:var(--teal-dark)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:#e4eeea;color:var(--teal-dark)}button.secondary:hover{background:#d6e6e0}.text-button{background:none;color:var(--teal);padding:0}.text-button:hover{background:none;text-decoration:underline}header{display:flex;justify-content:space-between;align-items:center;padding:1rem max(1.5rem,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid var(--line);gap:1rem}.brand{display:flex;align-items:center;gap:.65rem}.brand strong,.brand small{display:block;line-height:1.2}.brand small{color:var(--muted);font-size:.78rem;margin-top:.15rem}.mark{display:grid;place-items:center;background:var(--teal);color:#fff;border-radius:8px;font-size:.8rem;font-weight:800;letter-spacing:.06em;width:38px;height:38px}#account{display:flex;align-items:center;gap:.8rem;color:var(--muted);font-size:.9rem}main{max-width:1120px;margin:auto;padding:2rem 1.5rem 5rem}.hidden{display:none!important}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:var(--teal);margin:0}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-.04em;margin:.3rem 0}h2{font-size:1.25rem;letter-spacing:-.02em;margin:0 0 .8rem}.sub,.muted{color:var(--muted)}.sub{margin:0}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.25rem;box-shadow:0 2px 6px #173e2d0a}.login{max-width:410px;margin:8vh auto;padding:2rem}.login p{color:var(--muted)}form{display:grid;gap:1rem}label{display:grid;gap:.35rem;font-size:.85rem;font-weight:650}input,select,textarea{width:100%;padding:.7rem .8rem;border:1px solid #bacdc7;border-radius:8px;background:#fff;color:var(--ink);outline-color:var(--teal)}textarea{min-height:140px;resize:vertical}.group{margin:2rem 0}.group-title{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}.group-title h2{margin:0}.count{background:#e2ece8;border-radius:99px;padding:.1rem .55rem;color:var(--teal-dark);font-size:.75rem;font-weight:700}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.85rem}.project-card{display:block;text-align:left;width:100%;background:#fff;color:var(--ink);border:1px solid var(--line);padding:1.15rem;border-radius:12px;min-height:150px;font-weight:400}.project-card:hover{background:#fff;border-color:#80b4a7;box-shadow:0 3px 14px #173e2d16}.project-card strong{display:block;font-size:1.05rem}.project-card .code{color:var(--teal);font-weight:800;font-size:.78rem;letter-spacing:.07em}.project-card .meta{display:block;color:var(--muted);font-size:.83rem;margin-top:.5rem}.pill{display:inline-block;background:#e8f2ef;color:var(--teal-dark);padding:.13rem .5rem;border-radius:99px;font-size:.73rem;font-weight:700}.pill.missing{background:#fff0dc;color:var(--amber)}.detail-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin:1rem 0 2rem}.detail-head h1{margin:0}.detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:1rem}.stack{display:grid;gap:1rem}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field-value{margin:.2rem 0 0}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.tag{background:#edf3f0;border-radius:6px;padding:.25rem .5rem;font-size:.85rem}.source{border-top:1px solid var(--line);padding:.9rem 0}.source:first-of-type{border-top:0}.source-line{display:flex;justify-content:space-between;align-items:start;gap:.7rem}.source small{color:var(--muted);display:block}.source a,.links a{color:var(--teal);font-weight:650}.source-actions{margin-top:.5rem}.source-actions input{font-size:.83rem;padding:.4rem}.progress{height:7px;background:#e6eeea;border-radius:10px;overflow:hidden;margin:.5rem 0}.progress>span{display:block;height:100%;background:var(--teal);width:0}.links{display:flex;flex-wrap:wrap;gap:.8rem;margin:.8rem 0}#toast{position:fixed;bottom:1.4rem;right:1.4rem;max-width:360px;background:var(--ink);color:#fff;border-radius:9px;padding:.7rem 1rem;display:none;box-shadow:0 8px 24px #0003}#toast.show{display:block}.notice{background:#fff2de;color:#784918;border-radius:8px;padding:.7rem;margin-bottom:1rem}.form-actions{display:flex;gap:.5rem}.drop{border:1px dashed #83aca1;border-radius:8px;padding:.8rem;cursor:pointer}.drop.drag{background:#e1f1eb}.empty{color:var(--muted);padding:1rem 0}@media(max-width:740px){main{padding:1.4rem 1rem 4rem}header{padding:1rem}.detail-grid,.fields{grid-template-columns:1fr}.page-head{align-items:start}.page-head button{white-space:nowrap}.detail-head{display:block}.detail-head .links{margin-top:1rem}}

/* Screen Bytes public-site palette and panel treatment, copied locally for Projects. */
:root {
  color-scheme: dark;
  --page: #292929;
  --surface: #414141;
  --surface-raised: #4a4a4a;
  --border: #737373;
  --text: #fff;
  --muted: #d2d2d2;
  --accent: #b7d7a8;
  --accent-strong: #c7e7b8;
  --accent-text: #1e291a;
  --shadow: rgb(0 0 0 / 28%);
  --ink: var(--text);
  --paper: var(--page);
  --line: var(--border);
  --teal: var(--accent);
  --teal-dark: var(--accent-strong);
  --amber: #ffd69b;
  --red: #aa4a4d;
}
body { background: var(--page); color: var(--text); }
a { color: var(--accent); text-underline-offset: .18em; }
a:hover { color: var(--accent-strong); }
button { border: 1px solid var(--accent); background: var(--accent); color: var(--accent-text); border-radius: .45rem; }
button:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
button.secondary { background: var(--surface-raised); color: var(--accent); border-color: var(--border); }
button.secondary:hover { background: var(--surface); color: var(--accent-strong); }
button.text-button { border: 0; color: var(--accent); }
button.text-button:hover { color: var(--accent-strong); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
header { background: rgb(41 41 41 / 96%); border-bottom: 1px solid rgb(255 255 255 / 12%); }
.brand-logo { display: block; width: 40px; height: 40px; object-fit: cover; border-radius: .45rem; }
.brand { gap: .8rem; }
.brand strong { letter-spacing: -.01em; }
.readonly-banner { display: block; width: 100%; margin: 0 0 1.5rem; padding: .85rem 1.1rem; border-radius: .45rem; background: #aa4a4d; color: #fff; font-size: .92rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; box-shadow: 0 .35rem 1rem var(--shadow); }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: .75rem; box-shadow: 0 .5rem 1.5rem var(--shadow); }
input, select, textarea { background: var(--surface-raised); border: 1px solid var(--border); color: var(--text); border-radius: .45rem; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
.count { background: var(--surface-raised); border: 1px solid var(--border); color: var(--accent); }
.project-card { background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: .65rem; }
.project-card:hover { background: var(--surface-raised); border-color: var(--accent); box-shadow: 0 .4rem 1rem var(--shadow); }
.project-card .code { color: var(--accent); }
.pill { background: var(--surface-raised); border: 1px solid var(--border); color: var(--accent); }
.pill.missing { background: var(--surface-raised); color: var(--amber); }
.tag { background: var(--surface-raised); border: 1px solid var(--border); }
.source a, .links a { color: var(--accent); }
.progress { background: var(--surface-raised); }
.progress > span { background: var(--accent); }
#toast { background: var(--surface-raised); color: var(--text); border: 1px solid var(--border); box-shadow: 0 .5rem 1.5rem var(--shadow); }
.drop { border-color: var(--border); }
.drop.drag { background: var(--surface-raised); border-color: var(--accent); }
