:root{--bg:#f4f7f5;--card:#fff;--ink:#14201b;--muted:#5b6b63;--brand:#0b3d2e;--brand2:#147a5a;--danger:#a11;--ok:#0a6;--warn:#a60;--line:#d7e0db;--radius:14px;--shadow:0 6px 24px rgba(11,61,46,.08)}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--brand2);text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--brand);color:#fff;position:sticky;top:0;z-index:10}
.top a{color:#fff}.brand a{font-weight:700;font-size:1.05rem;letter-spacing:.2px}
.top nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.95rem}
.top nav a.on{text-decoration:underline;font-weight:600}.who{opacity:.85}
.wrap{max-width:820px;margin:0 auto;padding:16px 16px 72px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin:12px 0}
h1{font-size:1.35rem;margin:.2rem 0 1rem}h2{font-size:1.1rem;margin:.4rem 0 .8rem}
label{display:block;font-weight:600;margin:12px 0 6px;font-size:.92rem}
input[type=text],input[type=password],input[type=search],select,textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand2);outline-offset:1px}
.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1 1 140px}
.btn,.btn-secondary,button{appearance:none;border:0;border-radius:999px;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-secondary,button.secondary{background:#e8efeb;color:var(--brand)}.btn:disabled,button:disabled{opacity:.55;cursor:not-allowed}
.btn-danger{background:var(--danger)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.flash{padding:12px 14px;border-radius:10px;margin:10px 0;border:1px solid}.flash.ok{background:#e8f7ef;border-color:#b7e4c7}.flash.err{background:#fdecea;border-color:#f5c2c0}.flash.warn{background:#fff6e5;border-color:#ffe0a3}.flash.info{background:#eef5ff;border-color:#c9dbff}
.tabs{display:flex;gap:6px;margin:8px 0 14px;border-bottom:1px solid var(--line)}.tabs a{padding:10px 14px;border-radius:10px 10px 0 0;color:var(--muted);font-weight:600}.tabs a.on{background:var(--card);color:var(--brand);border:1px solid var(--line);border-bottom-color:#fff;margin-bottom:-1px}
.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:700;background:#e8efeb;color:var(--brand)}.badge.ok{background:#d8f3e4;color:#0a6}.badge.warn{background:#ffe9c2;color:#a60}.badge.muted{background:#eee;color:#666}.badge.danger{background:#fde2e0;color:#a11}
.load{display:block;padding:14px;border:1px solid var(--line);border-radius:12px;margin:10px 0;background:#fff;color:inherit}.load:hover{border-color:var(--brand2);text-decoration:none;box-shadow:var(--shadow)}
.load .meta{color:var(--muted);font-size:.9rem;margin-top:4px;display:flex;flex-wrap:wrap;gap:8px 14px}
.files{list-style:none;padding:0;margin:0}.files li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:.92rem}
.drop{border:2px dashed var(--line);border-radius:14px;padding:18px;text-align:center;background:#fafcfb}.drop.drag{border-color:var(--brand2);background:#eef8f3}
.thumbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:10px}
.thumbgrid img,.thumbgrid .pdf{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--muted)}
.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.mt{margin-top:14px}.stack>*+*{margin-top:10px}
.path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;background:#f0f4f2;padding:8px 10px;border-radius:8px;word-break:break-all}
@media(max-width:520px){.top{flex-direction:column;align-items:flex-start}.wrap{padding:12px 12px 80px}}
.btn-block{width:100%;min-height:52px;font-size:1.05rem;margin-top:12px}
.actions.pick{justify-content:center;margin-top:0}.actions.pick label{margin:0}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px}
.sig{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0;background:#fafcfb}.sig h3{font-size:1rem;margin:0 0 8px}
.sig-pad{display:block;width:100%;height:180px;background:#fff;border:2px dashed var(--line);border-radius:10px;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none}
.sig-thumb{display:block;max-width:260px;width:100%;background:#fff;border:1px solid var(--line);border-radius:10px}
.sig-msg:empty{display:none}.sig-msg.err{color:var(--danger);font-weight:600}.sig-msg.ok{color:var(--ok)}.sig-msg.warn{color:var(--warn);font-weight:600}
.sig.need{border-color:var(--danger);box-shadow:0 0 0 2px #fde2e0}
[hidden]{display:none!important}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.dcard{position:relative;display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);color:inherit}
.dcard:hover{border-color:var(--brand2);text-decoration:none}
.dcard .dot{position:absolute;top:10px;right:10px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#d11;color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.dstats{display:flex;flex-wrap:wrap;gap:4px 12px;margin:8px 0 4px;font-size:.85rem}
.err-text{color:var(--danger);font-weight:600;margin-top:4px}
.card.flagged{border-color:#f5c2c0;box-shadow:0 0 0 2px #fde2e0}
.siggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:10px 0}
.wrap-wide{max-width:1100px}
label.check{display:flex;gap:8px;align-items:center;font-weight:600}
input[type=number]{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.upl{list-style:none;padding:0;margin:10px 0 0}.upl li{padding:6px 0;border-bottom:1px dashed var(--line);font-size:.88rem;text-align:left}
.upl progress{width:100%;height:8px}.upl .st{float:right;font-weight:600}.upl .st.ok{color:var(--ok)}.upl .st.err{color:var(--danger)}
.stage{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0;background:#fafcfb}.stage h3{font-size:1rem;margin:0 0 8px}
.stage.need{border-color:var(--danger);box-shadow:0 0 0 2px #fde2e0}.stage-msg:empty{display:none}.stage-msg.err{color:var(--danger);font-weight:600}.stage-msg.warn{color:var(--warn);font-weight:600}

.top nav a.carship-btn{background:#f5b301;color:#1a1a1a;font-weight:800;font-size:1.1rem;padding:10px 18px;border-radius:10px;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,.25);order:99;margin-left:auto}
.top nav a.carship-btn.on{outline:3px solid #fff;text-decoration:none}
@media (max-width:600px){.top nav a.carship-btn{font-size:1.15rem;padding:12px 20px}}

.collect{margin:8px 0;padding:10px 12px;border-radius:10px;background:#fff4d6;border:2px solid #f5b301;color:#1a1a1a;font-size:1rem;line-height:1.4}
.collect .collect-main{font-weight:800;font-size:1.15rem}
.collect.none{background:#f1f3f2;border-color:#cfd6d3;font-weight:600}
