:root{--paper: #EAEAE2;--paper-raised: #F5F4EE;--surface: #FFFFFF;--ink: #1C2B33;--ink-soft: #4A5A61;--line: #D4D0C4;--line-strong: #B7B2A2;--stamp-teal: #2B6E62;--stamp-teal-soft: #E3ECE9;--stamp-amber: #B9812E;--stamp-amber-soft: #F3E8D6;--stamp-brick: #A23F2E;--stamp-brick-soft: #F2E1DC;--focus-ring: #2B6E62;--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--radius-sm: 3px;--radius-md: 6px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0;color:var(--ink)}h1{font-size:1.9rem;font-weight:500}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 .75rem}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--stamp-teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}button{cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius-sm);padding:.5rem .9rem;font-weight:500;transition:background-color .12s ease,border-color .12s ease}button:hover{background:var(--paper-raised)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--ink);border-color:var(--ink);color:var(--paper-raised)}button.primary:hover{background:#29383f}button.stamp-teal{background:var(--stamp-teal);border-color:var(--stamp-teal);color:#fff}button.stamp-teal:hover{background:#235a50}button.stamp-brick{background:transparent;border-color:var(--stamp-brick);color:var(--stamp-brick)}button.stamp-brick:hover{background:var(--stamp-brick-soft)}button.stamp-amber{background:transparent;border-color:var(--stamp-amber);color:var(--stamp-amber)}button.stamp-amber:hover{background:var(--stamp-amber-soft)}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.5rem .65rem;background:var(--surface);width:100%}label{display:block;font-size:.82rem;font-weight:500;color:var(--ink-soft);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.03em}.field{margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:1.5rem}.hairline{border:none;border-top:1px solid var(--line);margin:1.25rem 0}.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.error-banner{background:var(--stamp-brick-soft);border:1px solid var(--stamp-brick);color:var(--stamp-brick);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1rem;font-size:.9rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--ink-soft)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.rail{background:var(--ink);color:var(--paper-raised);padding:1.5rem 1rem;display:flex;flex-direction:column}.rail-brand{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin-bottom:.15rem}.rail-sub{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#9fb0aa;margin-bottom:2rem}.rail-nav{display:flex;flex-direction:column;gap:.2rem;flex:1}.rail-link{color:#c9d3ce;padding:.55rem .7rem;border-radius:var(--radius-sm);font-size:.92rem;font-weight:500}.rail-link:hover{background:#ffffff0f;text-decoration:none;color:#fff}.rail-link.active{background:var(--stamp-teal);color:#fff}.rail-user{border-top:1px solid rgba(255,255,255,.15);padding-top:1rem;margin-top:1rem;font-size:.85rem}.rail-user-role{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#9fb0aa;display:block;margin-top:.15rem}.rail-logout{margin-top:.75rem;width:100%;background:transparent;border-color:#ffffff4d;color:var(--paper-raised)}.rail-logout:hover{background:#ffffff14}.rail-password-form{display:grid;gap:.45rem;margin-top:.65rem}.rail-password-form input{width:100%;padding:.4rem .5rem;font-size:.75rem}.rail-password-form .rail-logout{margin-top:.15rem}.rail-password-error,.rail-password-success{font-size:.7rem;line-height:1.3}.rail-password-error{color:#f3a39a}.rail-password-success{color:#9fe0c5}.main{padding:2.25rem 2.75rem;max-width:980px}.page-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.75rem;flex-wrap:wrap;gap:.75rem}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.summary-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:1.25rem}.summary-tile .count{font-family:var(--font-display);font-size:2.1rem;font-weight:500;display:block;margin-top:.2rem}.request-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:1rem;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);margin-bottom:.6rem}.request-row:hover{border-color:var(--line-strong)}.request-row-main .recipient{font-weight:600}.request-row-main .meta{font-size:.82rem;color:var(--ink-soft);margin-top:.1rem}.amount{font-family:var(--font-mono);font-size:1.05rem;font-weight:500}@media (max-width: 800px){.shell{grid-template-columns:1fr}.rail{display:none}.main{padding:1.25rem}.summary-grid,.request-row{grid-template-columns:1fr}}.stamp-row{display:flex;gap:1.1rem;flex-wrap:wrap;margin:1.5rem 0}.stamp{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:84px}.stamp-circle{width:64px;height:64px;border-radius:50%;border:2.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:1.3rem;color:var(--line-strong);background:var(--surface);transition:all .16s ease}.stamp-circle.pending{border-style:dashed}.stamp-circle.approved{border-color:var(--stamp-teal);color:var(--stamp-teal);background:var(--stamp-teal-soft);transform:rotate(-6deg)}.stamp-circle.rejected{border-color:var(--stamp-brick);color:var(--stamp-brick);background:var(--stamp-brick-soft);transform:rotate(-6deg)}.stamp-circle.waiting-info{border-color:var(--stamp-amber);color:var(--stamp-amber);background:var(--stamp-amber-soft);transform:rotate(-6deg)}.stamp-label{font-size:.74rem;text-align:center;color:var(--ink-soft);line-height:1.25}.stamp-label .who{display:block;font-weight:600;color:var(--ink);font-size:.72rem}.status-badge{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .55rem;border-radius:999px;white-space:nowrap;display:inline-block}.status-badge.neutral{background:var(--paper-raised);color:var(--ink-soft);border:1px solid var(--line)}.status-badge.progress{background:var(--stamp-amber-soft);color:var(--stamp-amber)}.status-badge.good{background:var(--stamp-teal-soft);color:var(--stamp-teal)}.status-badge.bad{background:var(--stamp-brick-soft);color:var(--stamp-brick)}
