/* Sheetfold — shared styles. All assets are self-hosted: no third-party requests. */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/bricolage-grotesque-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/bricolage-grotesque-latin-800-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2")}

:root{
  --bg:#EEF0EC; --surface:#FFFFFF; --ink:#1E2A33; --muted:#5E6B73;
  --line:#D5DAD4; --manila:#E3B94E; --manila-ink:#7A560C; --manila-soft:#F6E7BD;
  --danger:#B3261E; --ok:#2E6B3F; --sheet-shadow:0 1px 0 #cfd4ce, 0 6px 14px -8px rgba(30,42,51,.35);
  --display:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;
  --text:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light dark;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#161C21; --surface:#212A31; --ink:#E8ECEA; --muted:#9AA6AD;
    --line:#34404A; --manila-ink:#F0CD74; --manila-soft:#3A3120;
    --danger:#F2867E; --ok:#8FD1A0; --sheet-shadow:0 6px 14px -8px rgba(0,0,0,.7);
  }
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--text);-webkit-font-smoothing:antialiased;
  padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}
a{color:inherit;text-decoration-color:var(--manila);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{text-decoration-color:currentColor}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:8px;z-index:9}
.skip:focus{left:8px}
.wrap{max-width:960px;margin:0 auto;padding:28px 20px 40px}
.site-head{display:flex;align-items:center;gap:12px;margin-bottom:36px}
.site-head a{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo{width:34px;height:34px;flex:none}
.logo .back{fill:var(--surface);stroke:var(--ink)}
.logo .front{fill:var(--manila);stroke:var(--ink)}
.brand{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em}
h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,7vw,58px);line-height:1.02;letter-spacing:-.035em;margin:0 0 14px;max-width:15ch}
h2{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.02em;margin:36px 0 8px}
.lede{color:var(--muted);max-width:52ch;margin:0 0 32px;font-size:17px}

/* Tabs */
.tabs{display:inline-flex;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:18px;gap:4px;max-width:100%}
.tab{appearance:none;border:0;background:transparent;color:var(--muted);font:600 15px var(--text);padding:9px 16px;border-radius:9px;cursor:pointer}
.tab[aria-selected="true"]{background:var(--ink);color:var(--bg)}
:focus-visible{outline:3px solid var(--manila);outline-offset:2px}
label.drop:focus-within{outline:3px solid var(--manila);outline-offset:2px}

/* Panels */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px}
.panel[hidden]{display:none}
label.drop{position:relative;display:block;border:2px dashed var(--line);border-radius:14px;padding:34px 18px;text-align:center;cursor:pointer;transition:background .15s,border-color .15s}
label.drop.over{border-color:var(--manila);background:var(--manila-soft)}
label.drop input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.drop strong{display:block;font-family:var(--display);font-size:21px;font-weight:700;margin-bottom:4px}
.drop span{color:var(--muted);font-size:14px}

/* Sheets */
.sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:18px;margin:22px 0 4px;padding:0;list-style:none}
.sheet{position:relative;background:#fff;border-radius:3px;box-shadow:var(--sheet-shadow);aspect-ratio:1/1.414;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:grab;transition:transform .15s}
.sheet.dragging{opacity:.4}
.sheet.target{transform:translateY(-4px);box-shadow:0 0 0 3px var(--manila),var(--sheet-shadow)}
.sheet img{max-width:86%;max-height:86%;object-fit:contain;pointer-events:none;image-orientation:from-image}
.sheet .doc{font:600 13px var(--text);color:#1E2A33;padding:12px;text-align:center;word-break:break-word}
.sheet .doc b{display:block;font:800 26px var(--display);color:#7A560C;margin-bottom:6px}
.num{position:absolute;top:6px;left:6px;background:var(--manila);color:#2A1E04;font:700 12px var(--text);min-width:22px;height:22px;border-radius:11px;display:grid;place-items:center;padding:0 6px}
.ctrls{position:absolute;bottom:6px;right:6px;display:flex;gap:4px}
.ctrls button{width:30px;height:30px;border-radius:8px;border:0;background:rgba(30,42,51,.85);color:#fff;font-size:13px;cursor:pointer;display:grid;place-items:center}
.ctrls button.rm{background:rgba(179,38,30,.92)}
.name{font-size:12px;color:var(--muted);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Options + actions */
.options{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0}
.opt{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--muted)}
.opt.grow{flex:1 1 260px}
select,input[type="text"]{font:500 15px var(--text);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 12px;min-width:150px;width:100%}
.hint{font-weight:400;font-size:12px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.chip{appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink);font:600 13px var(--text);padding:5px 10px;border-radius:999px;cursor:pointer}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.actions.spaced{margin-top:22px}
.go{appearance:none;border:0;background:var(--manila);color:#2A1E04;font:700 16px var(--text);padding:14px 22px;border-radius:12px;cursor:pointer}
.go:disabled{opacity:.45;cursor:not-allowed}
.ghost{appearance:none;background:transparent;border:1px solid var(--line);color:var(--ink);font:600 15px var(--text);padding:12px 16px;border-radius:12px;cursor:pointer}
.ghost[hidden]{display:none}
.status{font-size:14px;color:var(--muted)}
.status.err{color:var(--danger)}
.status.ok{color:var(--ok)}
.empty{color:var(--muted);font-size:14px;margin:18px 0 0}
.single{display:flex;align-items:center;gap:14px;margin-top:18px}
.single .sheet{width:84px;flex:none;cursor:default}
.single .meta{font-size:14px;color:var(--muted)}
.single .meta strong{display:block;color:var(--ink);font-size:15px;word-break:break-all}

/* How it works */
.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:44px 0 0;padding:0;list-style:none}
.how li{border-top:2px solid var(--line);padding-top:12px;color:var(--muted);font-size:15px}
.how strong{display:block;color:var(--ink);font-family:var(--display);font-size:18px;margin-bottom:4px}

/* Prose pages */
.prose{max-width:68ch}
.prose p,.prose li{color:var(--ink)}
.prose .updated{color:var(--muted);font-size:14px}
.prose ul{padding-left:1.2em}

/* Footer */
.site-foot{max-width:960px;margin:0 auto;padding:24px 20px 48px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 22px;color:var(--muted);font-size:14px}
.site-foot .grow{flex:1 1 auto}
.noscript{background:var(--manila-soft);border-radius:12px;padding:14px 16px;margin-bottom:18px}

@media (max-width:520px){.panel{padding:16px}.sheets{grid-template-columns:repeat(2,1fr)}.tab{padding:9px 12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
a.go{display:inline-block;text-decoration:none}
