/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@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;--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{.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.hidden{display:none}.table{display:table}}:root{--ink:#17211d;--muted:#7b8781;--line:#e8edea;--green:#247557;--bg:#f5f7f5}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}main{min-height:100vh;display:flex}.sidebar{color:#fff;background:#183d31;flex-direction:column;width:230px;padding:28px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:0 8px 34px;display:flex}.brandMark{color:#28483d;background:#f2d49e;border-radius:12px;place-items:center;width:40px;height:40px;font-family:serif;font-size:21px;font-weight:800;display:grid}.brand b,.brand small,.owner b,.owner small{display:block}.brand small,.owner small{color:#a9c4ba;margin-top:4px;font-size:11px}.sidebar nav{gap:8px;display:grid}.sidebar nav button{color:#b9cec6;text-align:left;background:0 0;border:0;border-radius:9px;padding:13px 14px}.sidebar nav button.active{color:#fff;background:#2e5a4b;font-weight:700}.sideTip{color:#b9cec6;background:#234b3e;border:1px solid #3a6254;border-radius:12px;gap:8px;margin-top:auto;padding:16px;font-size:12px;display:grid}.sideTip b{color:#fff;margin-bottom:2px;font-size:13px}.owner{border-top:1px solid #315448;align-items:center;gap:10px;margin-top:18px;padding:18px 6px 0;display:flex}.owner>span{color:#294b40;background:#e8c684;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.owner b{font-size:13px}.content{width:calc(100% - 230px);max-width:1500px;margin-left:230px;padding:34px 38px 60px}header{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}h1{margin:0 0 6px;font-size:27px}header p{color:var(--muted);margin:0;font-size:13px}.actions{gap:10px;display:flex}.primary,.secondary{border:1px solid var(--line);border-radius:8px;padding:10px 15px;font-weight:700}.primary{color:#fff;background:#267558;border-color:#267558}.primary:hover{background:#1e6249}.secondary{color:#31423b;background:#fff}.stats{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;padding:18px 20px;display:flex}.stat span,.stat strong,.stat small{display:block}.stat span{color:#69756f;font-size:13px}.stat strong{margin:9px 0 4px;font-size:27px}.stat small{color:#99a29e;font-size:11px}.stat>i{border-radius:9px;place-items:center;width:34px;height:34px;font-style:normal;display:grid}.stat.blue>i{color:#4b77b8;background:#edf4ff}.stat.green>i{color:#298260;background:#e9f7f0}.stat.orange>i{color:#d68132;background:#fff3e6}.stat.purple>i{color:#8368b3;background:#f2edfb}.panel{border:1px solid var(--line);background:#fff;border-radius:13px;overflow:hidden}.toolbar{border-bottom:1px solid var(--line);justify-content:space-between;gap:14px;padding:16px 18px;display:flex}.search{color:#94a09a;border:1px solid #dfe5e1;border-radius:8px;align-items:center;width:300px;padding:0 11px;display:flex}.search input{border:0;outline:0;width:100%;padding:9px;font-size:13px}.filters{background:#f2f5f3;border-radius:8px;padding:3px;display:flex}.filters button{color:#6a756f;background:0 0;border:0;border-radius:6px;padding:7px 12px;font-size:12px}.filters .selected{color:#1c5f47;background:#fff;font-weight:700;box-shadow:0 1px 3px #ccd4cf}.tableWrap{scrollbar-gutter:stable;overflow-x:scroll}.tableWrap::-webkit-scrollbar{height:7px}.tableWrap::-webkit-scrollbar-thumb{background:#bfc7c1;border-radius:4px}.tableWrap::-webkit-scrollbar-track{background:#f0f2f0;border-radius:4px}table{border-collapse:collapse;width:100%;min-width:980px}th{text-align:left;color:#87908c;background:#fafbfa;padding:11px 16px;font-size:11px;font-weight:600}td{vertical-align:middle;border-top:1px solid #edf0ee;padding:14px 16px;font-size:12px}td>b,td>small{display:block}td>small{color:#9aa39f;margin-top:5px;font-size:10px}.person{align-items:center;gap:10px;display:flex}.person>span{color:#256e53;background:#e7f2ed;border-radius:10px;place-items:center;width:35px;height:35px;font-weight:800;display:grid}.person b,.person small{display:block}.person small{color:#a1aaa5;margin-top:4px;font-size:10px}.card{border-radius:5px;padding:5px 8px;font-weight:700}.card.次卡{color:#3973aa;background:#eaf4ff}.card.季卡{color:#267759;background:#edf8f2}.card.半年卡{color:#7a5ea8;background:#f3edfb}.status{white-space:nowrap;border-radius:16px;padding:6px 9px;font-size:11px}.status.green{color:#27785a;background:#eaf7f1}.status.orange{color:#b36824;background:#fff3e6}.status.red{color:#b9544d;background:#ffefed}.status.blue{color:#3c72a8;background:#edf5ff}.uses em{color:#9aa29e;font-size:10px;font-style:normal;font-weight:400}.bar{background:#edf0ee;border-radius:3px;width:74px;height:4px;margin-top:7px}.bar i{background:#3f9271;border-radius:3px;height:100%;display:block}.muted{color:#9aa39f}.rowActions{gap:5px;display:flex}.rowActions button{color:#65716b;background:#fff;border:1px solid #e1e6e3;border-radius:6px;min-width:30px;height:29px;font-size:11px}.rowActions button:hover{color:#276f54;border-color:#6b9c89}.panel footer{border-top:1px solid var(--line);color:#7e8983;padding:13px 18px;font-size:11px}.panel footer span{float:right}.empty{text-align:center;color:#89938e;padding:55px}.overlay{z-index:20;background:#13251f99;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:15px;width:min(630px,100%);overflow:hidden;box-shadow:0 24px 70px #0b1c1660}.modalHead{border-bottom:1px solid var(--line);justify-content:space-between;padding:21px 24px 16px;display:flex}.modalHead h2{margin:0 0 5px;font-size:19px}.modalHead p{color:#89938e;margin:0;font-size:11px}.modalHead button{color:#7f8a84;background:0 0;border:0;font-size:25px}.formGrid{grid-template-columns:1fr 1fr;gap:15px;padding:21px 24px;display:grid}.formGrid label{color:#64706a;font-size:11px;font-weight:700}.formGrid input,.formGrid select{color:#26342e;border:1px solid #dce3df;border-radius:7px;outline:0;width:100%;margin-top:7px;padding:9px 10px;display:block}.formGrid input:focus,.formGrid select:focus{border-color:#3f8b6d}.formGrid .full{grid-column:1/-1}.modalFoot{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;padding:15px 24px;display:flex}.toast{color:#fff;z-index:30;background:#173e31;border-radius:9px;align-items:center;gap:9px;max-width:min(430px,100vw - 32px);padding:13px 18px;font-size:12px;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 10px 30px #16271f40}.toast>span{background:#ffffff24;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-weight:800;display:grid}.toast.error{background:#9d3434}.toast.info{background:#315d7e}button:disabled{cursor:not-allowed;opacity:.58}.importModal{width:min(680px,100%)}.importSummary{grid-template-columns:110px 110px 1fr;gap:12px;padding:18px 24px;display:grid}.importSummary>div{background:#f2f7f4;border-radius:9px;padding:12px}.importSummary strong,.importSummary span{display:block}.importSummary strong{color:#267557;font-size:21px}.importSummary span{color:#7d8882;font-size:10px}.importSummary p{color:#7e8983;font-size:11px;line-height:1.7}.preview{padding:0 24px 20px}.preview table{border:1px solid var(--line);min-width:0}.preview .cover,.preview .new{border-radius:5px;padding:4px 7px}.preview .cover{color:#b56b27;background:#fff0df}.preview .new{color:#267557;background:#e8f6ef}@media (width<=1000px){.stats{grid-template-columns:1fr 1fr}.toolbar{flex-direction:column;align-items:flex-start}.search{width:100%}.filters{width:100%;overflow:auto}}@media (width<=720px){.sidebar{width:100%;height:auto;padding:16px;position:static}.sidebar nav,.sideTip,.owner{display:none}main{display:block}.brand{padding:0}.content{width:100%;margin:0;padding:22px 14px}header{align-items:flex-start;gap:16px}.actions{flex-direction:column}.stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.panel footer span{display:none}.filters button{white-space:nowrap}.formGrid{grid-template-columns:1fr}.formGrid .full{grid-column:auto}.importSummary{grid-template-columns:1fr 1fr}.importSummary p{grid-column:1/-1}}.owner .logout{color:#a9c4ba;background:0 0;border:0;margin-left:auto;padding:6px;font-size:11px}.owner .logout:hover{color:#fff}.loginPage{background:#f7f6f1;grid-template-columns:minmax(380px,1.05fr) minmax(440px,.95fr);min-height:100vh;display:grid}.loginBrand{color:#fff;background:#173e31;place-items:center;padding:60px;display:grid;position:relative;overflow:hidden}.loginBrand:before{content:"";border:1px solid #d8bd7c40;border-radius:50%;width:520px;height:520px;position:absolute;bottom:-230px;left:-180px;box-shadow:0 0 0 70px #d8bd7c12,0 0 0 140px #d8bd7c0b}.loginBrand:after{content:"学";color:#ffffff08;font-family:serif;font-size:360px;position:absolute;top:-70px;right:-30px}.loginBrandContent{z-index:1;max-width:510px;position:relative}.loginSeal{color:#24483b;background:#e8c684;border-radius:14px;place-items:center;width:52px;height:52px;font-family:serif;font-size:26px;font-weight:800;display:grid;box-shadow:0 10px 30px #0d241c60}.loginBrand p{color:#d9e7e1;letter-spacing:2px;margin:18px 0 70px;font-size:16px}.loginBrand h1{letter-spacing:2px;margin:0 0 28px;font-family:serif;font-size:44px;font-weight:600;line-height:1.45}.loginBrand small{color:#d9bd7a;letter-spacing:2px}.loginPanel{place-items:center;padding:40px;display:grid}.loginCard{background:#fff;border:1px solid #e4e8e5;border-radius:18px;width:min(390px,100%);padding:38px;box-shadow:0 28px 70px #233c3220}.loginHeading{margin-bottom:30px}.loginHeading span{color:#267558;background:#eaf5f0;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:700}.loginHeading h2{margin:19px 0 7px;font-size:29px}.loginHeading p{color:#8a958f;margin:0;font-size:13px}.loginCard label{color:#56635d;margin-top:17px;font-size:12px;font-weight:700;display:block}.loginCard input{color:#223129;background:#fcfdfc;border:1px solid #dbe2de;border-radius:9px;outline:none;width:100%;margin-top:8px;padding:12px 13px;display:block}.loginCard input:focus{border-color:#378469;box-shadow:0 0 0 3px #37846918}.loginError{color:#b34f47;background:#fff0ee;border-radius:8px;margin-top:16px;padding:10px 12px;font-size:12px}.loginButton{color:#fff;background:#267558;border:0;border-radius:9px;width:100%;margin-top:22px;padding:13px;font-weight:700;box-shadow:0 8px 20px #26755835}.loginButton:hover{background:#1e6249}.loginButton:disabled{opacity:.65;cursor:wait}.loginSecure{text-align:center;color:#919b96;margin-top:18px;font-size:10px}@media (width<=800px){.loginPage{background:#173e31;padding:18px;display:block}.loginBrand{border-radius:15px 15px 0 0;min-height:210px;padding:28px;display:block}.loginBrandContent{max-width:none}.loginBrand p{margin:10px 0 30px}.loginBrand h1{font-size:29px}.loginBrand small{display:none}.loginPanel{padding:0}.loginCard{box-shadow:none;border-radius:0 0 15px 15px;padding:28px}}.pageLoading{color:#718078;place-items:center;min-height:65vh;display:grid}.toolbarHint{color:#8b9690;align-self:center;font-size:11px}.panelTitle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.panelTitle b{font-size:14px}.panelTitle span{color:#929d97;font-size:10px}.cardStack,.statusStack{flex-wrap:wrap;gap:5px;max-width:260px;display:flex}.statusStack{flex-direction:column;align-items:flex-start}.cardLines{gap:8px;display:grid}.cardLines>div b,.cardLines>div small{display:block}.cardLines small{color:#909a95;margin-top:3px;font-size:10px}.uploadGuide{background:#edf6f2;border:1px dashed #9bbdab;border-radius:13px;align-items:center;gap:16px;margin-bottom:18px;padding:18px 20px;display:flex}.uploadGuide .uploadIcon{color:#fff;background:#267558;border-radius:10px;place-items:center;width:44px;height:44px;font-weight:800;display:grid}.uploadGuide div:nth-child(2){flex:1}.uploadGuide b{font-size:13px}.uploadGuide p{color:#6e7a74;margin:5px 0 0;font-size:11px;line-height:1.7}.subjectPill{color:#276f55;background:#edf5f1;border-radius:5px;padding:5px 8px;font-weight:700}.analyticsGrid{grid-template-columns:1.2fr .8fr;gap:18px;display:grid}.subjectStats{padding:8px 18px 16px}.subjectRow{border-bottom:1px solid #edf0ee;grid-template-columns:32px 150px 1fr 34px;align-items:center;gap:12px;padding:14px 0;display:grid}.subjectRow:last-child{border:0}.subjectRow .rank{color:#a1aaa5;font-size:11px}.subjectRow b,.subjectRow small{display:block}.subjectRow small{color:#909a95;margin-top:4px;font-size:10px}.subjectRow>strong{text-align:right}.statBar{background:#edf1ef;border-radius:5px;height:7px}.statBar i{background:linear-gradient(90deg,#2b765a,#72b598);border-radius:5px;height:100%;display:block}.weekBars{justify-content:space-around;align-items:flex-end;height:300px;padding:34px 18px 20px;display:flex}.weekBars>div{flex-direction:column;justify-content:flex-end;align-items:center;gap:9px;height:100%;display:flex}.verticalBar{background:#eef3f0;border-radius:8px 8px 3px 3px;align-items:flex-end;width:34px;height:220px;display:flex;position:relative}.verticalBar i{background:#4a9677;border-radius:7px 7px 3px 3px;width:100%;display:block}.verticalBar b{text-align:center;width:100%;font-size:11px;position:absolute;top:-22px}.weekBars span{color:#84908a;font-size:10px}.scheduleGrid{scrollbar-gutter:stable;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;margin-bottom:18px;display:grid;overflow-x:scroll}.scheduleGrid::-webkit-scrollbar{height:7px}.scheduleGrid::-webkit-scrollbar-thumb{background:#bfc7c1;border-radius:4px}.scheduleGrid::-webkit-scrollbar-track{background:#f0f2f0;border-radius:4px}.courseRuleBar::-webkit-scrollbar{height:6px}.courseRuleBar::-webkit-scrollbar-thumb{background:#bfc7c1;border-radius:3px}.courseRuleBar::-webkit-scrollbar-track{background:#f0f2f0;border-radius:3px}.dayColumn{border:1px solid var(--line);background:#fff;border-radius:11px;min-height:250px;padding:9px}.dayHead{justify-content:space-between;align-items:center;padding:6px 5px 12px;display:flex}.dayHead b{font-size:13px}.dayHead span{color:#939e98;font-size:9px}.courseBlock{text-align:left;color:#25352e;background:#eef7f3;border:0;border-left:3px solid #388367;border-radius:7px;width:100%;margin-bottom:8px;padding:10px}.courseBlock:hover{background:#e0f1e9;transform:translateY(-1px)}.courseBlock span,.courseBlock b,.courseBlock small,.courseBlock em{display:block}.courseBlock span{color:#4a846d;font-size:10px}.courseBlock b{margin:5px 0;font-size:12px}.courseBlock small{color:#7a8982;font-size:9px}.courseBlock em{color:#ad6b31;margin-top:9px;font-size:9px;font-style:normal}.breaksPanel{margin-top:0}.breakList{padding:3px 18px 15px}.breakList>div{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:13px 0;display:flex}.breakList>div:last-child{border:0}.breakIcon{color:#ba722e;background:#fff1df;border-radius:9px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.breakList div div{flex:1}.breakList b,.breakList small{display:block}.breakList small{color:#8b9690;margin-top:4px;font-size:10px}.breakList strong{color:#277557;font-size:11px}.wideModal{width:min(790px,100%);max-height:92vh;overflow:auto}.fieldLabel{color:#64706a;font-size:11px;font-weight:700}.multiCards{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.multiCards button{color:#7b8781;background:#fff;border:1px solid #dbe2de;border-radius:7px;padding:8px 11px}.multiCards button.checked{color:#267558;background:#eaf6f0;border-color:#3a8669;font-weight:700}.cardEditors{gap:10px;display:grid}.cardEditors>div{background:#fafcfa;border:1px solid #e1e7e3;border-radius:9px;padding:13px}.cardEditHead{align-items:center;gap:9px;margin-bottom:11px;display:flex}.miniGrid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.miniGrid label{font-size:10px}.formWarning{color:#a86a30;background:#fff4e8;border-radius:7px;padding:9px;font-size:11px}.extensionNote{color:#33765c;background:#eef7f3;border-radius:8px;padding:11px;font-size:11px}.courseNumbers{grid-template-columns:repeat(3,1fr);gap:10px;padding:20px 24px;display:grid}.courseNumbers>div{background:#f1f6f3;border-radius:9px;padding:13px}.courseNumbers strong,.courseNumbers span{display:block}.courseNumbers strong{color:#247557;font-size:23px}.courseNumbers span{color:#7e8983;font-size:10px}.nameColumns{grid-template-columns:1fr 1fr;gap:18px;padding:0 24px 22px;display:grid}.nameColumns>div>b{margin-bottom:9px;font-size:12px;display:block}.nameColumns>div>div{flex-wrap:wrap;gap:6px;display:flex}.nameColumns span{background:#f3f6f4;border-radius:5px;padding:6px 8px;font-size:10px}.nameColumns small{color:#909a95}.signupPage{color:#203129;background:#f4f3ed;min-height:100vh;display:block}.signupHero{color:#fff;text-align:center;background:#173e31;margin:0;padding:48px 20px 62px;display:block;position:relative;overflow:hidden}.signupHero:after{content:"";border:1px solid #e4c78135;border-radius:50%;width:520px;height:520px;position:absolute;inset:auto -80px -300px;box-shadow:0 0 0 65px #e4c78112,0 0 0 130px #e4c78109}.signupLogo{color:#284a3e;background:#e8c684;border-radius:12px;place-items:center;width:44px;height:44px;margin:0 auto 12px;font-family:serif;font-size:23px;font-weight:800;display:grid}.signupHero>span{color:#c5d8d0;letter-spacing:2px;font-size:12px}.signupHero h1{margin:28px 0 10px;font-family:serif;font-size:38px}.signupHero p{color:#c5d8d0;font-size:13px}.weekTag{color:#e6d19d;border:1px solid #557568;border-radius:20px;margin-top:16px;padding:7px 13px;font-size:10px;display:inline-block}.signupContent{z-index:1;background:#fff;border-radius:16px;width:min(760px,100% - 28px);margin:-28px auto 0;padding:24px;position:relative;box-shadow:0 20px 60px #16322818}.signupTitle{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.signupTitle b,.signupTitle span{display:block}.signupTitle b{font-size:16px}.signupTitle span{color:#8d9892;margin-top:5px;font-size:10px}.signupTitle em{color:#277557;background:#eaf6f0;border-radius:18px;padding:7px 10px;font-size:10px;font-style:normal}.signupCourses{gap:9px;display:grid}.signupCourses label{cursor:pointer;border:1px solid #e1e6e3;border-radius:11px;grid-template-columns:62px 1fr 75px;align-items:center;gap:12px;padding:12px;display:grid;position:relative}.signupCourses label.chosen{background:#f0f8f4;border-color:#318266;box-shadow:0 0 0 2px #31826615}.signupCourses input{accent-color:#267558;position:absolute;top:10px;right:10px}.courseDate{text-align:center;border-right:1px solid #e5e9e7}.courseDate b,.courseDate span{display:block}.courseDate b{font-size:12px}.courseDate span{color:#3b8065;margin-top:5px;font-size:10px}.courseInfo>span{color:#358267;font-size:9px}.courseInfo h3{margin:4px 0;font-size:14px}.courseInfo p{color:#87928c;margin:0;font-size:10px}.courseCount{text-align:right}.courseCount b,.courseCount span,.courseCount small{display:block}.courseCount b{color:#28785a;font-size:19px}.courseCount span,.courseCount small{color:#89948e;font-size:9px}.courseCount small{margin-top:5px}.signupForm{border-top:1px solid #e6eae8;margin-top:20px;padding-top:18px}.signupForm label{color:#5e6b65;font-size:11px;font-weight:700}.signupForm input{border:1px solid #d9e1dd;border-radius:9px;outline:0;width:100%;margin-top:7px;padding:12px;display:block}.signupForm input:focus{border-color:#398469}.signupForm>button,.signupSuccess button{color:#fff;background:#267558;border:0;border-radius:9px;width:100%;margin-top:14px;padding:13px;font-weight:700}.signupForm>button:disabled{opacity:.4}.signupForm>p{text-align:center;color:#9aa39f;font-size:9px}.signupSuccess{text-align:center;padding:45px 20px}.signupSuccess>div{color:#267558;background:#e8f7f0;border-radius:50%;place-items:center;width:58px;height:58px;margin:auto;font-size:27px;display:grid}.signupSuccess h2{margin:18px 0 7px}.signupSuccess p{color:#7d8882}.signupLoading{text-align:center;color:#89948e;padding:40px}.signupFooter{text-align:center;color:#9ca59f;padding:26px;font-size:9px}@media (width<=1100px){.analyticsGrid{grid-template-columns:1fr}.scheduleGrid{grid-template-columns:repeat(7,160px)}}@media (width<=720px){.uploadGuide{align-items:flex-start}.uploadGuide .secondary{display:none}.subjectRow{grid-template-columns:25px 120px 1fr 25px}.miniGrid{grid-template-columns:1fr 1fr}.signupHero h1{font-size:30px}.signupContent{padding:17px}.signupCourses label{grid-template-columns:52px 1fr}.courseCount{display:none}.courseNumbers,.nameColumns{grid-template-columns:1fr}.toolbarHint{display:none}}textarea{font:inherit;resize:vertical}.ghost{color:#537066;background:0 0;border:1px solid #0000;border-radius:8px;padding:10px 13px;font-weight:700}.ghost:hover{color:#246c51;background:#edf4f0}.activeFilter{color:#236b50!important;background:#edf7f2!important;border-color:#8fb9a8!important}.filters{border-bottom:1px solid var(--line);border-radius:0;align-items:center;gap:7px;padding:10px 18px;display:flex;overflow-x:auto}.filters select,.filters input{color:#53615b;background:#fff;border:1px solid #dce3df;border-radius:7px;min-width:112px;height:33px;padding:0 8px;font-size:11px}.filters label{color:#7d8983;white-space:nowrap;align-items:center;gap:5px;font-size:10px;display:flex}.filters label input{min-width:125px}.filters>span{color:#9aa39f;font-size:10px}.rowActions{flex-wrap:wrap;max-width:185px}.rowActions .openAction{color:#267558;background:#eff8f4;border-color:#9bc7b5}.rowActions .renewAction{color:#6b4c1e;background:#fdf6e8;border-color:#d4b87a}.rowActions .dangerText{color:#b04c46}.danger{color:#a4423c;background:#fff2f0;border:1px solid #edc3bf;border-radius:8px;padding:10px 14px;font-weight:700}.renewalHistory{flex-direction:column;gap:6px;margin-top:4px;display:flex}.renewalHistory>div{background:#f8f5ef;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.renewalHistory>div small{color:#888}.cardEditHead small{color:#89958f;margin-left:auto;font-size:10px}.sessionEdit{grid-template-columns:repeat(5,1fr);gap:9px;padding:0 24px 20px;display:grid}.sessionEdit label{color:#6f7b75;font-size:10px}.sessionEdit input{border:1px solid #dce3df;border-radius:7px;width:100%;margin-top:5px;padding:8px;display:block}.sessionEdit button{align-self:end}.courseRuleBar{scrollbar-gutter:stable;gap:8px;margin-bottom:13px;padding-bottom:2px;display:flex;overflow-x:scroll}.courseRuleBar button{text-align:left;background:#fff;border:1px solid #dfe7e2;border-radius:9px;flex:none;padding:9px 12px}.courseRuleBar b,.courseRuleBar small{display:block}.courseRuleBar b{font-size:11px}.courseRuleBar small{color:#8a958f;margin-top:4px;font-size:9px}.dayHead>div b,.dayHead>div small{display:block}.dayHead>div small{color:#9aa39f;margin-top:3px;font-size:9px}.periodGroup{border-top:1px solid #edf1ef;min-height:62px;margin-top:3px;padding-top:7px}.periodGroup>em{color:#8d9892;margin:0 3px 7px;font-size:9px;font-style:normal;display:block}.periodEmpty{text-align:center;color:#b2bab6;padding:10px;font-size:9px;display:block}.courseBlock em{color:#9a642f!important}.reservationAdd{margin-bottom:9px;gap:6px!important;display:flex!important}.reservationAdd input{border:1px solid #dce3df;border-radius:7px;min-width:0;padding:8px}.removable{align-items:center;gap:5px;display:inline-flex!important}.removable button{color:#9f514a;background:0 0;border:0;padding:0;font-size:14px}.campaignModal{width:min(880px,100%);max-height:92vh;overflow:auto}.campaignForm{grid-template-columns:2fr 1fr;gap:14px;padding:21px 24px;display:grid}.campaignForm>label{color:#64706a;font-size:11px;font-weight:700}.campaignForm input,.campaignForm textarea{border:1px solid #dce3df;border-radius:8px;outline:0;width:100%;margin-top:7px;padding:10px;display:block}.campaignForm .full{grid-column:1/-1}.campaignSessions{grid-template-columns:1fr 1fr;gap:8px;max-height:330px;margin-top:8px;display:grid;overflow:auto}.campaignSessions label{cursor:pointer;border:1px solid #dfe5e1;border-radius:9px;padding:10px 12px;position:relative}.campaignSessions label.chosen{background:#eef8f3;border-color:#39866a}.campaignSessions input{width:auto;position:absolute;top:5px;right:9px}.campaignSessions b,.campaignSessions span{padding-right:22px;display:block}.campaignSessions b{font-size:10px}.campaignSessions span{color:#76827c;margin-top:5px;font-size:10px}.sharePanel{text-align:center;padding:30px}.sharePanel img{border:1px solid var(--line);border-radius:12px;width:260px;height:260px}.sharePanel h3{margin:16px 0 6px}.sharePanel p{color:#7c8882;font-size:11px}.shareUrl{word-break:break-all;color:#537066;background:#f1f5f3;border-radius:7px;padding:10px;font-size:10px}.sharePanel .modalFoot{margin:20px -30px -30px}.campaignNotice{border-bottom:1px solid var(--line);background:#f1f6f3;justify-content:space-between;align-items:center;padding:7px 24px;display:flex}.campaignNotice span{color:#6f7d76;font-size:10px}@media (width<=1000px){.actions{flex-wrap:wrap;justify-content:flex-end}.sessionEdit{grid-template-columns:1fr 1fr}.campaignSessions{grid-template-columns:1fr}}@media (width<=720px){.filters{flex-wrap:wrap;align-items:stretch}.filters select,.filters input{flex:1}.actions{justify-content:flex-start}.campaignForm{grid-template-columns:1fr}.campaignForm .full{grid-column:auto}.sessionEdit{grid-template-columns:1fr 1fr}.courseRuleBar{margin-top:-10px}.signupCourses label{grid-template-columns:70px 1fr}.sharePanel img{width:220px;height:220px}}.profileAction{color:#2a5c8a;background:#eef5fc;border-color:#9bc1de}.profileModal{max-height:92vh;overflow-y:auto}.profileStats{background:var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin:0;display:grid}.profileStats>div{text-align:center;background:#fff;padding:14px 18px}.profileStats>div strong{color:#2d3a34;font-size:22px;display:block}.profileStats>div span{color:#8a958f;font-size:10px}.profileSection{border-bottom:1px solid var(--line);padding:18px 24px}.profileSectionTitle{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.profileSectionTitle b{color:#2d3a34;font-size:13px}.profileSectionTitle span{color:#9aa39f;font-size:10px}.profileCard{background:#fbfcfb;border:1px solid #e5ebe8;border-radius:10px;margin-bottom:10px;padding:14px 16px}.profileCardHead{align-items:center;gap:9px;margin-bottom:10px;display:flex}.profileCardHead b{color:#3a4640;font-size:13px}.profileCardInfo{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.profileCardInfo>div{flex-direction:column;gap:2px;display:flex}.profileCardInfo label{color:#9aa39f;text-transform:uppercase;font-size:9px}.profileCardInfo span{color:#3a4640;font-size:13px;font-weight:600}.profileCardActions{gap:6px;margin-left:auto;display:flex}.miniBtn{cursor:pointer;background:#fff;border:1px solid #dce3df;border-radius:6px;padding:4px 10px;font-size:11px}.miniBtn.openBtn{color:#267558;background:#eff8f4;border-color:#9bc7b5}.miniBtn.pauseBtn{color:#8a5a1e;background:#fdf6e8;border-color:#d4b87a}.profileSubList{border-top:1px dashed #e0e6e2;margin-top:10px;padding-top:8px}.profileSubLabel{color:#7d8983;margin-bottom:5px;font-size:10px;font-weight:600}.profileSubItem{color:#53615b;align-items:center;gap:10px;padding:4px 0;font-size:12px;display:flex}.profileSubItem small{color:#9aa39f;font-size:11px}.profileTimeline{flex-direction:column;gap:8px;display:flex}.profileTimelineItem{background:#f8f5ef;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.profileTimelineContent{flex-direction:column;gap:3px;display:flex}.profileTimelineContent b{color:#3a4640;font-size:13px}.profileTimelineContent small{color:#8a958f;font-size:11px}.profileAttendance{background:var(--line);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.profileAttendanceRow{background:#fff;align-items:center;gap:12px;padding:8px 12px;display:flex}.profileAttDate{color:#53615b;min-width:85px;font-size:12px;font-weight:600}.profileAttSubject{color:#6f7b75;flex:1;font-size:12px}.delRecordBtn{color:#c44;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:11px}.delRecordBtn:hover{color:#a33;background:#fee}.editRecordBtn{color:#48c;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:11px}.editRecordBtn:hover{color:#36a;background:#eef5ff}.inlineEditForm{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.inlineEditForm input,.inlineEditForm select{border:1px solid var(--line);border-radius:4px;max-width:120px;padding:3px 6px;font-size:12px}.inlineEditForm input[type=date]{max-width:140px}.saveBtn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:3px 10px;font-size:11px}.saveBtn:hover{opacity:.85}.cancelBtn{border:1px solid var(--line);color:#6f7b75;cursor:pointer;white-space:nowrap;background:#fff;border-radius:4px;padding:3px 10px;font-size:11px}
