:root{--eiis-brand-500: #8bc34a;--eiis-brand-600: #7cb342;--eiis-brand-soft: rgba(139, 195, 74, .15);--eiis-bg-canvas: #f8f7fa;--eiis-bg-surface: #ffffff;--eiis-bg-raised: #ffffff;--eiis-bg-inset: #fafafa;--eiis-bg-subtle: #f3f4f6;--eiis-border-default: #e5e5e5;--eiis-border-strong: #d4d4d4;--eiis-text-primary: #262626;--eiis-text-secondary: #525252;--eiis-text-disabled: #a3a3a3;--eiis-link: #4f7717;--eiis-overlay: rgba(0, 0, 0, .7);--eiis-text-on-brand: #101010;--eiis-success: #28c76f;--eiis-warning: #ff9f43;--eiis-error: #ff4c51;--eiis-info: #00bad1;--eiis-font-heading: "Poppins", sans-serif;--eiis-font-body: "Figtree", sans-serif;--eiis-space-1: 4px;--eiis-space-2: 8px;--eiis-space-3: 12px;--eiis-space-4: 16px;--eiis-space-6: 24px;--eiis-space-8: 32px;--eiis-space-12: 48px;--eiis-space-16: 64px;--eiis-radius-sm: 4px;--eiis-radius-md: 6px;--eiis-radius-lg: 8px;--eiis-radius-xl: 12px;--eiis-focus-ring: 0 0 0 3px rgba(139, 195, 74, .35);--eiis-motion-fast: .12s;--eiis-motion-standard: .18s;--eiis-motion-slow: .24s;--eiis-easing-standard: cubic-bezier(.2, 0, 0, 1)}:root[data-theme=dark]{--eiis-bg-canvas: #1f1f1f;--eiis-bg-surface: #1a1a1a;--eiis-bg-raised: #242424;--eiis-bg-inset: #252525;--eiis-bg-subtle: #2e2e2e;--eiis-border-default: #333333;--eiis-border-strong: #404040;--eiis-text-primary: #ffffff;--eiis-text-secondary: #b0b0b0;--eiis-text-disabled: #666666;--eiis-link: #8bc34a;--eiis-overlay: rgba(0, 0, 0, .8)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--eiis-bg-canvas: #1f1f1f;--eiis-bg-surface: #1a1a1a;--eiis-bg-raised: #242424;--eiis-bg-inset: #252525;--eiis-bg-subtle: #2e2e2e;--eiis-border-default: #333333;--eiis-border-strong: #404040;--eiis-text-primary: #ffffff;--eiis-text-secondary: #b0b0b0;--eiis-text-disabled: #666666;--eiis-link: #8bc34a;--eiis-overlay: rgba(0, 0, 0, .8)}}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}body{margin:0;background:var(--eiis-bg-canvas);color:var(--eiis-text-primary);font-family:var(--eiis-font-body);font-size:16px;line-height:1.5}h1,h2{font-family:var(--eiis-font-heading);font-weight:600;margin:0 0 var(--eiis-space-2);line-height:1.2}h1{font-size:2rem}h2{font-size:1.25rem}code{background:var(--eiis-bg-subtle);padding:2px 6px;border-radius:var(--eiis-radius-sm)}.muted{color:var(--eiis-text-secondary);margin:0 0 var(--eiis-space-4)}.small{font-size:.875rem}.error{color:var(--eiis-error);margin:var(--eiis-space-3) 0 0}:focus-visible{outline:2px solid var(--eiis-brand-500);outline-offset:2px;box-shadow:var(--eiis-focus-ring)}.center{min-height:100vh;display:grid;place-items:center;padding:var(--eiis-space-4);position:relative}.card{background:var(--eiis-bg-surface);border:1px solid var(--eiis-border-default);border-radius:var(--eiis-radius-xl);padding:var(--eiis-space-8)}.narrow{width:100%;max-width:440px}.login{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eiis-space-3)}.login h1{margin:var(--eiis-space-4) 0 0}.login .muted{margin:0}.login-theme{position:absolute;top:var(--eiis-space-4);right:var(--eiis-space-4)}.btn{min-height:44px;padding:0 var(--eiis-space-6);border-radius:999px;border:1px solid transparent;font:600 1rem var(--eiis-font-body);cursor:pointer;transition:background var(--eiis-motion-standard) var(--eiis-easing-standard)}.btn.primary{background:var(--eiis-brand-500);color:var(--eiis-text-on-brand)}.btn.primary:hover:not(:disabled){background:var(--eiis-brand-600)}.btn.ghost{background:transparent;color:var(--eiis-text-primary);border-color:var(--eiis-border-strong)}.btn.ghost:hover{background:var(--eiis-bg-subtle)}.btn:disabled{opacity:.6;cursor:not-allowed}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--eiis-border-default);background:var(--eiis-bg-surface);color:var(--eiis-text-primary);cursor:pointer}.icon-btn:hover{background:var(--eiis-bg-subtle)}.topbar{display:flex;align-items:center;gap:var(--eiis-space-4);flex-wrap:wrap;padding:var(--eiis-space-3) var(--eiis-space-6);background:var(--eiis-bg-surface);border-bottom:1px solid var(--eiis-border-default)}.topbar img{display:block;width:auto}.brand{font:600 1.125rem var(--eiis-font-heading);padding-left:var(--eiis-space-4);border-left:1px solid var(--eiis-border-strong)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--eiis-space-3);flex-wrap:wrap}.user{display:flex;flex-direction:column;text-align:right;line-height:1.25}.user-name{font-weight:600}.user-role{color:var(--eiis-text-secondary);font-size:.875rem}.page{padding:var(--eiis-space-8) var(--eiis-space-6);max-width:1600px;margin:0 auto}.table-wrap{overflow-x:auto;background:var(--eiis-bg-surface);border:1px solid var(--eiis-border-default);border-radius:var(--eiis-radius-xl)}.board{border-collapse:separate;border-spacing:0;width:100%;min-width:960px}.board thead th{text-align:center;padding:var(--eiis-space-4);font:600 .8125rem var(--eiis-font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--eiis-text-secondary);background:var(--eiis-bg-surface);border-bottom:1px solid var(--eiis-border-default)}.board td,.board tbody th{border-bottom:1px solid var(--eiis-border-default);vertical-align:top;padding:0}.board tbody th[scope=row]{text-align:left;vertical-align:middle;padding:var(--eiis-space-4);font-weight:500}.sticky-col{position:sticky;left:0;background:var(--eiis-bg-surface);z-index:1;min-width:240px;width:240px;border-right:1px solid var(--eiis-border-default)}.course-name{display:block;margin-bottom:var(--eiis-space-2)}.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:2px var(--eiis-space-2);border-radius:999px;background:var(--eiis-brand-soft);color:var(--eiis-link)}.board .group-row th{text-align:left;padding:var(--eiis-space-3) var(--eiis-space-4);font:600 .875rem var(--eiis-font-heading);background:var(--eiis-bg-inset);color:var(--eiis-text-primary)}.board tbody:last-of-type tr:last-child td,.board tbody:last-of-type tr:last-child th{border-bottom:0}.cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--eiis-space-2);width:100%;min-height:96px;padding:var(--eiis-space-4);text-align:center;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer}.cell:hover{background:var(--eiis-bg-subtle)}.cell.editable:hover{box-shadow:inset 0 0 0 2px var(--eiis-brand-500)}.cell-text{white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.dash{color:var(--eiis-text-disabled)}.status{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600;padding:2px var(--eiis-space-3);border-radius:999px;border:1px solid currentColor}.status:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.s-todo{color:var(--eiis-text-secondary)}.s-progress{color:var(--eiis-warning)}.s-done{color:var(--eiis-success)}.s-na{color:var(--eiis-info)}.dialog{width:min(560px,calc(100vw - 32px));padding:var(--eiis-space-6);background:var(--eiis-bg-raised);color:var(--eiis-text-primary);border:1px solid var(--eiis-border-default);border-radius:var(--eiis-radius-xl)}.dialog::backdrop{background:var(--eiis-overlay)}.dialog label{display:block;font-weight:600;margin:var(--eiis-space-4) 0 var(--eiis-space-2)}.dialog select,.dialog textarea{width:100%;min-height:44px;padding:var(--eiis-space-3);font:inherit;color:var(--eiis-text-primary);background:var(--eiis-bg-inset);border:1px solid var(--eiis-border-strong);border-radius:var(--eiis-radius-lg)}.dialog textarea{resize:vertical}.readonly-text{white-space:pre-wrap;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--eiis-space-3);margin-top:var(--eiis-space-6)}@media (max-width: 640px){.page{padding:var(--eiis-space-4)}h1{font-size:1.5rem}.brand{display:none}.sticky-col{min-width:160px;width:160px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.hint{margin:var(--eiis-space-2) 0 0}.cell.copied{box-shadow:inset 0 0 0 2px var(--eiis-brand-500);border-radius:0;background:var(--eiis-brand-soft)}.toast:empty{display:none}.toast{position:fixed;bottom:var(--eiis-space-6);left:50%;transform:translate(-50%);background:var(--eiis-text-primary);color:var(--eiis-bg-canvas);padding:var(--eiis-space-3) var(--eiis-space-6);border-radius:999px;font-weight:600;z-index:10}
