@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--color-primary:#1e3b2f;--color-secondary:#9e5a6b;--color-accent-tint:#e2e9e2;--color-ink:#1b1815;--color-ink-secondary:#6b635a;--color-hairline:#dbd4ca;--color-surface:#fff;--color-surface-raised:#efeae3;--color-canvas:#f7f4f0;--color-track:#e4ddd3;--color-success:#2e7458;--color-warning:#a97a24;--color-error:#b04a38;--priority-critical:#b04a38;--priority-high:#a97a24;--priority-medium:#8f6d26;--priority-low:#6b635a;--chart-1:#1e3b2f;--chart-2:#9e5a6b;--chart-3:#ad8a32;--chart-4:#cdb4bc;--chart-5:#26221d;--fade-forest-floor:linear-gradient(135deg, #12241c 0%, #1e3b2f 100%);--fade-kiln:linear-gradient(135deg, #8a5a44 0%, #b07862 100%);--fade-porcelain:linear-gradient(180deg, #fff 0%, #eae4d9 100%);--fade-glaze:linear-gradient(135deg, #1e3b2f 0%, #35592f 100%);--font-ui:"Source Sans 3", "Segoe UI", "Helvetica Neue", sans-serif;--fs-display:32px;--lh-display:38px;--fs-h1:24px;--lh-h1:30px;--fs-h2:18px;--lh-h2:26px;--fs-h3:15px;--lh-h3:22px;--fs-body:15px;--lh-body:24px;--fs-small:13px;--lh-small:19px;--fs-label:12px;--lh-label:17px;--fs-data:34px;--lh-data:38px;--fw-regular:400;--fw-semibold:600;--radius:2px;--radius-control:4px;--radius-button:6px;--radius-table:8px;--radius-card:12px;--radius-pill:999px;--hairline-width:1px;--icon-inline:16px;--icon-toolbar:20px;--icon-nav:24px}:root[data-theme=dark]{--color-primary:#8db4a0;--color-secondary:#cb8fa0;--color-accent-tint:#1e2e26;--color-ink:#ebe6df;--color-ink-secondary:#c5beb5;--color-hairline:#332f29;--color-surface:#1a1917;--color-surface-raised:#232019;--color-canvas:#121110;--color-track:#2a2723;--priority-critical:#cf8273;--priority-high:#c9a159;--priority-medium:#c9a967;--priority-low:#a29a8f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui,"Inter", -apple-system, sans-serif);background:var(--fade-porcelain);color:var(--color-ink);background-attachment:fixed;flex-direction:column;min-height:100vh;display:flex}#root{flex-direction:column;flex:1;display:flex}.auth-container{background:0 0;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.auth-card{background:var(--color-surface);border-radius:var(--radius-card);border:1px solid var(--color-hairline);width:100%;max-width:420px;padding:2.5rem}.auth-card h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--fw-semibold);color:var(--color-ink);margin-bottom:.5rem}.auth-card p{color:var(--color-ink-secondary);font-size:var(--fs-body);line-height:var(--lh-body);margin-bottom:2rem}.input-group{flex-direction:column;margin-bottom:1.25rem;display:flex}.input-group label{font-size:var(--fs-label);line-height:var(--lh-label);font-weight:var(--fw-semibold);color:var(--color-ink-secondary);margin-bottom:.5rem}.input-group input{background:var(--color-surface);border:1px solid var(--color-hairline);color:var(--color-ink);border-radius:var(--radius-button);font-size:var(--fs-body);outline:none;padding:.75rem 1rem;transition:border-color .15s,box-shadow .15s}.input-group input::placeholder{color:var(--color-ink-secondary)}.input-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-accent-tint)}.btn-primary{border-radius:var(--radius-button);border:1px solid var(--color-primary);background:var(--color-primary);width:100%;color:var(--color-surface);font-weight:var(--fw-semibold);font-size:var(--fs-body);cursor:pointer;margin-top:.5rem;padding:.85rem;transition:opacity .15s,transform .1s}.btn-primary:hover{opacity:.9}.btn-primary:active{transform:scale(.98)}.dashboard-container{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:1.5rem 2rem}.header{border-bottom:1px solid var(--color-hairline);justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem 0;display:flex}.header h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--fw-semibold);color:var(--color-ink);white-space:nowrap}.tabs{background:var(--color-track);border-radius:var(--radius-button);align-items:center;gap:4px;padding:4px;display:flex}.tab{cursor:pointer;border-radius:var(--radius-control);color:var(--color-ink-secondary);font-weight:var(--fw-regular);font-size:var(--fs-body);-webkit-user-select:none;user-select:none;border:1px solid #0000;padding:7px 18px}.tab:hover{color:var(--color-ink)}.active-tab{background:var(--color-surface);font-weight:var(--fw-semibold);border:1px solid var(--color-hairline);color:var(--color-ink)!important}.logout-btn{color:var(--color-ink-secondary);border:1px solid var(--color-hairline);border-radius:var(--radius-button);cursor:pointer;font-weight:var(--fw-regular);font-size:var(--fs-body);white-space:nowrap;background:0 0;padding:.5rem 1rem;transition:all .15s}.logout-btn:hover{color:var(--color-ink);border-color:var(--color-ink-secondary)}.table-container{background:var(--color-surface);border-radius:var(--radius-table);border:1px solid var(--color-hairline);overflow:hidden}table{border-collapse:collapse;width:100%}th{background:var(--color-surface-raised);text-align:left;font-weight:var(--fw-semibold);color:var(--color-ink-secondary);font-size:var(--fs-h3);border-bottom:1px solid var(--color-hairline);padding:.875rem 1.25rem}td{border-bottom:1px solid var(--color-hairline);color:var(--color-ink);font-size:var(--fs-body);vertical-align:middle;font-variant-numeric:tabular-nums;padding:1rem 1.25rem}tr:last-child td{border-bottom:none}tr:hover td{background:var(--color-accent-tint)}.role-select,.assignment-select{background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-hairline);border-radius:var(--radius-button);font-size:var(--fs-body);cursor:pointer;width:100%;font-family:var(--font-ui);outline:none;padding:.45rem .75rem}.role-select:hover,.assignment-select:hover{background:var(--color-accent-tint)}.role-select{width:auto;min-width:160px}.role-select:focus,.assignment-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-accent-tint)}.badge{border-radius:var(--radius-pill);font-size:var(--fs-label);font-weight:var(--fw-semibold);padding:.25rem .65rem;display:inline-block}.badge.pending{color:var(--color-warning);border:1px solid var(--color-warning);background:0 0}.badge.active{color:var(--color-success);border:1px solid var(--color-success);background:0 0}.error-banner{color:var(--color-error);border-radius:var(--radius-card);border:1px solid var(--color-error);text-align:center;font-size:var(--fs-body);background:0 0;margin-bottom:1.25rem;padding:.875rem 1rem}:root[data-theme=dark] body{background:var(--fade-forest-floor);background-attachment:fixed}svg.lucide{stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;fill:none}
