:root{--ff-purple: #5a1a8c;--ff-purple-d: #3d0f6b;--ff-purple-l: #7b2fc2;--ff-bg: #e8e7e3;--ff-dark: #111111;--ff-mid: #444444;--ff-light: #f2f1ed;--ff-border: #d0cfc9;--ff-white: #ffffff;--ff-green: #1a7a4a;--ff-orange: #c45a00;--ff-red: #c02020}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,sans-serif;background:var(--ff-bg);color:var(--ff-dark);font-size:14px}.heading-xl{font-weight:800;font-size:30px;letter-spacing:-.5px;line-height:1.1}.heading-lg{font-weight:700;font-size:20px;letter-spacing:-.2px}.heading-sm{font-weight:600;font-size:13px;color:var(--ff-mid)}.label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ff-mid)}.mono{font-family:DM Mono,monospace}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 22px;border-radius:999px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .15s;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--ff-dark);color:var(--ff-white)}.btn-primary:hover{background:var(--ff-purple)}.btn-purple{background:var(--ff-purple);color:var(--ff-white)}.btn-purple:hover{background:var(--ff-purple-d)}.btn-outline{background:transparent;color:var(--ff-dark);border:2px solid var(--ff-dark)}.btn-outline:hover{background:var(--ff-dark);color:var(--ff-white)}.btn-ghost{background:transparent;color:var(--ff-mid);border:1px solid var(--ff-border)}.btn-ghost:hover{background:var(--ff-white);border-color:var(--ff-mid)}.btn-danger{background:transparent;color:var(--ff-red);border:1px solid #e8a0a0}.btn-danger:hover{background:#fff0f0}.btn-sm{padding:6px 14px;font-size:12px}.page-wrap{max-width:1200px;margin:0 auto;padding:32px 24px 60px}.layout-split{display:grid;grid-template-columns:240px 1fr;gap:24px}@media(max-width:700px){.layout-split{grid-template-columns:1fr}}.topbar{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;padding-bottom:20px;border-bottom:2px solid var(--ff-dark);flex-wrap:wrap;gap:14px}.topbar-sub{font-size:13px;color:var(--ff-mid);margin-top:4px}.card{background:var(--ff-white);border:1px solid var(--ff-border);padding:24px;margin-bottom:20px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--ff-border)}.card-title{font-size:15px;font-weight:700}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:3px;margin-bottom:24px}.stat-card{background:var(--ff-white);border:1px solid var(--ff-border);padding:20px 18px}.stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ff-mid);margin-bottom:8px}.stat-value{font-size:30px;font-weight:800;line-height:1}.stat-sub{font-size:11px;color:var(--ff-mid);margin-top:5px}.progress-bar-bg{background:var(--ff-bg);height:6px}.progress-bar-fill{height:100%;transition:width .3s}.progress-green{background:var(--ff-green)}.progress-yellow{background:var(--ff-orange)}.progress-red{background:var(--ff-red)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--ff-mid);border-bottom:2px solid var(--ff-dark);background:var(--ff-bg)}td{padding:12px;border-bottom:1px solid var(--ff-border);vertical-align:middle}tr:hover td{background:var(--ff-light)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:14px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:12px;font-weight:600;color:var(--ff-mid)}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1.5px solid var(--ff-border);font-size:14px;color:var(--ff-dark);background:var(--ff-bg);font-family:DM Sans,sans-serif;border-radius:0;transition:border-color .12s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--ff-purple);background:var(--ff-white)}.span2{grid-column:span 2}.badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;border-radius:4px}.badge-pending{background:#fff3cc;color:#8a5800;border:1px solid #e8c44a}.badge-approved{background:#d6f5e5;color:#0f5c32;border:1px solid #5cc98e}.badge-review{background:#ffe0e0;color:#8a1a1a;border:1px solid #e87a7a}.badge-archived{background:#eee;color:#666;border:1px solid #ccc}.tabs{display:flex;border-bottom:2px solid var(--ff-dark);margin-bottom:24px}.tab{padding:10px 20px;font-size:14px;font-weight:500;color:var(--ff-mid);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .12s;text-decoration:none}.tab:hover{color:var(--ff-dark)}.tab.active{color:var(--ff-purple);border-bottom-color:var(--ff-purple)}.upload-zone{border:2px dashed var(--ff-border);padding:36px;text-align:center;cursor:pointer;background:var(--ff-bg);transition:all .15s}.upload-zone:hover{border-color:var(--ff-purple);background:#f5f0ff}.alert{padding:12px 16px;font-size:13px;margin-bottom:18px;display:flex;gap:10px;align-items:flex-start;border-left:4px solid}.alert-info{background:#f0f2ff;border-color:var(--ff-purple);color:#2a1a5a}.alert-success{background:#f0fdf4;border-color:var(--ff-green);color:#0f4a28}.alert-warn{background:#fffbeb;border-color:#e8c44a;color:#7a4800}.text-center{text-align:center}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.gap-2{gap:8px}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}
