@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.-start{inset-inline-start:calc(var(--spacing) * -1)}.start{inset-inline-start:var(--spacing)}.-end{inset-inline-end:calc(var(--spacing) * -1)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@font-face{font-family:Sora;src:url(/fonts/sora-latin.woff2)format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;src:url(/fonts/sora-latin-ext.woff2)format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-family:"Sora", -apple-system, "SF Pro Text", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display:"Sora", -apple-system, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"SF Mono", "SFMono-Regular", ui-monospace, "Menlo", "Cascadia Code", monospace;--text-hero:34px;--text-title-large:25px;--text-title:20px;--text-subhead:17px;--text-body:15px;--text-caption:13px;--text-caption-small:12px;--text-label:11px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:650;--font-weight-bold:750;--letter-spacing-tight:-.022em;--letter-spacing-normal:0;--letter-spacing-wide:.04em;--letter-spacing-wider:.12em;--line-height-tight:1.2;--line-height-normal:1.4;--line-height-relaxed:1.6;--color-bg-primary:#fff;--color-bg-secondary:#f1f6f6;--color-bg-tertiary:#e3eded;--color-bg-raised:#fff;--color-text-primary:#102a2e;--color-text-secondary:#5b7478;--color-text-tertiary:#93a6a8;--color-text-inverse:#fff;--color-accent:#0e7c86;--color-accent-hover:#0b6972;--color-accent-active:#095860;--color-accent-subtle:#0e7c861a;--color-accent-subtle-hover:#0e7c8629;--color-accent-2:#c2741a;--color-accent-2-soft:#c2741a1f;--color-success:#1f9d6b;--color-success-bg:#e3f6ee;--color-warning:#d98a1f;--color-warning-bg:#fbf0dd;--color-error:#c0392b;--color-error-bg:#fbe7e5;--color-border:#102a2e14;--color-border-hover:#102a2e29;--color-border-raised:#102a2e1a;--color-nav-bg:#ffffffc7;--color-sidebar-bg:#f7fbfbdb;--color-overlay:#081e2266;--color-table-row-hover:#0e7c860d;--color-table-header:#102a2e06;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-18:18px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-36:36px;--space-40:40px;--space-48:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px #102a2e0d, 0 1px 3px #102a2e0a;--shadow-md:0 4px 14px #102a2e12, 0 2px 4px #102a2e0a;--shadow-lg:0 18px 40px #102a2e1f, 0 4px 10px #102a2e0d;--shadow-card:0 1px 2px #102a2e0a, 0 6px 18px #102a2e0d;--shadow-card-hover:0 2px 6px #102a2e0f, 0 16px 36px #0e7c8624;--shadow-dialog:0 30px 80px #081e2247, 0 8px 24px #081e221f;--shadow-button:0 4px 12px #0e7c8647, 0 1px 2px #0e7c8633;--shadow-button-hover:0 8px 20px #0e7c865c;--shadow-logo:0 14px 30px #0e7c8666, inset 0 1px 0 #ffffff59;--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--ease-apple:cubic-bezier(.25, .1, .25, 1);--ease-emphasized:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg-primary:#000;--color-bg-secondary:#0a0a0a;--color-bg-tertiary:#1c1c1e;--color-bg-raised:#1c1c1e;--color-text-primary:#f5f5f7;--color-text-secondary:#98989d;--color-text-tertiary:#636366;--color-text-inverse:#000;--color-accent:#007aff;--color-accent-hover:#0a84ff;--color-accent-active:#0066d9;--color-accent-subtle:#007aff26;--color-accent-subtle-hover:#007aff33;--color-success-bg:#30d15826;--color-warning-bg:#ff9f0a26;--color-error:#ff6961;--color-error-bg:#ff453a26;--color-border:#ffffff14;--color-border-hover:#ffffff1f;--color-border-raised:#ffffff1a;--color-nav-bg:#000c;--color-sidebar-bg:#000000eb;--color-overlay:#0000008f;--color-table-row-hover:#ffffff0a;--color-table-header:#ffffff08;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 30px #00000080;--shadow-card:0 2px 10px #0000004d;--shadow-card-hover:0 8px 30px #0006;--shadow-dialog:0 22px 70px #0009;--shadow-button:0 4px 12px #007aff4d;--shadow-button-hover:0 6px 18px #007aff66}}:root[data-theme=dark]{--color-bg-primary:#0c1a1c;--color-bg-secondary:#0a1719;--color-bg-tertiary:#14282b;--color-bg-raised:#122427;--color-text-primary:#eaf2f2;--color-text-secondary:#93abae;--color-text-tertiary:#5f787b;--color-text-inverse:#081213;--color-accent:#2fb3bf;--color-accent-hover:#41c2cd;--color-accent-active:#259aa5;--color-accent-subtle:#2fb3bf29;--color-accent-subtle-hover:#2fb3bf3d;--color-accent-2:#e0a44a;--color-accent-2-soft:#e0a44a29;--color-success-bg:#1f9d6b2e;--color-warning-bg:#d98a1f2e;--color-error:#ff6961;--color-error-bg:#d8453c2e;--color-border:#ffffff17;--color-border-hover:#ffffff29;--color-border-raised:#ffffff1f;--color-nav-bg:#0a1719d1;--color-sidebar-bg:#091416e6;--color-overlay:#0208099e;--color-table-row-hover:#2fb3bf12;--color-table-header:#ffffff09;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 14px #00000080;--shadow-lg:0 18px 40px #0009;--shadow-card:0 1px 2px #0006, 0 8px 22px #00000073;--shadow-card-hover:0 2px 6px #00000080, 0 18px 40px #2fb3bf1f;--shadow-dialog:0 30px 80px #000000b3;--shadow-button:0 4px 14px #2fb3bf52;--shadow-button-hover:0 8px 22px #2fb3bf6b}*{box-sizing:border-box}html,body{background:var(--color-bg-secondary);min-height:100%;color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--text-body);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:var(--letter-spacing-normal);margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-rows:64px 1fr;grid-template-columns:260px 1fr;min-height:100vh;display:grid}.topbar{z-index:20;background:var(--color-nav-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--color-border);grid-column:1/-1;grid-template-columns:260px 1fr auto;height:64px;display:grid;position:sticky;top:0}.brand{padding:0 var(--space-24);color:var(--color-text-primary);font-size:var(--text-title);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);align-items:center;display:flex}.brand:before{content:"";width:28px;height:28px;margin-right:var(--space-10);border-radius:var(--radius-md);background:var(--color-accent);display:inline-block;box-shadow:0 4px 8px #0071e340}.system-switcher{align-items:center;gap:var(--space-4);padding:0 var(--space-18);display:flex}.system-switcher button{height:64px;padding:0 var(--space-20);color:var(--color-text-secondary);font-size:var(--text-caption);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-normal);transition:color var(--duration-fast) var(--ease-apple);background:0 0;border:0}.system-switcher button:hover{color:var(--color-text-primary)}.system-switcher button.active{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);box-shadow:inset 0 -2px 0 var(--color-accent)}.profile{align-items:center;gap:var(--space-12);padding-right:var(--space-24);display:flex}.demo-badge{padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);color:var(--color-accent);background:var(--color-accent-subtle);font-size:var(--text-caption-small);font-weight:var(--font-weight-medium)}.avatar{color:#fff;background:var(--color-accent);width:34px;height:34px;font-weight:var(--font-weight-bold);font-size:var(--text-caption);border-radius:50%;place-items:center;display:grid;box-shadow:0 2px 8px #0071e333}.profile-name{color:var(--color-text-secondary);font-size:var(--text-caption)}.logout-button{color:var(--color-text-tertiary);font-size:var(--text-caption-small);transition:color var(--duration-fast) var(--ease-apple);background:0 0;border:0}.logout-button:hover{color:var(--color-error)}.login-screen{z-index:100;padding:var(--space-24);background:var(--color-bg-secondary);-webkit-backdrop-filter:blur(40px);place-items:center;display:grid;position:fixed;inset:0}.login-card{width:min(440px,100%);padding:var(--space-40) var(--space-48);border:1px solid var(--color-border-raised);border-radius:var(--radius-2xl);background:var(--color-bg-raised);box-shadow:var(--shadow-lg);text-align:center}.login-logo{width:64px;height:64px;margin:0 auto var(--space-20);border-radius:var(--radius-xl);color:var(--color-text-inverse);background:var(--color-accent);font-size:28px;font-weight:var(--font-weight-bold);place-items:center;display:grid}.login-card h1{color:var(--color-text-primary);font-size:var(--text-title-large);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);margin:0}.login-card>p{margin:var(--space-10) 0 var(--space-28);color:var(--color-text-secondary);font-size:var(--text-caption)}.login-card form{gap:var(--space-16);text-align:left;display:grid}.login-card .primary{width:100%;margin-top:var(--space-6)}.login-card .primary:disabled{cursor:wait;opacity:.65}.login-switch{margin-top:var(--space-16);width:100%;color:var(--color-accent);font-size:var(--text-caption);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);transition:color var(--duration-fast) var(--ease-apple);background:0 0;border:0}.login-switch:hover{color:var(--color-accent-hover);text-decoration:underline}.field-error{color:var(--color-error);font-size:var(--text-caption-small);font-weight:var(--font-weight-medium);margin-top:4px;display:block}label:has(>[aria-invalid=true])>span:first-child{color:var(--color-error)}[aria-invalid=true]{box-shadow:0 0 0 2px var(--color-error-bg);border-color:var(--color-error)!important}.login-error{padding:var(--space-10) var(--space-12);border-radius:var(--radius-md);color:var(--color-error);background:var(--color-error-bg);font-size:var(--text-caption-small)}.login-error-slot{min-height:calc(var(--text-caption-small) * var(--line-height-normal) + var(--space-10) * 2);align-content:center;display:grid}.sidebar{background:var(--color-sidebar-bg);-webkit-backdrop-filter:saturate(180%)blur(10px);border-right:1px solid var(--color-border);height:calc(100vh - 64px);padding-bottom:var(--space-32);position:sticky;top:64px;overflow:auto}.sidebar-search{padding:0 var(--space-16) var(--space-10)}.sidebar-search input{height:32px;padding:0 var(--space-10);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:var(--text-caption-small)}.sidebar-search input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle)}.sidebar-title{padding:var(--space-20) var(--space-20) var(--space-12);color:var(--color-text-tertiary);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;justify-content:space-between;display:flex}.sidebar-title span{letter-spacing:var(--letter-spacing-normal);text-transform:none}.nav-group-button{align-items:center;gap:var(--space-8);width:100%;min-height:46px;color:var(--color-text-secondary);padding:0 var(--space-18);border-radius:var(--radius-md);margin:0 var(--space-8);text-align:left;font-size:var(--text-body);transition:all var(--duration-fast) var(--ease-apple);background:0 0;border:0;grid-template-columns:28px 1fr auto;display:grid}.nav-group-button:hover{color:var(--color-text-primary);background:var(--color-accent-subtle)}.nav-group-button.current{color:var(--color-accent);background:var(--color-accent-subtle);font-weight:var(--font-weight-medium)}.nav-icon{opacity:.6;place-items:center;width:24px;height:24px;font-size:15px;display:grid}.chevron{font-size:var(--text-caption-small);color:var(--color-text-tertiary)}.nav-children{padding:0 var(--space-10) var(--space-8) 44px}.nav-section p{margin:var(--space-8) 0 var(--space-4);color:var(--color-text-tertiary);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.nav-section button{width:100%;padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-caption);text-align:left;transition:all var(--duration-fast) var(--ease-apple);background:0 0;border:0}.nav-section button:hover{color:var(--color-text-primary);background:var(--color-accent-subtle)}.nav-section button.active{color:var(--color-accent);background:var(--color-accent-subtle);font-weight:var(--font-weight-semibold)}.workspace{min-width:0;padding:var(--space-32) var(--space-40) var(--space-48)}.page-heading{margin-bottom:var(--space-28);justify-content:space-between;align-items:end;display:flex}.page-heading h1{margin:var(--space-4) 0 0;font-size:var(--text-hero);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary)}.eyebrow{color:var(--color-text-tertiary);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;margin:0}.heading-actions{align-items:center;gap:var(--space-12);display:flex}.business-steps{gap:var(--space-6);display:flex}.business-steps span{padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);font-size:var(--text-caption-small);font-weight:var(--font-weight-medium)}.flow-button{padding:var(--space-8) var(--space-16);border:1px solid var(--color-border-raised);border-radius:var(--radius-full);color:var(--color-accent);font-size:var(--text-caption);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-apple);background:0 0}.flow-button:hover{background:var(--color-accent-subtle);border-color:var(--color-accent)}.flow-card,.filter-card,.table-card,.module-card{background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.flow-card{align-items:center;gap:var(--space-24);padding:var(--space-20) var(--space-24);margin-bottom:var(--space-20);grid-template-columns:240px 1fr;display:grid}.flow-card p{margin:var(--space-6) 0 0;color:var(--color-text-secondary);font-size:var(--text-caption)}.flow-card ol{align-items:center;margin:0;padding:0;list-style:none;display:flex}.flow-card li{align-items:center;gap:var(--space-8);color:var(--color-text-secondary);font-size:var(--text-caption);flex:1;display:flex;position:relative}.flow-card li:not(:last-child):after{content:"";background:var(--color-border-hover);height:1px;position:absolute;top:13px;left:70%;right:7%}.flow-card li span,.stage-line span{color:#fff;background:var(--color-accent);width:26px;height:26px;font-size:var(--text-caption-small);font-weight:var(--font-weight-semibold);border-radius:50%;place-items:center;display:grid}.filter-card{align-items:end;gap:var(--space-14);padding:var(--space-20);margin-bottom:var(--space-20);grid-template-columns:minmax(260px,1.5fr) 180px auto auto;display:grid}.student-filter-card{grid-template-columns:repeat(4,minmax(150px,1fr))}.student-filter-actions{align-items:end;gap:var(--space-10);display:flex}.student-filter-actions .primary{align-items:center;gap:var(--space-6);display:flex}label{gap:var(--space-6);color:var(--color-text-secondary);font-size:var(--text-caption);font-weight:var(--font-weight-medium);display:grid}input,select{width:100%;height:40px;padding:0 var(--space-14);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--duration-fast) var(--ease-apple), background-color var(--duration-fast) var(--ease-apple), box-shadow var(--duration-fast) var(--ease-apple);outline:none}textarea{width:100%;min-height:88px;padding:var(--space-10) var(--space-14);resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);background:var(--color-bg-primary);font:inherit;transition:border-color var(--duration-fast) var(--ease-apple), background-color var(--duration-fast) var(--ease-apple), box-shadow var(--duration-fast) var(--ease-apple);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.input-wrap{position:relative}.input-wrap span{left:var(--space-12);color:var(--color-text-tertiary);position:absolute;top:9px}.input-wrap input{padding-left:34px}.primary,.ghost,.import{height:40px;padding:0 var(--space-20);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-normal);transition:background-color var(--duration-fast) var(--ease-apple), color var(--duration-fast) var(--ease-apple), border-color var(--duration-fast) var(--ease-apple), box-shadow var(--duration-fast) var(--ease-apple), transform var(--duration-fast) var(--ease-apple)}.primary{color:var(--color-text-inverse);background:var(--color-accent);box-shadow:var(--shadow-button);border:none}.primary:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-button-hover)}.primary:active{background:var(--color-accent-active);transform:scale(.97)}.ghost{border:1px solid var(--color-border-raised);color:var(--color-accent);background:0 0}.ghost:hover{background:var(--color-accent-subtle);border-color:var(--color-accent)}.import{margin-left:var(--space-10);border:1px solid var(--color-success);color:var(--color-success);background:0 0}.import:hover{background:var(--color-success-bg)}.table-card{overflow:hidden}.table-toolbar{padding:var(--space-16) var(--space-20);justify-content:space-between;align-items:center;display:flex}.round-actions{gap:var(--space-8);display:flex}.round-actions button{border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-secondary);background:var(--color-bg-primary);font-size:var(--text-caption);transition:all var(--duration-fast) var(--ease-apple);border-radius:50%}.round-actions button:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:920px}th{padding:var(--space-12) var(--space-14);background:var(--color-table-header);color:var(--color-text-secondary);font-size:var(--text-label);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;text-align:left;white-space:nowrap}td{padding:var(--space-14) var(--space-14);border-top:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--text-body);white-space:nowrap}tbody tr:hover{background:var(--color-table-row-hover)}td strong{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.status{padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);color:var(--color-success);background:var(--color-success-bg);font-size:var(--text-caption-small);font-weight:var(--font-weight-medium)}.link-button{padding:0 var(--space-6);color:var(--color-accent);font-weight:var(--font-weight-medium);transition:opacity var(--duration-fast) var(--ease-apple);background:0 0;border:0}.link-button:hover{opacity:.8}.pagination{justify-content:flex-end;align-items:center;gap:var(--space-8);padding:var(--space-16) var(--space-20);color:var(--color-text-secondary);font-size:var(--text-caption);border-top:1px solid var(--color-border);display:flex}.pagination button{border:1px solid var(--color-border);border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--text-caption-small);transition:all var(--duration-fast) var(--ease-apple);background:0 0}.pagination button:hover{border-color:var(--color-accent);color:var(--color-accent)}.pagination button.active{color:var(--color-text-inverse);border-color:var(--color-accent);background:var(--color-accent)}.pagination select{width:auto;height:32px;padding:0 24px 0 var(--space-10);font-size:var(--text-caption-small)}.page-jump{align-items:center;gap:var(--space-6);color:var(--color-text-secondary);flex-direction:row;display:flex}.page-jump input{width:48px;height:32px;padding:0 var(--space-6);text-align:center}.student-table .operation-column{z-index:2;background:var(--color-bg-raised);min-width:150px;position:sticky;right:0;box-shadow:-6px 0 10px #00000008}.student-table th.operation-column{z-index:3;background:var(--color-table-header)}.module-card{padding:var(--space-24)}.module-hero{align-items:center;gap:var(--space-16);padding-bottom:var(--space-24);border-bottom:1px solid var(--color-border);grid-template-columns:auto 1fr auto;display:grid}.module-mark{border-radius:var(--radius-lg);color:#fff;background:var(--color-accent);width:52px;height:52px;font-size:22px;font-weight:var(--font-weight-bold);place-items:center;display:grid;box-shadow:0 8px 16px #0071e333}.module-hero h2{margin:0 0 var(--space-6);font-size:var(--text-title);font-weight:var(--font-weight-semibold)}.module-hero p{max-width:720px;color:var(--color-text-secondary);font-size:var(--text-caption);line-height:var(--line-height-relaxed);margin:0}.module-filter{align-items:end;gap:var(--space-12);padding:var(--space-18) 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.module-filter label{width:180px}.stage-line{margin:var(--space-28) 0;grid-template-columns:repeat(5,1fr);display:grid}.stage-line div{justify-items:center;gap:var(--space-6);color:var(--color-text-tertiary);font-size:var(--text-caption);display:grid;position:relative}.stage-line div:not(:last-child):after{content:"";z-index:0;background:var(--color-border-hover);height:1px;position:absolute;top:13px;left:58%;right:-42%}.stage-line span{z-index:1;background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.stage-line .done{color:var(--color-accent)}.stage-line .done span{background:var(--color-accent);color:#fff}.stage-line .done:after{background:var(--color-accent-subtle)!important;background:#0071e333!important}.stage-line p{margin:0}.stats-grid{gap:var(--space-14);grid-template-columns:repeat(3,1fr);display:grid}.stats-grid article{padding:var(--space-20);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-raised);box-shadow:var(--shadow-card)}.stats-grid article span,.stats-grid article small{color:var(--color-text-tertiary);font-size:var(--text-caption-small);display:block}.stats-grid article strong{margin:var(--space-8) 0;color:var(--color-text-primary);font-size:28px;font-weight:var(--font-weight-bold);display:block}.statistics-layout{margin-top:var(--space-20)}.metric-grid{gap:var(--space-14);grid-template-columns:repeat(4,1fr);display:grid}.metric-grid article{padding:var(--space-18) var(--space-20);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-raised);box-shadow:var(--shadow-card)}.metric-grid span,.metric-grid small{color:var(--color-text-tertiary);font-size:var(--text-caption-small);display:block}.metric-grid strong{margin:var(--space-8) 0;color:var(--color-text-primary);font-size:26px;font-weight:var(--font-weight-bold);display:block}.chart-card{padding:var(--space-20);margin-top:var(--space-14);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-raised)}.chart-card>div:first-child{color:var(--color-text-primary);font-size:var(--text-caption);font-weight:var(--font-weight-medium);justify-content:space-between;display:flex}.chart-card>div:first-child span{color:var(--color-text-tertiary);font-size:var(--text-caption-small)}.bar-chart{align-items:end;gap:var(--space-24);height:180px;padding:var(--space-28) var(--space-20) var(--space-24);margin-top:var(--space-12);border-left:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:flex}.bar-chart i{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-accent);flex:1;max-width:55px;position:relative}.bar-chart i span{color:var(--color-text-tertiary);font-size:var(--text-label);white-space:nowrap;font-style:normal;position:absolute;bottom:-22px;left:50%;transform:translate(-50%)}.feature-table{margin-top:var(--space-20);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.feature-table-head{min-height:58px;padding:var(--space-10) var(--space-16);background:var(--color-table-header);justify-content:space-between;align-items:center;display:flex}.record-list{margin-top:var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.record-list-head{padding:var(--space-16) var(--space-20);background:var(--color-table-header);justify-content:space-between;align-items:center;display:flex}.record-list-head p{margin:var(--space-4) 0 0;color:var(--color-text-tertiary);font-size:var(--text-caption-small)}.record-row{align-items:center;gap:var(--space-12);padding:var(--space-16) var(--space-20);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-caption);grid-template-columns:160px 1fr 100px auto;display:grid}.record-no{color:var(--color-accent);font-family:var(--font-mono)}.status.pending{color:var(--color-warning);background:var(--color-warning-bg)}.full-form-page{min-width:0}.form-page-head{margin-bottom:var(--space-20);justify-content:space-between;align-items:end;display:flex}.form-page-head h1{margin:var(--space-4) 0 0;font-size:var(--text-title-large)}.form-card{padding:0 var(--space-24) var(--space-24);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.form-section{padding:var(--space-24) 0 var(--space-8)}.form-section+.form-section{border-top:1px solid var(--color-border)}.form-section>header{align-items:center;gap:var(--space-10);margin-bottom:var(--space-20);display:flex}.form-section>header h2{color:var(--color-text-primary);font-size:var(--text-subhead);font-weight:var(--font-weight-semibold);margin:0}.section-icon{border-radius:var(--radius-md);width:28px;height:28px;color:var(--color-accent);background:var(--color-accent-subtle);font-size:var(--text-caption-small);place-items:center;display:grid}.section-line{height:1px;margin-left:var(--space-4);background:var(--color-border);flex:1}.form-grid{gap:var(--space-16) var(--space-24);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.wide-field{grid-column:span 2}.required{color:var(--color-error);margin-right:3px}.photo-and-fields{gap:var(--space-24);grid-template-columns:155px 1fr;display:grid}.photo-upload{align-items:center;gap:var(--space-8);color:var(--color-text-secondary);font-size:var(--text-caption-small);flex-direction:column;display:flex}.photo-upload small{color:var(--color-text-tertiary);line-height:var(--line-height-relaxed);text-align:center}.photo-box{border:2px dashed var(--color-border);border-radius:var(--radius-lg);width:112px;height:148px;color:var(--color-accent);background:var(--color-bg-secondary);transition:all var(--duration-fast) var(--ease-apple);place-items:center;font-size:28px;display:grid}.photo-box:hover{border-color:var(--color-accent);background:var(--color-accent-subtle)}.form-actions{justify-content:center;gap:var(--space-12);padding:var(--space-18) 0 var(--space-4);background:linear-gradient(to bottom, transparent, var(--color-bg-raised) 30%);display:flex;position:sticky;bottom:0}.audit-trail{padding:var(--space-20);margin-top:var(--space-14);border-radius:var(--radius-lg);background:var(--color-bg-secondary)}.audit-trail ol{margin:var(--space-14) 0 0;padding:0;list-style:none}.audit-trail li{align-items:center;gap:var(--space-8);padding:var(--space-8) 0;color:var(--color-text-secondary);font-size:var(--text-caption);display:flex;position:relative}.audit-trail li span{background:var(--color-accent);border-radius:50%;width:8px;height:8px}.audit-trail small{color:var(--color-text-tertiary);margin-left:auto}.dialog-backdrop{z-index:50;padding:var(--space-20);background:var(--color-overlay);-webkit-backdrop-filter:blur(20px);place-items:center;display:grid;position:fixed;inset:0}.dialog{width:min(580px,100%);padding:0 var(--space-24) var(--space-20);border-radius:var(--radius-2xl);background:var(--color-bg-raised);box-shadow:var(--shadow-dialog)}.dialog header,.dialog footer{padding:var(--space-18) 0;justify-content:space-between;align-items:center;display:flex}.dialog header{border-bottom:1px solid var(--color-border)}.dialog header h2{font-size:var(--text-title);font-weight:var(--font-weight-semibold);margin:0}.dialog header button{color:var(--color-text-tertiary);transition:color var(--duration-fast) var(--ease-apple);background:0 0;border:0;font-size:24px}.dialog header button:hover{color:var(--color-text-primary)}.dialog footer{justify-content:flex-end;gap:var(--space-10);padding-bottom:0}.dialog-grid{gap:var(--space-16);padding-top:var(--space-20);grid-template-columns:1fr 1fr;display:grid}.privacy-note{padding:var(--space-10) var(--space-12);border-radius:var(--radius-md);color:var(--color-warning);background:var(--color-warning-bg);font-size:var(--text-caption-small)}.import-dialog{border-radius:var(--radius-xl);background:var(--color-bg-raised);width:min(900px,96vw);max-height:90vh;box-shadow:var(--shadow-dialog);flex-direction:column;display:flex;overflow:hidden}.import-dialog>header,.import-dialog>footer{padding:var(--space-16) var(--space-24);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.import-dialog>header h2{font-size:var(--text-title);font-weight:var(--font-weight-semibold);margin:0}.import-dialog>header button{color:var(--color-text-tertiary);background:0 0;border:0;font-size:24px}.import-dialog>footer{justify-content:flex-end;gap:var(--space-10);border-top:1px solid var(--color-border);border-bottom:0}.import-dialog>footer button:disabled{cursor:not-allowed;opacity:.48}.import-body{padding:var(--space-20) var(--space-24);overflow:auto}.import-notes{gap:var(--space-8);padding:var(--space-14) var(--space-16);border-radius:var(--radius-md);color:var(--color-warning);background:var(--color-warning-bg);font-size:var(--text-caption-small);grid-template-columns:auto 1fr;display:grid}.import-notes ol{padding-left:var(--space-20);margin:0;line-height:1.8}.import-actions{gap:var(--space-10);margin:var(--space-16) 0;display:flex}.template-button{height:40px;padding:0 var(--space-16);border:1px solid var(--color-border-raised);border-radius:var(--radius-full);color:var(--color-accent);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-apple);background:0 0}.template-button:hover{background:var(--color-accent-subtle);border-color:var(--color-accent)}.file-input{display:none}.drop-zone{justify-content:center;align-items:center;gap:var(--space-6);border:2px dashed var(--color-border);border-radius:var(--radius-lg);min-height:140px;color:var(--color-text-secondary);background:var(--color-bg-secondary);transition:all var(--duration-fast) var(--ease-apple);flex-direction:column;display:flex}.drop-zone.dragging{border-color:var(--color-accent);background:var(--color-accent-subtle)}.drop-zone>span{color:var(--color-accent);font-size:28px}.drop-zone small{color:var(--color-text-tertiary)}.drop-zone em{margin-top:var(--space-4);color:var(--color-accent);font-size:var(--text-caption-small);font-style:normal}.import-summary{gap:var(--space-24);padding:var(--space-12) var(--space-14);margin-top:var(--space-14);border-radius:var(--radius-md);color:var(--color-text-secondary);background:var(--color-bg-secondary);font-size:var(--text-caption);display:flex}.import-summary strong{color:var(--color-success);font-weight:var(--font-weight-semibold)}.import-summary strong.danger{color:var(--color-error)}.import-success{padding:var(--space-12) var(--space-14);margin-top:var(--space-14);border:1px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-success);background:var(--color-success-bg);font-size:var(--text-caption)}.preview-table,.error-log{margin-top:var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.preview-table h3,.error-log h3{padding:var(--space-12) var(--space-14);color:var(--color-text-primary);background:var(--color-table-header);font-size:var(--text-caption);font-weight:var(--font-weight-semibold);margin:0}.preview-table p,.error-log p{padding:var(--space-24);color:var(--color-text-tertiary);text-align:center;font-size:var(--text-caption);margin:0}.error-log td:last-child{color:var(--color-error)}.action-notice{z-index:4;justify-content:space-between;align-items:center;gap:var(--space-16);padding:var(--space-10) var(--space-14);margin-bottom:var(--space-16);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);background:var(--color-accent-subtle);box-shadow:var(--shadow-sm);font-size:var(--text-caption);display:flex;position:sticky;top:80px}.action-notice button{color:var(--color-accent);background:0 0;border:0;font-size:18px}.empty-state{padding:var(--space-40) var(--space-16);color:var(--color-text-tertiary);text-align:center;font-size:var(--text-body)}.settings-dialog{border-radius:var(--radius-xl);background:var(--color-bg-raised);width:min(560px,96vw);box-shadow:var(--shadow-dialog);overflow:hidden}.settings-dialog>header,.settings-dialog>footer{padding:var(--space-16) var(--space-20);justify-content:space-between;align-items:center;display:flex}.settings-dialog>header{border-bottom:1px solid var(--color-border)}.settings-dialog>header h2{font-size:var(--text-title);font-weight:var(--font-weight-semibold);margin:0}.settings-dialog>header button{color:var(--color-text-tertiary);background:0 0;border:0;font-size:24px}.settings-dialog>p{margin:var(--space-16) var(--space-20) var(--space-10);color:var(--color-text-secondary);font-size:var(--text-caption)}.settings-dialog>footer{justify-content:flex-end;gap:var(--space-10);border-top:1px solid var(--color-border)}.column-options{gap:var(--space-8) var(--space-18);max-height:48vh;padding:var(--space-8) var(--space-20) var(--space-20);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:auto}.column-options label{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);font-weight:var(--font-weight-regular);grid-template-columns:18px 1fr}.column-options input{width:16px;height:16px;padding:0}.photo-box:disabled{cursor:not-allowed;opacity:.6}.workflow-workbench{min-width:0;padding:var(--space-24);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg-raised);box-shadow:var(--shadow-card)}.workflow-module-title{justify-content:space-between;align-items:center;gap:var(--space-20);padding-bottom:var(--space-20);border-bottom:1px solid var(--color-border);display:flex}.workflow-module-title h2{margin:0 0 var(--space-8);font-size:var(--text-title);font-weight:var(--font-weight-semibold)}.workflow-module-title p{color:var(--color-text-secondary);font-size:var(--text-caption);margin:0}.workflow-search{align-items:end;gap:var(--space-12);padding:var(--space-18) 0;display:flex}.workflow-search label{width:min(360px,100%)}.workflow-table{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto}.workflow-table table{min-width:850px}.workflow-table code{padding:var(--space-4) var(--space-6);border-radius:var(--radius-sm);color:var(--color-accent);background:var(--color-accent-subtle)}.workflow-designer,.form-designer{border-radius:var(--radius-xl);background:var(--color-bg-raised);width:min(1180px,96vw);max-height:94vh;box-shadow:var(--shadow-dialog);flex-direction:column;display:flex;overflow:hidden}.workflow-designer>header,.workflow-designer>footer,.form-designer>header,.form-designer>footer{padding:var(--space-16) var(--space-24);justify-content:space-between;align-items:center;display:flex}.workflow-designer>header,.form-designer>header{border-bottom:1px solid var(--color-border)}.workflow-designer>header h2,.form-designer>header h2{margin:0 0 var(--space-4);font-size:var(--text-title);font-weight:var(--font-weight-semibold)}.workflow-designer>header p,.form-designer>header p{color:var(--color-text-tertiary);font-size:var(--text-caption-small);margin:0}.workflow-designer>header button,.form-designer>header button{color:var(--color-text-tertiary);transition:color var(--duration-fast) var(--ease-apple);background:0 0;border:0;font-size:24px}.workflow-designer>header button:hover,.form-designer>header button:hover{color:var(--color-text-primary)}.workflow-designer>footer,.form-designer>footer{justify-content:flex-end;gap:var(--space-10);border-top:1px solid var(--color-border)}.workflow-designer>footer button:disabled,.form-designer>footer button:disabled{cursor:not-allowed;opacity:.48}.designer-steps{padding:var(--space-18) max(36px, 10%);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);grid-template-columns:repeat(3,1fr);margin:0;list-style:none;display:grid}.designer-steps li{justify-content:center;align-items:center;gap:var(--space-8);color:var(--color-text-tertiary);font-size:var(--text-caption);display:flex;position:relative}.designer-steps li:not(:last-child):after{content:"";background:var(--color-border-hover);height:1px;position:absolute;top:15px;left:67%;right:-33%}.designer-steps span{z-index:1;width:30px;height:30px;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);font-weight:var(--font-weight-semibold);border-radius:50%;place-items:center;display:grid}.designer-steps li.active{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.designer-steps li.active span{color:#fff;background:var(--color-accent)}.designer-steps li.active:after{background:var(--color-accent-subtle)}.designer-body{min-height:480px;padding:var(--space-24);overflow:auto}.form-selection{gap:var(--space-24);grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);display:grid}.form-selection>section,.form-preview{padding:var(--space-20);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.form-selection h3,.process-design h3,.model-completion h3,.form-designer h3{margin:0 0 var(--space-16);font-size:var(--text-subhead)}.radio-row{gap:var(--space-10);margin-bottom:var(--space-20);flex-wrap:wrap;display:flex}.radio-row label{padding:var(--space-10) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:18px auto;align-items:center}.radio-row input{width:16px;height:16px}.form-preview{align-content:start;gap:var(--space-14);background:var(--color-bg-secondary);grid-template-columns:1fr 1fr;display:grid}.form-preview h3,.form-preview>strong,.form-preview>p{grid-column:1/-1}.process-design{gap:var(--space-20);grid-template-columns:200px 1fr;display:grid}.process-design>aside{padding:var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary)}.process-design>aside button{width:100%;padding:var(--space-10) var(--space-12);margin-bottom:var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);background:var(--color-bg-primary);text-align:left;font-size:var(--text-caption);transition:all var(--duration-fast) var(--ease-apple)}.process-design>aside button:hover{border-color:var(--color-accent);background:var(--color-accent-subtle)}.process-design>section{border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;overflow:hidden}.process-toolbar{padding:var(--space-14) var(--space-16);border-bottom:1px solid var(--color-border);background:var(--color-table-header);color:var(--color-text-secondary);font-size:var(--text-caption);justify-content:space-between;display:flex}.process-canvas{min-height:390px;padding:var(--space-24);background-color:var(--color-bg-secondary);background-image:radial-gradient(var(--color-border-hover) 1px, transparent 1px);background-size:20px 20px;flex-direction:column;align-items:center;display:flex}.process-node{align-items:center;gap:var(--space-10);width:min(560px,90%);min-height:64px;padding:var(--space-10) var(--space-14);border:1px solid var(--color-border-raised);border-left:4px solid var(--color-accent);border-radius:var(--radius-lg);background:var(--color-bg-raised);box-shadow:var(--shadow-card);grid-template-columns:38px 1fr 150px 28px;display:grid;position:relative}.process-node:not(:last-child){margin-bottom:34px}.process-node:not(:last-child):after{content:"↓";color:var(--color-text-tertiary);font-size:var(--text-caption);position:absolute;bottom:-28px;left:50%}.process-node.start,.process-node.end{border-left-color:var(--color-success);grid-template-columns:38px 1fr}.process-node.copy{border-left-color:#8e7be8}.process-node.condition{border-left-color:var(--color-warning)}.node-order{color:#fff;background:var(--color-accent);width:28px;height:28px;font-size:var(--text-caption-small);font-weight:var(--font-weight-semibold);border-radius:50%;place-items:center;display:grid}.process-node strong,.process-node small{display:block}.process-node small{color:var(--color-text-tertiary);font-size:var(--text-label);margin-top:3px}.process-node select{height:34px;font-size:var(--text-caption-small)}.process-node>button{color:var(--color-error);background:0 0;border:0;font-size:20px}.model-completion{max-width:860px;margin:auto}.completion-summary{gap:var(--space-20);padding:var(--space-16);margin-top:var(--space-24);border-radius:var(--radius-md);color:var(--color-text-secondary);background:var(--color-bg-secondary);font-size:var(--text-caption);display:flex}.form-designer-body{grid-template-columns:200px 1fr;min-height:520px;display:grid;overflow:auto}.form-designer-body>aside{padding:var(--space-18);border-right:1px solid var(--color-border);background:var(--color-bg-secondary)}.form-designer-body>aside button{width:100%;padding:var(--space-10);margin-bottom:var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);background:var(--color-bg-primary);text-align:left;font-size:var(--text-caption);transition:all var(--duration-fast) var(--ease-apple)}.form-designer-body>aside button:hover{border-color:var(--color-accent);background:var(--color-accent-subtle)}.form-designer-body>section{min-width:0;padding:var(--space-20)}.form-meta{gap:var(--space-14);padding-bottom:var(--space-18);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);display:grid}.field-canvas{min-height:350px;padding:var(--space-18);margin-top:var(--space-18);border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary)}.field-canvas h3{justify-content:space-between;display:flex}.field-canvas h3 span{color:var(--color-text-tertiary);font-size:var(--text-caption-small);font-weight:var(--font-weight-regular)}.field-canvas>p{padding:70px var(--space-20);color:var(--color-text-tertiary);text-align:center}.field-canvas article{align-items:center;gap:var(--space-12);padding:var(--space-12);margin-bottom:var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-raised);grid-template-columns:90px 1fr auto auto;display:grid}.field-type{color:var(--color-accent);font-size:var(--text-caption-small)}.field-canvas article>label{align-items:center;gap:var(--space-6);white-space:nowrap;flex-direction:row;display:flex}.field-canvas article>label input{width:16px;height:16px}.field-canvas article>button{color:var(--color-error);background:0 0;border:0}.deployment-layout{grid-template-columns:200px 1fr;gap:0;padding:0;display:grid;overflow:hidden}.category-tree{gap:var(--space-4);padding:var(--space-18) var(--space-12);border-right:1px solid var(--color-border);background:0 0;flex-direction:column;display:flex}.category-tree>strong{padding:var(--space-10) var(--space-8) var(--space-6);color:var(--color-text-tertiary);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.category-tree button{padding:var(--space-10) var(--space-12);border-radius:var(--radius-md);color:var(--color-text-secondary);text-align:left;font-size:var(--text-caption);transition:all var(--duration-fast) var(--ease-apple);background:0 0;border:0}.category-tree button:hover{color:var(--color-text-primary);background:var(--color-accent-subtle)}.category-tree button.active{color:var(--color-accent);background:var(--color-accent-subtle);font-weight:var(--font-weight-semibold)}.deployment-main{min-width:0;padding:var(--space-24)}.deploy-drafts{align-items:center;gap:var(--space-10);padding:var(--space-12) var(--space-14);margin-top:var(--space-16);border:1px solid var(--color-warning);border-radius:var(--radius-md);color:var(--color-warning);background:var(--color-warning-bg);font-size:var(--text-caption-small);flex-wrap:wrap;display:flex}.deploy-drafts button{padding:var(--space-6) var(--space-10);border:1px solid var(--color-warning);border-radius:var(--radius-sm);color:var(--color-warning);font-size:var(--text-caption-small);background:0 0}.hamburger{width:44px;height:44px;margin-left:var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-apple);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:10px;display:none}.hamburger:hover{background:var(--color-accent-subtle)}.hamburger span{background:var(--color-text-primary);width:22px;height:2px;transition:all var(--duration-normal) var(--ease-emphasized);border-radius:2px;display:block}.hamburger[aria-expanded=true] span:first-child{transform:translateY(7px)rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.sidebar-overlay{z-index:25;background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);display:none;position:fixed;inset:0}.mobile-system-switcher{gap:var(--space-4);padding:var(--space-12) var(--space-12) var(--space-8);border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch;display:none;overflow-x:auto}.mobile-system-switcher button{height:34px;padding:0 var(--space-14);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:var(--text-caption-small);font-weight:var(--font-weight-medium);white-space:nowrap;transition:all var(--duration-fast) var(--ease-apple);flex-shrink:0}.mobile-system-switcher button.active{color:var(--color-text-inverse);background:var(--color-accent);border-color:var(--color-accent)}@media (max-width:900px){.app-shell{grid-template-columns:200px 1fr}.topbar{grid-template-columns:auto 200px 1fr auto}.brand{font-size:var(--text-subhead)}.system-switcher button{padding:0 var(--space-10);font-size:var(--text-caption-small)}.filter-card{grid-template-columns:1fr 160px}.student-filter-card{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-card,.form-selection,.process-design{grid-template-columns:1fr}.deployment-layout{grid-template-columns:160px 1fr}.form-meta{grid-template-columns:1fr 1fr}.nav-section button{min-height:40px;padding:var(--space-10) var(--space-12)}.nav-group-button{min-height:44px}}@media (max-width:680px){.hamburger{display:flex}.topbar{grid-template-columns:auto 1fr auto}.app-shell{padding-top:58px;display:block}.topbar{z-index:30;height:58px;position:fixed}.brand{font-size:var(--text-subhead);border:0}.brand:before{width:22px;height:22px}.system-switcher,.demo-badge{display:none}.profile{padding-right:var(--space-12)}.profile-name,.avatar{display:none}.sidebar{z-index:30;width:min(300px,85vw);height:100dvh;transition:transform var(--duration-normal) var(--ease-emphasized);box-shadow:none;-webkit-overflow-scrolling:touch;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.is-open{box-shadow:var(--shadow-dialog);transform:translate(0)}.sidebar-overlay{display:block}.mobile-system-switcher{display:flex}.logout-button{min-width:36px;min-height:36px}.primary,.ghost,.import{min-height:44px;padding:0 var(--space-24)}.link-button{min-height:36px;padding:var(--space-6) var(--space-10)}.round-actions button{width:40px;height:40px}input,select{height:44px;font-size:16px}textarea{font-size:16px}.sidebar-search input{height:40px;font-size:var(--text-caption)}.workspace{padding:var(--space-16) var(--space-12) var(--space-36)}.business-steps{display:none}.page-heading{align-items:flex-start;gap:var(--space-12);flex-direction:column}.page-heading h1{font-size:var(--text-title-large)}.filter-card,.dialog-grid,.student-filter-card{grid-template-columns:1fr}.student-filter-actions{grid-column:1}.pagination{flex-wrap:wrap;justify-content:flex-start}.flow-card{grid-template-columns:1fr}.flow-card ol{grid-template-columns:repeat(5,1fr);display:grid}.flow-card li{text-align:center;justify-items:center;display:grid}.module-hero{grid-template-columns:auto 1fr}.module-hero button{grid-column:1/-1}.stats-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.table-card{overflow:hidden}.table-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overflow-x:auto}table{min-width:640px;font-size:var(--text-caption)}th,td{padding:var(--space-10) var(--space-12)}th{font-size:var(--text-label)}.record-row{grid-template-columns:1fr auto}.record-row .record-no,.record-row .status{grid-column:auto}.form-grid{grid-template-columns:1fr}.wide-field{grid-column:auto}.photo-and-fields{grid-template-columns:1fr}.dialog-backdrop{padding:0}.dialog,.settings-dialog{border-radius:0;flex-direction:column;width:100%;height:100dvh;max-height:100dvh;display:flex}.dialog>header,.dialog>footer,.settings-dialog>header,.settings-dialog>footer{flex-shrink:0}.dialog-grid{padding:var(--space-16);flex:1;grid-template-columns:1fr;overflow-y:auto}.dialog footer,.settings-dialog>footer{padding-bottom:env(safe-area-inset-bottom,var(--space-12))}.column-options{flex:1;max-height:none;overflow-y:auto}.import-dialog{border-radius:0;width:100%;max-width:100vw;height:100dvh;max-height:100dvh}.import-body{flex:1}.workflow-workbench{padding:var(--space-14)}.workflow-module-title{align-items:flex-start}.workflow-search{flex-direction:column;align-items:stretch}.workflow-search label{width:100%}.designer-steps{padding:var(--space-12) var(--space-8)}.designer-steps li{text-align:center;font-size:var(--text-label);justify-items:center;display:grid}.designer-body{padding:var(--space-12)}.form-selection,.process-design,.deployment-layout{display:block}.process-design>aside,.category-tree{margin-bottom:var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-md)}.process-node{grid-template-columns:32px 1fr;width:100%}.process-node select,.process-node>button{grid-column:2}.form-designer-body{display:block}.form-designer-body>aside{border-right:0;border-bottom:1px solid var(--color-border)}.form-meta,.field-canvas article{grid-template-columns:1fr}.completion-summary{flex-direction:column;align-items:flex-start}.workflow-designer,.form-designer{border-radius:0;width:100%;max-width:100vw;height:100dvh;max-height:100dvh}.workflow-designer>footer,.form-designer>footer{padding-bottom:env(safe-area-inset-bottom,var(--space-12))}.action-notice{top:66px}.student-table thead,.feature-table table thead{display:none}.student-table tbody tr,.feature-table table tbody tr{border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);border-radius:12px;margin-bottom:12px;padding:2px 10px;display:block}.student-table tbody td,.feature-table table tbody td{border:none;border-bottom:1px dashed var(--color-border,#f0f0f0);text-align:right;word-break:break-all;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 2px;display:flex}.student-table tbody td:last-child,.feature-table table tbody td:last-child{border-bottom:none}.student-table tbody td:before,.feature-table table tbody td:before{content:attr(data-label);opacity:.65;text-align:left;word-break:keep-all;flex-shrink:0;font-weight:600}.student-table tbody td.operation-column{justify-content:flex-end}.student-table tbody td.operation-column:before{content:none}}body{background-color:var(--color-bg-secondary);background-image:radial-gradient(900px 520px at 90% -10%, var(--color-accent-subtle), transparent 62%), radial-gradient(720px 500px at -6% 110%, var(--color-accent-2-soft), transparent 56%), radial-gradient(#788c8f1a 1px, transparent 1.5px);background-size:auto,auto,22px 22px;background-attachment:fixed,fixed,fixed}.brand,.page-heading h1,.module-hero h2,.login-card h1,.metric-grid strong{font-family:var(--font-display)}code,td code,.metric-grid strong{font-variant-numeric:tabular-nums}td code,.role-code{font-family:var(--font-mono);font-size:.92em}.eyebrow{color:var(--color-accent);font-weight:var(--font-weight-semibold);align-items:center;gap:8px;display:inline-flex}.eyebrow:before{content:"";background:var(--color-accent);border-radius:2px;width:18px;height:2px}.page-heading h1{letter-spacing:-.03em;font-size:36px;font-weight:800;line-height:1.05}.brand{letter-spacing:-.01em;font-weight:700}.brand:before{background:linear-gradient(150deg, var(--color-accent) 0%, var(--color-accent-active) 100%);position:relative;box-shadow:0 6px 14px #0e7c8659,inset 0 1px #ffffff59}.topbar{box-shadow:0 1px 0 var(--color-border), 0 10px 30px #102a2e0d}.system-switcher button.active{box-shadow:inset 0 -2px 0 var(--color-accent)}.sidebar{background-image:linear-gradient(180deg, var(--color-sidebar-bg), var(--color-sidebar-bg))}@supports (color:color-mix(in lab, red, red)){.sidebar{background-image:linear-gradient(180deg, var(--color-sidebar-bg), color-mix(in srgb, var(--color-sidebar-bg) 88%, var(--color-accent-subtle)))}}.nav-group-button,.nav-section button{position:relative}.nav-section button{transition:color var(--duration-fast) var(--ease-apple), background var(--duration-fast) var(--ease-apple), transform var(--duration-fast) var(--ease-apple)}.nav-section button:hover{transform:translate(2px)}.nav-section button.active:before,.nav-group-button.current:before{content:"";background:linear-gradient(180deg, var(--color-accent), var(--color-accent-active));width:3px;height:56%;animation:barIn .32s var(--ease-emphasized) both;border-radius:0 3px 3px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.module-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg-raised);box-shadow:var(--shadow-card);animation:cardRise .5s var(--ease-emphasized) both;position:relative;overflow:hidden}.module-hero h2{letter-spacing:-.02em;font-weight:750}.module-mark{box-shadow:0 8px 18px #0e7c8652,inset 0 1px #ffffff4d;background:linear-gradient(150deg, var(--color-accent), var(--color-accent-active))!important}.table-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-raised);box-shadow:var(--shadow-sm);margin-top:var(--space-16)}tbody tr{transition:background var(--duration-fast) var(--ease-apple)}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-grid article{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-raised);box-shadow:var(--shadow-card);transition:transform .26s var(--ease-emphasized), box-shadow .26s var(--ease-emphasized), border-color .26s;animation:cardRise .5s var(--ease-emphasized) both;position:relative;overflow:hidden}.metric-grid article:nth-child(2){animation-delay:50ms}.metric-grid article:nth-child(3){animation-delay:.1s}.metric-grid article:nth-child(4){animation-delay:.15s}.metric-grid article:nth-child(5){animation-delay:.2s}.metric-grid article:before{content:"";background:var(--color-accent);transform-origin:0;height:3px;transition:transform .3s var(--ease-emphasized);position:absolute;inset:0 0 auto;transform:scaleX(0)}.metric-grid article:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-hover);transform:translateY(-3px)}.metric-grid article:hover:before{transform:scaleX(1)}.metric-grid strong{letter-spacing:-.025em;font-size:30px;font-weight:750;line-height:1.1}.status{align-items:center;gap:6px;font-weight:600;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.status.pending:before{animation:1.7s ease-in-out infinite pulseDot}.primary{background-image:linear-gradient(135deg, var(--color-accent), var(--color-accent-active));isolation:isolate;position:relative;overflow:hidden}.primary:after{content:"";z-index:-1;transition:transform .6s var(--ease-emphasized);background:linear-gradient(115deg,#0000 32%,#fff6 50%,#0000 68%);position:absolute;inset:0;transform:translate(-130%)}.primary:hover:after{transform:translate(130%)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:6px}.sidebar::-webkit-scrollbar{width:9px;height:9px}.workspace::-webkit-scrollbar{width:9px;height:9px}.table-scroll::-webkit-scrollbar{width:9px;height:9px}.dialog-backdrop section::-webkit-scrollbar{width:9px;height:9px}.sidebar::-webkit-scrollbar-thumb{background:var(--color-border-hover);background-clip:padding-box;border:2px solid #0000;border-radius:9999px}.table-scroll::-webkit-scrollbar-thumb{background:var(--color-border-hover);background-clip:padding-box;border:2px solid #0000;border-radius:9999px}.dialog-backdrop section::-webkit-scrollbar-thumb{background:var(--color-border-hover);background-clip:padding-box;border:2px solid #0000;border-radius:9999px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary);background-clip:padding-box}.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary);background-clip:padding-box}.login-screen{background-color:var(--color-bg-secondary);-webkit-backdrop-filter:none;overflow:hidden}.login-screen:before{content:"";z-index:0;background-image:radial-gradient(720px 520px at 78% 12%, var(--color-accent-subtle), transparent 60%), radial-gradient(680px 520px at 14% 92%, var(--color-accent-2-soft), transparent 58%), linear-gradient(var(--color-border) 1px, transparent 1px), linear-gradient(90deg, var(--color-border) 1px, transparent 1px);background-size:auto,auto,46px 46px,46px 46px;animation:26s linear infinite gridDrift;position:absolute;inset:-10%;-webkit-mask-image:radial-gradient(120% 100% at 50% 40%,#000 35%,#0000 88%);mask-image:radial-gradient(120% 100% at 50% 40%,#000 35%,#0000 88%)}.login-statement{z-index:0;gap:var(--space-12);pointer-events:none;-webkit-user-select:none;user-select:none;justify-items:end;display:grid;position:absolute;bottom:-6vh;right:-2vw}.login-tagline{padding-right:var(--space-10);color:var(--color-text-tertiary);font-size:var(--text-caption-small);font-weight:var(--font-weight-medium);letter-spacing:.5em;animation:cardRise .6s var(--ease-emphasized) .35s both;display:none}.login-ghost{font-family:var(--font-display);letter-spacing:-.04em;color:#0000;-webkit-text-stroke:1.5px var(--color-border-hover);opacity:.5;transition:-webkit-text-stroke-color var(--duration-slow) var(--ease-apple);animation:ghostIn .9s var(--ease-emphasized) .1s both;font-size:clamp(180px,34vw,460px);font-weight:800;line-height:.8}.login-screen:has(.login-card:focus-within) .login-ghost{-webkit-text-stroke-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.login-screen:has(.login-card:focus-within) .login-ghost{-webkit-text-stroke-color:color-mix(in srgb, var(--color-accent) 55%, transparent)}}.login-card{z-index:1;text-align:left;border:1px solid var(--color-border-raised);box-shadow:var(--shadow-dialog);animation:cardRise .6s var(--ease-emphasized) both;position:relative;overflow:hidden}.login-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-accent-2));height:4px;position:absolute;inset:0 0 auto}.login-logo{background:linear-gradient(150deg, var(--color-accent), var(--color-accent-active));box-shadow:var(--shadow-logo)}.login-card h1{text-align:left;letter-spacing:-.025em;font-size:27px}.login-card>p{text-align:left}@media (min-width:64rem){.login-screen{padding:var(--space-48) clamp(var(--space-24), 6vw, 96px);justify-items:end}.login-statement{right:auto;left:clamp(var(--space-24), 6vw, 120px);bottom:clamp(var(--space-24), 7vh, 88px);justify-items:start}.login-tagline{display:block}.login-ghost{font-size:clamp(220px,30vw,480px)}}@media (max-width:30rem){.login-card{padding:var(--space-32) var(--space-24)}}@keyframes cardRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes barIn{0%{transform:translateY(-50%)scaleY(0)}to{transform:translateY(-50%)scaleY(1)}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@keyframes gridDrift{0%{background-position:0 0,0 0,0 0,0 0}to{background-position:0 0,0 0,46px 46px,46px 46px}}@keyframes ghostIn{0%{opacity:0;transform:translateY(24px)}to{opacity:.5;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
