:root{--oat: #FFFAF3;--deep-purple: #361564;--lavender: #8133DF;--lime: #CBFE50;--white: #FFFFFF;--mint: #A3FFE9;--rose: #FFC9FA;--seafoam: #59FFD7;--pink: #FF83E7;--tangerine: #FFC682;--light-10: #F2EBFC;--light-20: #E6D6F9;--light-40: #D9C2F5;--light-60: #CDADF2;--light-80: #B385EC;--light-100: #9A5CE5;--dark-10: #6729B2;--dark-20: #4D1F86;--dark-60: #270F43;--dark-80: #1A0A2D;--dark-100: #0D0516;--text-3xs: 8px;--text-2xs: 10px;--text-xs: 12px;--text-sm: 14px;--text-base:16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--text-6xl: 60px;--font-heading: "Bayard", "Bebas Neue", Arial, sans-serif;--font-body: "Archivo", Arial, Helvetica, sans-serif;--bg: var(--light-20);--surface: var(--oat);--inset: var(--light-10);--border: var(--light-40);--text: var(--deep-purple);--muted: var(--deep-purple);--brand: var(--deep-purple);--accent: var(--lavender);--ok: var(--deep-purple);--ok-bg: var(--mint);--warn: var(--deep-purple);--warn-bg: var(--tangerine);--danger: var(--deep-purple);--danger-bg: var(--rose);--radius: 12px;--radius-inner: 8px;--pill: 999px}*{box-sizing:border-box}html{background:var(--bg);color:var(--text)}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--deep-purple);text-underline-offset:2px}a:hover{color:var(--lavender)}h1,h2,h3,h4{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.01em;font-weight:400;line-height:1.1}.eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.035em;color:var(--deep-purple)}.app-header{background:var(--deep-purple);padding:0 24px;position:sticky;top:0;z-index:10}.app-header-inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:24px;min-height:68px;flex-wrap:wrap;padding:10px 0}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand img{height:32px;width:auto;display:block}.brand .brand-name{font-family:var(--font-heading);text-transform:uppercase;font-size:var(--text-xl);line-height:1.05;color:var(--oat)}.brand small{display:block;font-family:var(--font-body);font-size:var(--text-xs);text-transform:none;letter-spacing:0;color:var(--oat)}nav.tabs{display:flex;gap:6px;flex:1;flex-wrap:wrap}nav.tabs button{background:none;border:0;padding:8px 16px;border-radius:var(--pill);cursor:pointer;color:var(--oat);font-size:var(--text-sm);font-weight:600;font-family:var(--font-body)}nav.tabs button:hover{background:var(--dark-20)}nav.tabs button.active{background:var(--lime);color:var(--deep-purple)}nav.tabs button:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.user-chip{display:flex;align-items:center;gap:12px;font-size:var(--text-sm);color:var(--oat)}.user-chip .who{text-align:right;line-height:1.3}.user-chip .who small{display:block;font-size:var(--text-xs);color:var(--oat)}main{max-width:1240px;margin:0 auto;padding:24px}main nav.tabs button{color:var(--deep-purple)}main nav.tabs button:hover{background:var(--light-40)}main nav.tabs button.active{background:var(--deep-purple);color:var(--lime)}main nav.tabs button:focus-visible{outline:2px solid var(--lavender)}.card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}.card>h2{margin:0 0 6px;font-size:var(--text-2xl);color:var(--deep-purple)}.card>.sub{color:var(--text);font-size:var(--text-sm);margin:0 0 18px;max-width:70ch}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-inner);overflow:hidden}.stat{background:var(--surface);padding:16px}.stat .label{font-family:var(--font-body);color:var(--deep-purple);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.035em}.stat .value{font-family:var(--font-heading);font-size:var(--text-3xl);line-height:1.1;margin-top:6px;color:var(--deep-purple)}.stat .value.neg{color:var(--lavender)}.stat .hint{color:var(--text);font-size:var(--text-xs);margin-top:4px}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.035em;color:var(--deep-purple);font-weight:700;background:var(--inset);border-bottom:2px solid var(--border)}th:first-child{border-top-left-radius:var(--radius-inner)}th:last-child{border-top-right-radius:var(--radius-inner)}tbody tr:hover{background:var(--inset)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.cell-sub{font-size:var(--text-xs)}.badge{display:inline-block;padding:3px 12px;border-radius:var(--pill);font-size:var(--text-xs);font-weight:700;white-space:nowrap;font-family:var(--font-body);background:var(--light-40);color:var(--deep-purple)}.badge.pending{background:var(--tangerine);color:var(--deep-purple)}.badge.approved{background:var(--mint);color:var(--deep-purple)}.badge.declined{background:var(--pink);color:var(--deep-purple)}.badge.cancelled{background:var(--light-40);color:var(--deep-purple)}.badge.exception{background:var(--deep-purple);color:var(--lime)}label{display:block;font-size:var(--text-sm);font-weight:600;margin-bottom:6px;color:var(--deep-purple)}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-inner);font-size:var(--text-base);font-family:var(--font-body);background:var(--inset);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--lavender);outline-offset:1px;border-color:var(--lavender)}textarea{min-height:80px;resize:vertical}.field{margin-bottom:16px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:150px}button.btn,a.btn{display:inline-block;background:var(--deep-purple);color:var(--lime);border:2px solid var(--deep-purple);padding:9px 22px;border-radius:var(--pill);font-size:var(--text-sm);font-weight:700;cursor:pointer;font-family:var(--font-body);text-decoration:none;line-height:1.5}button.btn:hover:not(:disabled),a.btn:hover{background:var(--dark-20);border-color:var(--dark-20);color:var(--lime)}button.btn:focus-visible,a.btn:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}button.btn:disabled{background:var(--light-80);border-color:var(--light-80);color:var(--deep-purple);cursor:not-allowed}button.btn.secondary,a.btn.secondary{background:var(--oat);color:var(--deep-purple);border-color:var(--deep-purple)}button.btn.secondary:hover:not(:disabled),a.btn.secondary:hover{background:var(--light-20);color:var(--deep-purple)}button.btn.ok{background:var(--deep-purple);color:var(--lime);border-color:var(--deep-purple)}button.btn.danger{background:var(--deep-purple);color:var(--rose);border-color:var(--deep-purple)}button.btn.danger:hover:not(:disabled){color:var(--rose)}button.btn.small,a.btn.small{padding:5px 14px;font-size:var(--text-xs)}.app-header button.btn.secondary{background:var(--lime);color:var(--deep-purple);border-color:var(--lime)}.app-header button.btn.secondary:hover:not(:disabled){background:var(--oat);border-color:var(--oat)}.notice{padding:14px 16px;border-radius:var(--radius-inner);font-size:var(--text-sm);margin-bottom:16px;color:var(--deep-purple);background:var(--light-20)}.notice.error{background:var(--rose)}.notice.warn{background:var(--tangerine)}.notice.ok{background:var(--mint)}.notice.info{background:var(--light-20)}.notice strong{display:block;margin-bottom:4px;font-weight:700}.muted{color:var(--muted)}.small{font-size:var(--text-xs)}.empty{padding:32px;text-align:center;font-size:var(--text-sm)}.spinner{padding:40px;text-align:center;font-size:var(--text-sm)}.signin-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--deep-purple)}.signin-inner{width:100%;max-width:420px}.signin-logo{display:block;width:240px;height:auto;margin:0 auto 32px}.signin-card{background:var(--oat);border:2px solid var(--light-40);border-radius:var(--radius);padding:32px;width:100%}.signin-card h1{font-size:var(--text-4xl);margin:0 0 8px;color:var(--deep-purple)}.signin-card p.sub{font-size:var(--text-sm);margin:0 0 24px}.divider{display:flex;align-items:center;gap:12px;font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.035em;font-size:var(--text-xs);margin:24px 0;color:var(--deep-purple)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--light-40)}details.raw{margin-top:12px}details.raw summary{cursor:pointer;font-size:var(--text-xs)}details.raw pre{background:var(--inset);padding:12px;border-radius:var(--radius-inner);overflow:auto;font-size:var(--text-xs)}
