:root{--ink:#0b0d0f;--ink-2:#12161a;--sand:#b9ac8f;--gold:#c9a34e;--gold-bright:#e4c374;--paper:#f4f1ea;--line:rgba(244,241,234,.12);--ok:#4caf7d;--warn:#e0a63c;--danger:#d9634d}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:IBM Plex Sans,sans-serif;line-height:1.5}h1,h2,h3{font-family:Fraunces,serif;font-weight:600;margin:0}.mono{font-family:IBM Plex Mono,monospace;letter-spacing:.06em;text-transform:uppercase}a{color:inherit}button{font-family:inherit;cursor:pointer}.input,.textarea,.select{width:100%;background:transparent;border:1px solid var(--line);border-radius:4px;padding:11px 13px;color:var(--paper);font-family:IBM Plex Sans,sans-serif;font-size:14px}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--gold)}.label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sand);margin-bottom:6px;display:block}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--gold);border-radius:4px;padding:10px 20px;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright);background:transparent;transition:all .2s}.btn:hover,.btn-solid{background:var(--gold);color:var(--ink)}.btn-solid:hover{background:var(--gold-bright)}.btn-ghost{border-color:var(--line);color:var(--sand)}.btn-ghost:hover{background:var(--ink-2);color:var(--paper)}.card{background:var(--ink-2);border:1px solid var(--line);border-radius:8px;padding:24px}.pill{display:inline-block;padding:4px 12px;border-radius:20px;font-size:11px;font-family:IBM Plex Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.pill-active{background:#c9a34e26;color:var(--gold-bright)}.pill-done{background:#4caf7d26;color:var(--ok)}.pill-pending{background:#e0a63c26;color:var(--warn)}.pill-overdue{background:#d9634d26;color:var(--danger)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--line);background:#0b0d0fe6;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-family:Fraunces,serif;font-size:18px}.brand .sub{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--gold);letter-spacing:.15em;display:block}.main{flex:1;max-width:1100px;margin:0 auto;padding:40px 24px;width:100%}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px}.stage-track{display:flex;flex-wrap:wrap;gap:0;margin:24px 0}.stage{flex:1;min-width:110px;text-align:center;position:relative;padding-bottom:14px}.stage .dot{width:14px;height:14px;border-radius:50%;margin:0 auto 8px;background:var(--line);border:2px solid var(--line)}.stage.done .dot{background:var(--gold);border-color:var(--gold)}.stage.current .dot{background:var(--ink);border-color:var(--gold);box-shadow:0 0 0 4px #c9a34e33}.stage .label-txt{font-size:11px;color:var(--sand)}.stage.done .label-txt,.stage.current .label-txt{color:var(--paper)}.stage:after{content:"";position:absolute;top:6px;left:50%;width:100%;height:2px;background:var(--line);z-index:-1}.stage:last-child:after{display:none}.stage.done:after{background:var(--gold)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);font-size:14px}th{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sand)}.empty{text-align:center;padding:40px 20px;color:var(--sand)}.error-msg{color:var(--danger);font-size:13px;margin-top:8px}.sidebar-nav{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap}.sidebar-nav button{background:transparent;border:1px solid var(--line);color:var(--sand);padding:8px 16px;border-radius:4px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.sidebar-nav button.active{border-color:var(--gold);color:var(--gold-bright);background:#c9a34e14}
