:root{--fg:#1a1a1a;--muted:#666;--line:#d9d9d9;--bg:#fafafa;--card:#fff;--accent:#1d4ed8;--bad:#b91c1c;--good:#15803d}*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg)}main{max-width:720px;margin:0 auto;padding:24px 16px 64px}main:has(.admin){max-width:1100px}h1{font-size:1.6rem;margin:0 0 4px}h2{font-size:1.1rem;margin:24px 0 8px}.sub{color:var(--muted);margin:0 0 20px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:12px}label{display:block;font-weight:600;margin:12px 0 4px}input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}textarea{min-height:90px}.btn,button{display:inline-block;padding:10px 16px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn.secondary,button.secondary{background:#fff;color:var(--accent)}button.danger{background:var(--bad);border-color:var(--bad)}button.danger.secondary{background:#fff;color:var(--bad)}button:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;gap:8px;flex-wrap:wrap}.row>*{flex:1 1 140px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.actions>*{flex:0 0 auto}.error{color:var(--bad);font-weight:600;margin:8px 0}.note{color:var(--muted);font-size:.9rem}.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.8rem;font-weight:600;background:#eee}.badge.approved{background:#dcfce7;color:var(--good)}.badge.rejected{background:#fee2e2;color:var(--bad)}.badge.pending_sigrid,.badge.pending_vp{background:#fef9c3;color:#854d0e}table{width:100%;border-collapse:collapse;background:#fff;font-size:.92rem}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f1f1f1}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.receipt img{max-width:100%;border:1px solid var(--line);border-radius:6px}.sigpad{border:2px dashed var(--line);border-radius:8px;background:#fff;touch-action:none;width:100%;height:180px;display:block}.kv{display:grid;grid-template-columns:130px 1fr;grid-gap:4px 12px;gap:4px 12px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}.nav{display:flex;gap:16px;margin-bottom:16px}