:root{--yellow:#ffd400;--ink:#191919;--muted:#74736e;--line:#e7e4dc;--paper:#f8f7f3;--white:#fff;--green:#1b8a58;--blue:#3971a8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}button,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:246px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 18px 22px;background:#1b1b1b;color:white}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 25px;border-bottom:1px solid #363636}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--yellow);color:#111;font-size:22px;font-weight:950}.brand div{display:grid;gap:3px}.brand strong{font-size:15px;letter-spacing:.08em}.brand small{color:#a8a8a8;font-size:10px}.system-switcher{position:relative;margin:14px 0 0}.system-switcher summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:9px 12px;border:1px solid #3b3b3b;border-radius:12px;background:#252525;color:white;list-style:none;cursor:pointer}.system-switcher summary::-webkit-details-marker{display:none}.system-switcher summary span{display:grid;gap:1px}.system-switcher summary small{color:#999;font-size:10px}.system-switcher summary strong{font-size:14px}.system-switcher summary b{color:#f2cc00;font-size:17px}.system-switcher-menu{position:absolute;z-index:40;top:calc(100% + 7px);left:0;width:238px;padding:7px;border:1px solid #393939;border-radius:13px;background:#242424;box-shadow:0 18px 45px #0008}.system-switcher-menu a,.system-switcher-menu>span{display:grid;gap:2px;padding:10px 11px;border-radius:9px;color:white}.system-switcher-menu a.active,.system-switcher-menu a:hover{background:#ffd400;color:#171717}.system-switcher-menu small{color:#aaa;font-size:11px}.system-switcher-menu a.active small,.system-switcher-menu a:hover small{color:#5e4d00}.system-switcher-menu .disabled{color:#777}.system-switcher-menu .account-center-link{margin-top:5px;border-top:1px solid #3d3d3d;border-radius:0 0 9px 9px}.sidebar>.system-switcher+nav{margin-top:16px}.topbar>.system-switcher{display:none}.sidebar nav{display:grid;gap:7px;margin-top:26px}.nav-item{display:flex;align-items:center;gap:11px;padding:12px;border-radius:11px;color:#c9c9c9;font-size:13px}.nav-item>span{display:grid;place-items:center;width:27px;height:27px;border:1px solid;border-radius:8px;font-size:10px}.nav-item.active,.nav-item:hover{background:var(--yellow);color:#111;font-weight:800}.sidebar-note{margin-top:auto;padding:15px;border:1px solid #383838;border-radius:13px;color:#e8e8e8;font-size:11px;line-height:1.5}.sidebar-note small{display:block;margin:6px 0 0 15px;color:#929292}.live-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#52cb89}.main-panel{min-width:0}.topbar{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 34px;border-bottom:1px solid var(--line);background:#fffdfacc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.eyebrow{margin:0;color:#a87e00;font-size:10px;font-weight:900;letter-spacing:.14em}.topbar h1{margin:3px 0 0;font-size:25px;letter-spacing:-.03em}.top-actions{display:flex;align-items:center;gap:9px}.top-actions button{min-height:40px;padding:0 14px;border-radius:10px;cursor:pointer}.outline-button{border:1px solid var(--line);background:white;color:#555}.primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:0;border-radius:10px;background:#1b1b1b;color:white;font-weight:800}.primary-button:hover{background:#8f7100}.avatar{display:grid;place-items:center;width:40px;height:40px;margin-left:6px;border-radius:50%;background:var(--yellow);font-weight:900}.account{display:grid;gap:2px;font-size:11px}.account small{color:var(--muted)}.content{width:min(1480px,100%);margin:0 auto;padding:26px 30px 55px}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.summary-grid article{position:relative;overflow:hidden;padding:19px 20px;border:1px solid var(--line);border-radius:16px;background:white}.summary-grid article:before{content:"";position:absolute;left:0;top:19px;width:4px;height:28px;border-radius:0 5px 5px 0;background:var(--yellow)}.summary-grid small,.summary-grid span{display:block;color:var(--muted);font-size:10px}.summary-grid strong{display:block;margin:6px 0 5px;font-size:27px;line-height:1}.calendar-card,.upcoming-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:white}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:19px}.section-head h2{margin:4px 0 0;font-size:21px}.section-head>a{color:#8a6b00;font-size:11px;font-weight:800}.calendar-actions{display:flex;gap:6px}.calendar-actions button,.calendar-actions select{min-height:35px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#faf9f6;font-size:10px;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden}.day-cell{min-height:248px;border-right:1px solid var(--line);background:#fff}.day-cell:last-child{border-right:0}.day-cell>header{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid var(--line);background:#faf9f6}.day-cell>header span{color:var(--muted);font-size:9px}.day-cell>header strong{font-size:13px}.day-cell.today>header{background:#fff5b3}.day-cell.today>header strong{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#1c1c1c;color:white}.day-events{display:grid;gap:7px;padding:8px}.event{display:grid;gap:3px;padding:9px;border:0;border-left:3px solid #d1aa00;border-radius:8px;background:#fff7ca;color:#24220f;text-align:left;cursor:pointer}.event time{font-size:8px;font-weight:900}.event b{font-size:10px;line-height:1.45}.event small{color:#6b6450;font-size:8px;line-height:1.45}.event.blue{border-left-color:var(--blue);background:#eaf3fb}.event.green{border-left-color:var(--green);background:#eaf8f1}.event:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0000000d}.calendar-hint{margin:14px 2px 0;color:var(--muted);font-size:10px}.calendar-range-controls{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#faf9f6}.calendar-range-controls form,.calendar-range-controls nav{display:flex;align-items:end;gap:8px}.calendar-range-controls a,.calendar-range-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid #d5d0c4;border-radius:9px;background:white;color:#1d1d1d;font-size:14px;font-weight:850;text-decoration:none;cursor:pointer}.calendar-range-controls button{border-color:#171717;background:#171717;color:white}.calendar-range-controls label{display:grid;gap:5px;color:#686359;font-size:13px;font-weight:800}.calendar-range-controls input{min-height:44px;padding:0 10px;border:1px solid #d5d0c4;border-radius:9px;background:white;font-size:15px}.calendar-range-controls form>span{padding-bottom:12px;color:#777168}.calendar-range-error{margin:-5px 0 16px;padding:11px 13px;border-radius:9px;background:#fee9e5;color:#963629;font-size:14px;font-weight:750}.upcoming-card{margin-top:17px}.course-table{display:grid}.course-table article,.table-head{display:grid;grid-template-columns:68px minmax(230px,1.25fr) minmax(180px,.9fr) 100px 78px;gap:18px;align-items:center}.table-head{padding:0 13px 10px;color:var(--muted);font-size:9px}.course-table article{min-height:72px;padding:11px 13px;border-top:1px solid var(--line);font-size:11px}.course-table article time{font-weight:900}.course-table article>div{display:grid;gap:4px}.course-table article b{font-size:12px}.course-table article small{color:#a07b00;font-size:9px;font-weight:800}.course-table article>span{color:#555}.course-table em{justify-self:start;padding:6px 8px;border-radius:99px;font-size:9px;font-style:normal;font-weight:800}.course-table em.ok{color:#176c45;background:#e8f7ef}.course-table em.wait{color:#8a5718;background:#fff0d2}@media (max-width:1120px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.brand{justify-content:center}.brand div{display:none}.nav-item{justify-content:center;font-size:0}.nav-item>span{font-size:10px}.sidebar-note{display:none}.calendar-grid{overflow-x:auto;grid-template-columns:repeat(7,145px)}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.app-shell{display:block}.sidebar{display:none}.topbar{align-items:flex-start;padding:16px 17px}.topbar h1{font-size:20px}.account,.outline-button{display:none}.top-actions .primary-button{padding:0 11px;font-size:11px}.content{padding:18px 13px 40px}.summary-grid{gap:8px}.summary-grid article{padding:16px}.calendar-card,.upcoming-card{padding:17px 13px;border-radius:16px}.section-head{align-items:flex-start}.calendar-actions button:first-child,.calendar-actions button:nth-child(3),.calendar-actions select{display:none}.course-table{overflow-x:auto}.course-table article,.table-head{min-width:760px}.topbar>.system-switcher{display:block;flex:0 0 108px;margin:0 7px 0 0}.topbar>.system-switcher summary{min-height:42px;padding:6px 9px;border-color:#ddd8ca;background:white;color:#171717}.topbar>.system-switcher summary small{display:none}.topbar>.system-switcher-menu{left:0}.calendar-range-controls{align-items:stretch;flex-direction:column}.calendar-range-controls nav{display:grid;grid-template-columns:repeat(3,1fr)}.calendar-range-controls nav a{padding:0 7px;font-size:13px}.calendar-range-controls form{display:grid;grid-template-columns:1fr auto 1fr;align-items:end}.calendar-range-controls form button{grid-column:1/-1}.calendar-range-controls input{width:100%;min-width:0}}.form-page{min-height:100vh;background:var(--paper)}.form-topbar{position:sticky;z-index:5;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:86px;padding:15px 34px;border-bottom:1px solid var(--line);background:#fffdfaeF;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.form-topbar>a{color:#6d6a62;font-size:11px;font-weight:800}.form-topbar>div{text-align:center}.form-topbar h1{margin:2px 0 0;font-size:23px}.form-topbar>.primary-button{justify-self:end}.course-form{width:min(1050px,calc(100% - 32px));margin:28px auto 70px;display:grid;gap:17px}.form-card{padding:29px;border:1px solid var(--line);border-radius:20px;background:white}.form-section-title{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.form-section-title>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--yellow);font-size:11px;font-weight:900}.form-section-title h2{margin:0 0 5px;font-size:20px}.form-section-title p{margin:0;color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid label,.session-editor label{display:grid;gap:7px;color:#4c4a44;font-size:11px;font-weight:800}.form-grid label.wide{grid-column:1/-1}.form-grid input,.form-grid select,.session-editor input,.session-editor select{width:100%;min-height:46px;padding:0 13px;border:1px solid #dcd8ce;border-radius:10px;background:white;outline:none}.form-grid input:focus,.form-grid select:focus,.session-editor input:focus,.session-editor select:focus{border-color:#caa700;box-shadow:0 0 0 3px #ffd4002c}.check-label{display:flex!important;grid-column:1/-1;grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}.check-label input{width:18px;min-height:18px;accent-color:#191919}.client-picker{position:relative;display:grid;grid-column:1/-1;gap:7px}.client-picker>label{color:#4c4a44;font-size:11px;font-weight:800}.client-search{display:grid;grid-template-columns:28px 1fr;align-items:center;min-height:48px;padding:0 12px;border:1px solid #dcd8ce;border-radius:10px;background:white}.client-search.open{border-color:#caa700;box-shadow:0 0 0 3px #ffd4002c}.client-search>span{color:#8c887e;font-size:20px}.form-grid .client-search input{min-height:44px;padding:0;border:0;box-shadow:none}.form-grid .client-search input:focus{border:0;box-shadow:none}.client-options{position:absolute;z-index:8;top:78px;left:0;right:0;overflow:hidden;border:1px solid #d8d4c8;border-radius:13px;background:white;box-shadow:0 18px 45px #33290020}.client-options>button{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;cursor:pointer}.client-options>button:last-child{border-bottom:0}.client-options>button:hover{background:#fffbed}.company-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#fff0a0;font-size:10px;font-weight:950}.client-options>button>span:nth-child(2){display:grid;gap:4px}.client-options strong{font-size:11px}.client-options small{color:var(--muted);font-size:8px}.client-options i{color:#866900;font-size:9px;font-style:normal;font-weight:900}.client-empty{display:grid;gap:6px;padding:16px}.client-empty strong{font-size:11px}.client-empty small{color:var(--muted);font-size:9px}.client-empty button{justify-self:start;margin-top:4px;padding:7px 9px;border:1px solid #d7bd36;border-radius:8px;background:#fff8cc;color:#705a00;font-size:9px;font-weight:900;cursor:pointer}.client-validation{margin:0;color:#8a6f24;font-size:9px;line-height:1.5}.client-validation.selected{color:#197048}.session-editor{display:grid;grid-template-columns:38px 1fr .7fr .7fr 1.3fr 1.1fr;gap:12px;align-items:end;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fcfbf8}.session-number{display:grid;place-items:center;width:34px;height:46px;border-radius:9px;background:#1c1c1c;color:white;font-weight:900}.add-session{margin-top:12px;min-height:42px;padding:0 14px;border:1px dashed #c8b55c;border-radius:10px;background:#fffbed;color:#725d00;font-size:11px;font-weight:900;cursor:pointer}.form-note{display:flex;gap:12px;padding:17px 20px;border-radius:14px;background:#191919;color:white;font-size:11px}.form-note span{color:#c9c9c9}.session-list{display:grid;gap:12px}.session-editor{position:relative}.session-remove{position:absolute;top:8px;right:8px;min-height:30px;padding:0 9px;border:1px solid #e8b9af;border-radius:7px;background:#fff2ef;color:#9b3f31;font-size:13px;font-weight:900;cursor:pointer}.add-session:disabled{border-color:#d9d5c9;background:#f2f1ed;color:#969289;cursor:not-allowed;opacity:.78}.instructor-page{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr);background:var(--paper)}.instructor-side{min-height:100vh;padding:26px 18px;background:#1b1b1b;color:white}.teacher-profile{display:grid;justify-items:center;gap:6px;margin:29px 0;padding:22px 12px;border:1px solid #383838;border-radius:15px}.teacher-profile>span{display:grid;place-items:center;width:56px;height:56px;margin-bottom:5px;border-radius:17px;background:var(--yellow);color:#111;font-size:22px;font-weight:950}.teacher-profile small{color:#6ed59d;font-size:9px}.instructor-side nav{display:grid;gap:7px}.instructor-side nav a{padding:12px 14px;border-radius:10px;color:#c5c5c5;font-size:12px}.instructor-side nav a.active,.instructor-side nav a:hover{background:var(--yellow);color:#111;font-weight:900}.instructor-main>header{display:flex;justify-content:space-between;align-items:center;min-height:88px;padding:17px 34px;border-bottom:1px solid var(--line);background:white}.instructor-main>header h1{margin:3px 0 0;font-size:24px}.instructor-main>header>a{color:#826600;font-size:10px;font-weight:900}.instructor-content{width:min(1150px,100%);margin:0 auto;padding:28px}.teacher-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:17px}.teacher-hero>div{padding:25px;border-radius:17px;background:var(--yellow)}.teacher-hero>div:nth-child(2),.teacher-hero>div:nth-child(3){border:1px solid var(--line);background:white}.teacher-hero small,.teacher-hero span{display:block;font-size:10px}.teacher-hero strong{display:block;margin:10px 0 7px;font-size:33px}.teaching-records{padding:25px;border:1px solid var(--line);border-radius:19px;background:white}.teaching-records select{min-height:37px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:white;font-size:10px}.teaching-records article{display:grid;grid-template-columns:90px minmax(250px,1fr) 110px 80px 76px;gap:16px;align-items:center;min-height:78px;border-top:1px solid var(--line);font-size:11px}.teaching-records article>div{display:grid;gap:5px}.teaching-records article>div span{color:var(--muted);font-size:9px}.teaching-records em{padding:6px 8px;border-radius:99px;background:#fff1bc;color:#785e00;font-size:9px;font-style:normal;font-weight:900;text-align:center}.teaching-records em.done{color:#176c45;background:#e8f7ef}.teaching-records article button{min-height:34px;border:1px solid var(--line);border-radius:8px;background:#faf9f6;font-size:9px;font-weight:800;cursor:pointer}@media (max-width:850px){.form-topbar{grid-template-columns:1fr auto}.form-topbar>div{display:none}.session-editor{grid-template-columns:38px 1fr 1fr}.session-editor label:nth-last-child(-n+2){grid-column:span 1}.instructor-page{grid-template-columns:1fr}.instructor-side{display:none}.teacher-hero{grid-template-columns:1fr}.teaching-records{overflow-x:auto}.teaching-records article{min-width:730px}}@media (max-width:580px){.form-topbar{padding:13px 16px}.course-form{width:min(100% - 20px,1050px);margin-top:13px}.form-card{padding:20px 16px}.form-grid{grid-template-columns:1fr}.check-label,.form-grid label.wide{grid-column:auto}.session-editor{grid-template-columns:34px 1fr}.session-editor label{grid-column:2}.form-note{flex-direction:column}.instructor-main>header{padding:16px}.instructor-content{padding:14px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.access-content{display:grid;gap:17px}.access-alert{display:flex;align-items:flex-start;gap:18px;padding:18px 20px;border-radius:15px;background:#1b1b1b;color:white}.access-alert>span{flex:0 0 auto;padding:6px 9px;border-radius:7px;background:var(--yellow);color:#111;font-size:9px;font-weight:950}.access-alert strong{font-size:13px}.access-alert p{margin:5px 0 0;color:#c3c3c3;font-size:10px;line-height:1.65}.access-summary{margin-bottom:0}.access-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:white}.access-head{align-items:center}.access-tools{display:flex;gap:8px}.access-tools input,.access-tools select{min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#faf9f6;font-size:10px;outline:none}.access-tools input{width:190px}.access-tools input:focus,.access-tools select:focus{border-color:#caa700;box-shadow:0 0 0 3px #ffd4002c}.permission-table{overflow-x:auto}.permission-row{min-width:1050px;display:grid;grid-template-columns:minmax(190px,1.3fr) repeat(5,minmax(91px,.72fr)) 90px 96px;gap:12px;align-items:center;min-height:72px;padding:11px 12px;border-top:1px solid var(--line);font-size:10px}.permission-header{min-height:auto;padding-top:0;border-top:0;color:var(--muted);font-size:9px}.person-cell{display:flex;align-items:center;gap:11px}.person-cell>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#fff2a6;font-weight:950}.person-cell>div{display:grid;gap:3px}.person-cell strong{font-size:11px}.person-cell small{color:var(--muted);font-size:9px}.access-badge{justify-self:start;padding:6px 8px;border-radius:99px;font-size:8px;font-weight:900;white-space:nowrap}.access-badge.admin{background:#1b1b1b;color:white}.access-badge.edit{background:#fff0aa;color:#6f5700}.access-badge.view{background:#e7f2fb;color:#2d618d}.access-badge.none{background:#f0efeb;color:#99958c}.account-status{display:flex;align-items:center;gap:6px;color:#276b4b;font-size:9px;font-weight:800}.account-status i{width:7px;height:7px;border-radius:50%;background:#3abe79}.row-action{min-height:34px;border:1px solid var(--line);border-radius:8px;background:white;font-size:9px;font-weight:800;cursor:pointer}.row-action:hover{border-color:#caa700;background:#fffbed}.access-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.level-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.level-list li{display:flex;align-items:flex-start;gap:12px;padding:13px 2px;border-top:1px solid var(--line)}.level-dot{flex:0 0 auto;width:11px;height:11px;margin-top:3px;border-radius:3px;background:#ddd}.level-dot.admin{background:#1b1b1b}.level-dot.edit{background:var(--yellow)}.level-dot.view{background:#7caed5}.level-dot.none{background:#d8d6d0}.level-list li>div{display:grid;gap:4px}.level-list strong{font-size:11px}.level-list small{color:var(--muted);font-size:9px;line-height:1.5}.audit-preview .section-head button{border:0;background:transparent;color:#806400;font-size:9px;font-weight:900;cursor:pointer}.audit-item{display:flex;align-items:flex-start;gap:12px;padding:16px 2px;border-top:1px solid var(--line)}.audit-item>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff2a6;font-size:9px;font-weight:950}.audit-item>div{display:grid;gap:5px}.audit-item strong{font-size:10px;line-height:1.5}.audit-item small{color:var(--muted);font-size:8px}@media (max-width:900px){.access-bottom-grid{grid-template-columns:1fr}.access-tools input{width:145px}}@media (max-width:720px){.access-alert{flex-direction:column;gap:10px}.access-head{align-items:flex-start;flex-direction:column}.access-tools{width:100%}.access-tools label{flex:1 1}.access-tools input{width:100%}.access-card{padding:17px 13px;border-radius:16px}}.field-label-row{display:flex;align-items:center;justify-content:space-between}.field-label-row a{color:#806400;font-size:9px;font-weight:900}.code-preview{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:13px 15px;border:1px solid #ead47b;border-radius:11px;background:#fffbed}.code-preview>span{color:#716a50;font-size:9px;font-weight:800}.code-preview>strong{display:grid;place-items:center;min-width:42px;min-height:32px;border-radius:8px;background:#1b1b1b;color:white;font-size:13px;letter-spacing:.08em}.code-preview>p{margin:0;color:#746d55;font-size:9px;line-height:1.5}.category-page{width:min(980px,calc(100% - 32px));margin:28px auto 70px;display:grid;gap:17px}.category-card{padding:27px}.category-table{overflow-x:auto}.category-row{min-width:650px;display:grid;grid-template-columns:minmax(180px,1fr) 120px 120px 100px 80px;gap:15px;align-items:center;min-height:67px;padding:10px 12px;border-top:1px solid var(--line);font-size:10px}.category-header{min-height:auto;padding-top:0;border:0;color:var(--muted);font-size:9px}.category-code{justify-self:start;min-width:42px;padding:7px 9px;border-radius:8px;background:#1b1b1b;color:white;font-weight:950;text-align:center;letter-spacing:.08em}@media (max-width:580px){.code-preview{grid-template-columns:auto auto}.code-preview>p{grid-column:1/-1}.category-page{width:min(100% - 20px,980px);margin-top:13px}.category-card{padding:20px 14px}}body{line-height:1.55}.brand strong,body{font-size:16px}.brand small{font-size:12px}.nav-item{font-size:14px}.nav-item>span{font-size:11px}.sidebar-note{font-size:12px}.eyebrow,.sidebar-note small{font-size:11px}.account{font-size:13px}.account small{font-size:11px}.outline-button,.primary-button{font-size:13px}.calendar-actions button,.calendar-actions select,.calendar-hint,.section-head>a,.summary-grid small,.summary-grid span{font-size:12px}.day-cell>header span{font-size:11px}.day-cell>header strong{font-size:15px}.event time{font-size:10px}.event b{font-size:12px}.event small{font-size:10px}.table-head{font-size:11px}.course-table article{font-size:13px}.course-table article b{font-size:14px}.course-table article small,.course-table em{font-size:11px}.client-picker>label,.form-grid label,.form-section-title p,.form-topbar>a,.session-editor label{font-size:13px}.form-grid input,.form-grid select,.session-editor input,.session-editor select{font-size:14px}.code-preview>p,.code-preview>span,.field-label-row a{font-size:11px}.code-preview>strong{font-size:15px}.client-options strong{font-size:13px}.client-options i,.client-options small{font-size:11px}.client-empty strong{font-size:13px}.client-empty button,.client-empty small,.client-validation{font-size:11px}.add-session,.form-note{font-size:13px}.teacher-profile small{font-size:11px}.instructor-side nav a{font-size:14px}.instructor-main>header>a,.teacher-hero small,.teacher-hero span,.teaching-records select{font-size:12px}.teaching-records article{font-size:13px}.access-alert>span,.teaching-records article button,.teaching-records article>div span,.teaching-records em{font-size:11px}.access-alert strong{font-size:14px}.access-alert p,.access-tools input,.access-tools select,.permission-row{font-size:12px}.permission-header{font-size:11px}.person-cell strong{font-size:13px}.access-badge,.account-status,.person-cell small,.row-action{font-size:11px}.level-list strong{font-size:13px}.audit-preview .section-head button,.level-list small{font-size:11px}.audit-item strong{font-size:12px}.audit-item small{font-size:10px}.category-row{font-size:12px}.category-header{font-size:11px}.app-shell,.instructor-page{grid-template-columns:278px minmax(0,1fr)}.brand-logo{position:relative;display:block;flex:0 0 68px;width:68px;height:68px}.brand-logo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;clip-path:inset(0 0 32% 0)}.brand-logo>i{position:absolute;inset:0;display:block;background:url(/cimc-logo.png) 50%/contain no-repeat;filter:brightness(0) invert(1);clip-path:inset(68% 0 0 0)}.brand strong{font-size:17px}.brand small{font-size:14px}.instructor-side nav a,.nav-item{font-size:16px}.nav-item>span,.sidebar-note,.sidebar-note small{font-size:14px}.instructor-main>header h1,.topbar h1{font-size:27px}.account,.outline-button,.primary-button,.summary-grid small,.summary-grid span,.teacher-hero small,.teacher-hero span{font-size:15px}.form-section-title h2,.section-head h2{font-size:23px}.access-alert p,.access-alert>span,.access-badge,.account-status,.audit-item small,.audit-preview .section-head button,.calendar-hint,.category-header,.client-empty button,.client-empty small,.client-options i,.client-options small,.client-validation,.code-preview>p,.code-preview>span,.course-table article small,.course-table em,.day-cell>header span,.event time,.eyebrow,.field-label-row a,.form-section-title p,.form-topbar>a,.instructor-main>header>a,.level-list small,.permission-header,.person-cell small,.row-action,.section-head>a,.table-head,.teacher-profile small,.teaching-records article button,.teaching-records article>div span,.teaching-records em{font-size:14px}.add-session,.calendar-actions button,.calendar-actions select,.category-row,.course-table article,.form-note,.permission-row,.teaching-records article,.teaching-records select{font-size:16px}.day-cell>header strong{font-size:17px}.event b{font-size:15px}.event small{font-size:14px}.access-alert strong,.audit-item strong,.client-empty strong,.client-options strong,.client-picker>label,.course-table article b,.form-grid label,.level-list strong,.person-cell strong,.session-editor label{font-size:16px}.audit-item>span,.company-mark,.form-section-title>span{font-size:14px}.form-grid input,.form-grid select,.session-editor input,.session-editor select{min-height:52px;font-size:17px}.code-preview>strong{font-size:17px}.row-action,.teaching-records article button{min-height:44px;padding:0 12px}@media (max-width:1120px){.app-shell{grid-template-columns:92px minmax(0,1fr)}.brand-logo{width:58px;height:58px;flex-basis:58px}.instructor-page{grid-template-columns:278px minmax(0,1fr)}}@media (max-width:850px){.instructor-page{grid-template-columns:1fr}}@media (max-width:720px){body{font-size:17px}.form-topbar h1{font-size:24px}.top-actions .primary-button{min-height:46px;font-size:15px}.content{padding-inline:15px}.summary-grid{grid-template-columns:1fr 1fr}.summary-grid article{min-height:118px}.form-note{line-height:1.7}}@media (max-width:580px){.form-grid{grid-template-columns:1fr}.form-grid input,.form-grid select,.session-editor input,.session-editor select{min-height:54px;font-size:17px}.form-topbar>.primary-button{min-height:46px;font-size:14px}.code-preview{padding:16px}.client-options{top:88px}.client-options>button{min-height:64px}.check-label{min-height:48px}}.action-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:white;color:#555}.prototype-banner{display:flex;align-items:center;gap:13px;margin-bottom:17px;padding:15px 18px;border:1px solid #e7cf68;border-radius:13px;background:#fff9d8}.prototype-banner strong{flex:0 0 auto;font-size:15px}.prototype-banner span{color:#6f6749;font-size:14px;line-height:1.6}.ops-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:white}.ops-filters{display:flex;gap:8px}.ops-filters input,.ops-filters select{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#faf9f6;font-size:14px;outline:none}.ops-filters input{width:230px}.ops-filters input:focus,.ops-filters select:focus{border-color:#caa700;box-shadow:0 0 0 3px #ffd4002c}.ops-table{overflow-x:auto}.ops-row{display:grid;gap:16px;align-items:center;min-height:76px;padding:12px;border-top:1px solid var(--line);font-size:15px}.ops-header{min-height:auto;padding-top:0;border:0;color:var(--muted);font-size:14px}.ops-row>div{display:grid;gap:4px}.ops-row small{color:#8b6d00;font-size:14px;font-weight:800}.course-list .ops-row{min-width:1180px;grid-template-columns:115px minmax(220px,1.2fr) 170px minmax(190px,1fr) 70px 85px 110px}.registration-list .ops-row{min-width:900px;grid-template-columns:120px minmax(190px,1fr) minmax(230px,1.2fr) 95px 95px}.sync-list .ops-row{min-width:1120px;grid-template-columns:minmax(230px,1.05fr) minmax(180px,.8fr) minmax(360px,1.7fr) 105px 110px}.ops-row em{justify-self:start;padding:7px 9px;border-radius:99px;font-size:14px;font-style:normal;font-weight:900;white-space:nowrap}.status-ok{color:#176c45;background:#e8f7ef}.status-wait{color:#805a00;background:#fff1be}.status-error{color:#a43a2b;background:#fee9e5}.ops-row button{min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#f5f4f0;color:#99958d;font-size:13px;font-weight:800}.ops-row button:disabled{cursor:not-allowed}@media (max-width:720px){.prototype-banner{align-items:flex-start;flex-direction:column}.ops-card{padding:17px 13px;border-radius:16px}.ops-card .section-head{align-items:flex-start;flex-direction:column}.ops-filters{width:100%;flex-direction:column}.ops-filters input,.ops-filters select{width:100%;min-height:50px;font-size:16px}}.delete-approval-list .ops-row{min-width:900px;grid-template-columns:125px minmax(230px,1.2fr) 120px minmax(260px,1fr) 100px}.course-search-panel{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(260px,1fr) auto;align-items:end;gap:14px;margin:20px 0 14px;padding:18px;border:1px solid #e4decd;border-radius:15px;background:#fbfaf6}.course-search-panel label{display:grid;gap:7px}.course-search-panel label>span{color:#5f5b52;font-size:14px;font-weight:850}.course-search-panel input{width:100%;min-height:50px;padding:0 13px;border:1px solid #d7d1c1;border-radius:10px;background:white;color:#1c1b19;font-size:16px;outline:none}.course-search-panel input:focus{border-color:#caa700;box-shadow:0 0 0 3px #ffd4002c}.course-search-dates{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:9px}.course-search-dates>i{min-height:50px;display:grid;place-items:center;color:#797469;font-size:14px;font-style:normal;font-weight:800}.course-search-actions{display:flex;gap:8px}.course-search-actions .action-link,.course-search-actions .primary-button{min-height:50px;padding-inline:16px;white-space:nowrap;font-size:14px}.course-search-panel>p{grid-column:1/-1;margin:0;color:#777168;font-size:13px;line-height:1.55}.course-result-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 14px;color:#6b675e;font-size:14px}.course-result-summary strong{color:#25231f;font-size:15px}.course-result-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:1120px){.course-search-panel{grid-template-columns:1fr 1fr}.course-search-actions,.course-search-panel>p{grid-column:1/-1}}@media (max-width:720px){.course-search-panel{padding:15px 13px}.course-search-dates,.course-search-panel{grid-template-columns:1fr}.course-search-dates>i{min-height:auto;place-items:start}.course-search-actions{grid-column:auto;display:grid;grid-template-columns:1fr}.course-search-actions .action-link,.course-search-actions .primary-button{width:100%;min-height:52px}.course-search-panel>p{grid-column:auto}.course-result-summary{align-items:flex-start;flex-direction:column;gap:4px}.course-result-summary span{max-width:100%;white-space:normal}}.calendar-connection-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 24px;border:1px solid #e1c96a;border-radius:18px;background:linear-gradient(135deg,#fff9d7,#fffdf7)}.calendar-connection-card.connected{border-color:#8bc8a7;background:linear-gradient(135deg,#eaf8f0,#fbfffd)}.calendar-connection-card h2{margin:4px 0 5px;font-size:22px}.calendar-connection-card>div>span{color:#6c675c;font-size:14px}.calendar-connection-card>.primary-button{min-width:190px;min-height:50px}.disabled-link{pointer-events:none;opacity:.48}.calendar-select{display:flex;align-items:end;gap:8px}.calendar-select label{display:grid;gap:6px;color:#5e5a50;font-size:13px;font-weight:850}.calendar-select select{min-width:220px;min-height:48px;padding:0 12px;border:1px solid #d5d0c4;border-radius:9px;background:white;font-size:15px}.calendar-select a,.calendar-select button{min-height:48px;white-space:nowrap}.sync-actions{display:flex;gap:8px}.sync-actions button{min-height:46px;padding:0 15px;font-size:14px;cursor:pointer}.sync-actions button:disabled{cursor:not-allowed;opacity:.5}.sync-explanation{margin:14px 0 18px;padding:12px 14px;border-radius:10px;background:#f7f5ee;color:#676258;font-size:14px;line-height:1.6}.sync-list .ops-row>span{display:grid;gap:4px}.sync-list .ops-row>span small{color:#777168;font-weight:700}.sync-list .ops-row button:not(:disabled){border-color:#cfb43a;background:#fff8cf;color:#6f5800;cursor:pointer}.sync-list .ops-row.has-differences{align-items:start;background:#fffdfa}.sync-state-detail{color:#777168;line-height:1.55}.calendar-difference-list{display:grid;gap:8px}.calendar-difference{display:grid;grid-template-columns:82px 1fr 1fr;gap:8px;padding:9px 10px;border:1px solid #eadfc3;border-radius:10px;background:#fffdf6;font-size:13px;line-height:1.45}.calendar-difference>strong{color:#6f5800}.calendar-difference>span{display:grid;grid-template-columns:58px 1fr;gap:5px;overflow-wrap:anywhere}.calendar-difference b{color:#777168;font-size:12px}.calendar-difference>span:last-child{color:#a43a2b}.line-reminder-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 24px;border:1px solid #e1c96a;border-radius:18px;background:linear-gradient(135deg,#fff9d7,#fffdf7)}.line-reminder-card.connected{border-color:#86c99c;background:linear-gradient(135deg,#e7faed,#fbfffc)}.line-reminder-card h2{margin:4px 0 5px;font-size:22px}.line-reminder-card>div>span{color:#6c675c;font-size:14px}.line-reminder-stats{display:flex;align-items:center;gap:10px}.line-reminder-stats>span{display:grid;min-width:92px;padding:10px 12px;border:1px solid #dfe4dc;border-radius:11px;background:#fff;color:#6a675e;font-size:12px;font-weight:800}.line-reminder-stats strong{color:#222;font-size:23px}.line-reminder-stats button{min-height:50px;white-space:nowrap}.line-delivery-card,.line-settings-card{margin-bottom:18px;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff}.line-enabled{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border-radius:999px;background:#eef8f1;font-size:14px;font-weight:900;cursor:pointer}.line-enabled input{width:20px;height:20px;accent-color:#138044}.line-settings-grid{display:grid;grid-template-columns:180px 200px minmax(260px,1fr) auto;align-items:end;gap:14px;margin-top:20px}.line-settings-grid label{display:grid;gap:8px;color:#555045;font-size:14px;font-weight:900}.line-settings-grid input,.line-settings-grid select{width:100%;min-height:50px;padding:0 14px;border:1px solid #d9d4c8;border-radius:12px;background:#fff;color:#222;font:inherit;font-size:16px}.line-setting-note{display:grid;gap:5px;min-height:50px;padding:7px 0}.line-setting-note strong{font-size:14px}.line-setting-note span{color:#6c675c;font-size:13px;line-height:1.55}.line-settings-grid button{min-height:50px;white-space:nowrap}.line-delivery-card>.section-head>span{color:#777166;font-size:14px}.line-delivery-table{margin-top:18px;border-top:1px solid var(--line)}.line-delivery-row{display:grid;grid-template-columns:130px minmax(220px,1.2fr) minmax(120px,.55fr) 100px minmax(220px,1fr);align-items:center;gap:16px;min-height:76px;padding:14px 4px;border-bottom:1px solid var(--line)}.line-delivery-row>div,.line-delivery-row>time{display:grid;gap:4px}.line-delivery-row strong,.line-delivery-row>span{font-size:15px}.line-delivery-row small{color:#6d685e;font-size:13px;line-height:1.5}.line-delivery-head{min-height:44px;color:#777166;font-size:13px;font-weight:900}.line-status{display:inline-flex;justify-content:center;padding:8px 10px;border-radius:999px;font-size:13px;font-style:normal;font-weight:900}.line-status.sent{background:#e5f7eb;color:#14733b}.line-status.failed{background:#fde8e4;color:#a33427}.line-status.skipped{background:#fff3c8;color:#7f6400}@media (max-width:960px){.calendar-connection-card{align-items:flex-start;flex-direction:column}.calendar-select{width:100%;align-items:stretch;flex-direction:column}.calendar-select select,.sync-actions{width:100%}.sync-actions button{flex:1 1}}@media (max-width:1100px){.line-settings-grid{grid-template-columns:1fr 1fr}.line-setting-note{grid-column:1/-1}.line-delivery-row{grid-template-columns:120px minmax(200px,1fr) 120px 96px}.line-delivery-row>small{grid-column:2/-1}}@media (max-width:960px){.line-reminder-card{align-items:flex-start;flex-direction:column}.line-reminder-stats{width:100%;flex-wrap:wrap}.line-reminder-stats button{flex:1 0 100%}}@media (max-width:720px){.calendar-connection-card,.line-delivery-card,.line-reminder-card,.line-settings-card{padding:18px 15px}.calendar-connection-card>.primary-button{width:100%}.sync-actions{display:grid;grid-template-columns:1fr}.sync-actions button{width:100%;min-height:50px}.line-reminder-stats{display:grid;grid-template-columns:repeat(3,1fr)}.line-reminder-stats>span{min-width:0}.line-reminder-stats button{grid-column:1/-1;width:100%}.line-settings-card>.section-head{align-items:flex-start;flex-direction:column}.line-settings-grid{grid-template-columns:1fr}.line-setting-note{grid-column:auto}.line-settings-grid button{width:100%}.line-delivery-head{display:none}.line-delivery-row{grid-template-columns:1fr auto;gap:8px 12px;padding:16px 2px}.line-delivery-row>time{grid-column:1/-1;color:#6d685e}.line-delivery-row>div,.line-delivery-row>span{grid-column:1/2}.line-delivery-row>em{grid-column:2/3;grid-row:2/4}.line-delivery-row>small{grid-column:1/-1}}.request-saved{display:grid;gap:4px;padding:13px 15px;border:1px solid #91c9aa;border-radius:10px;background:#ebf8f1}.request-saved strong{color:#176c45;font-size:15px}.request-saved span{color:#49705c;font-size:14px;line-height:1.55}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#111111a8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.client-modal{width:min(680px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:26px;border:1px solid #ded9ca;border-radius:21px;background:white;box-shadow:0 28px 80px #0006}.client-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.client-modal h2{margin:4px 0 0;font-size:25px}.client-modal>header>button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#f8f7f3;font-size:26px;cursor:pointer}.modal-notice{display:grid;gap:4px;margin:20px 0;padding:14px 16px;border-radius:11px;background:#fff5c2}.modal-notice strong{font-size:15px}.modal-notice span{color:#71684a;font-size:14px;line-height:1.55}.client-request-form{display:grid;gap:16px}.client-request-form>div>label,.client-request-form>label{display:grid;gap:7px;color:#4c4a44;font-size:16px;font-weight:800}.client-request-form>div{display:grid;grid-template-columns:1fr 1fr;gap:14px}.client-request-form input{width:100%;min-height:52px;padding:0 13px;border:1px solid #dcd8ce;border-radius:10px;background:white;font-size:17px;outline:none}.client-request-form input:focus{border-color:#caa700;box-shadow:0 0 0 3px #ffd4002c}.client-request-form footer{display:flex;justify-content:flex-end;gap:9px;padding-top:6px}.client-request-form footer button{min-height:48px;padding:0 16px;border-radius:10px;font-size:15px;cursor:pointer}.request-saved.review{border-color:#e1c26a;background:#fff7d5}.request-saved.review strong{color:#725800}.request-saved.review span{color:#766a45}.client-create-error{padding:13px 15px;border-radius:10px;background:#fee9e5;color:#963629;font-size:14px;font-weight:800;line-height:1.55}.client-modal>header>button:disabled,.client-request-form button:disabled{cursor:not-allowed;opacity:.58}@media (max-width:580px){.modal-backdrop{align-items:end;padding:0}.client-modal{width:100%;max-height:92vh;padding:22px 16px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.client-request-form>div{grid-template-columns:1fr}.client-request-form footer{display:grid;grid-template-columns:1fr 1fr}.client-request-form footer button{width:100%}}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#fff1a5 0,transparent 34%),#f5f3ec}.login-card{width:min(520px,100%);padding:38px;border:1px solid #ddd8ca;border-radius:24px;background:#fff;box-shadow:0 24px 70px #32290018}.login-brand{display:flex;align-items:center;gap:18px;margin-bottom:30px}.login-brand img{width:84px;height:84px;object-fit:contain}.login-brand p{margin:0;color:#957200;font-size:12px;font-weight:900;letter-spacing:.12em}.login-brand h1{margin:4px 0;font-size:28px}.login-brand span{color:var(--muted);font-size:14px}.login-card form{display:grid;gap:18px}.login-card label{display:grid;gap:8px;font-size:16px;font-weight:800}.login-card input{width:100%;min-height:54px;padding:0 15px;border:1px solid #d8d3c7;border-radius:11px;font-size:17px;outline:none}.login-card input:focus{border-color:#caa700;box-shadow:0 0 0 4px #ffd4002e}.login-card form button{min-height:54px;font-size:17px;cursor:pointer}.login-error{margin:0;padding:12px 14px;border-radius:10px;background:#fee9e5;color:#9a3428;font-size:14px}.login-help{margin:20px 0 0;color:var(--muted);font-size:13px;text-align:center}@media (max-width:580px){.login-page{align-items:end;padding:0}.login-card{padding:28px 20px calc(28px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0}.login-brand img{width:70px;height:70px}.login-brand h1{font-size:24px}}.access-notice{margin:0;padding:14px 16px;border-radius:11px;font-size:14px}.access-notice.success{color:#176c45;background:#e8f7ef}.access-notice.error{color:#9a3428;background:#fee9e5}.create-user-card summary{cursor:pointer;font-size:17px;font-weight:900}.central-user-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.central-user-form label{display:grid;gap:7px;font-size:14px;font-weight:800}.central-user-form input,.central-user-form select,.password-reset input{width:100%;min-height:48px;padding:0 12px;border:1px solid #dcd8ce;border-radius:9px;background:white;font-size:15px}.central-user-form button{align-self:end;min-height:48px}.sync-source{color:var(--muted);font-size:13px}.central-permission-row{grid-template-columns:minmax(210px,1.4fr) repeat(5,minmax(88px,.7fr)) 90px minmax(230px,1.25fr)}.central-user-actions{display:grid;gap:7px}.central-user-actions form{margin:0}.password-reset{display:grid;grid-template-columns:minmax(120px,1fr) 62px;gap:6px}.password-reset input{min-height:40px;font-size:13px}.central-user-actions .row-action{width:100%}.account-status.off{color:#8b8175}.account-status.off i{background:#aaa49a}.empty-central-users{padding:32px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:15px;text-align:center}@media (max-width:720px){.central-user-form{grid-template-columns:1fr}.central-permission-row{min-width:1120px}}.account-link{display:flex;align-items:center;gap:9px}.login-success{margin:0;padding:12px 14px;border-radius:10px;background:#e8f7ef;color:#176c45;font-size:14px}.account-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#fff1a5 0,transparent 32%),#f5f3ec}.account-card{width:min(620px,100%);padding:36px;border:1px solid #ddd8ca;border-radius:24px;background:white;box-shadow:0 24px 70px #32290018}.account-card>header>a{color:#7d6500;font-size:14px;font-weight:900}.account-identity{display:flex;align-items:center;gap:16px;margin-top:25px}.account-identity>span{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--yellow);font-size:23px;font-weight:950}.account-identity p{margin:0;color:#957200;font-size:11px;font-weight:900;letter-spacing:.12em}.account-identity h1{margin:3px 0;font-size:27px}.account-identity small{color:var(--muted);font-size:14px}.password-guidance{display:grid;gap:5px;margin:25px 0;padding:15px 17px;border-radius:12px;background:#fff5c2}.password-guidance strong{font-size:15px}.password-guidance span{color:#71684a;font-size:13px;line-height:1.6}.account-card form{display:grid;gap:17px}.account-card form label{display:grid;gap:7px;font-size:15px;font-weight:800}.account-card form input{min-height:52px;padding:0 14px;border:1px solid #d8d3c7;border-radius:10px;font-size:17px;outline:none}.account-card form input:focus{border-color:#caa700;box-shadow:0 0 0 4px #ffd4002e}.account-card form label small{color:var(--muted);font-size:12px;font-weight:500}.account-card form button{min-height:52px;font-size:16px;cursor:pointer}.account-card form .password-rule-message.error{color:#a33a2c;font-weight:700}.account-card form input[aria-invalid=true]{border-color:#ba4938;box-shadow:0 0 0 4px #ba49381c}@media (max-width:580px){.account-page{align-items:end;padding:0}.account-card{padding:26px 18px calc(26px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0}.account-identity h1{font-size:23px}}.live-source{color:#68655d;font-size:14px;font-weight:800}.live-banner{border-color:#91c9aa;background:#ebf8f1}.live-banner span{color:#49705c}.error-banner{border-color:#e8b9af;background:#fee9e5}.error-banner span{color:#9a3428}.empty-live-data{padding:28px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:15px;text-align:center}.status-neutral{color:#68655d;background:#efeee9}.view-only-badge{padding:9px 12px;border-radius:99px;background:#e7f1fa;color:#2e618b;font-size:14px;font-weight:900}.course-save-error{display:grid;gap:3px;padding:15px 17px;border:1px solid #e5b1a7;border-radius:12px;background:#fee9e5;color:#963629}.course-save-error strong{font-size:15px}.course-save-error span{font-size:14px;line-height:1.6}.course-created-banner{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid #8dc5a5;border-radius:13px;background:#e8f7ef;color:#205f42}.course-created-banner strong{font-size:16px}.course-created-banner span{font-size:14px}@media (max-width:620px){.course-created-banner{align-items:flex-start;flex-direction:column}}.course-row-link{color:inherit;text-decoration:none;border-radius:11px;transition:background .15s ease,box-shadow .15s ease}.course-row-link:focus-visible,.course-row-link:hover{position:relative;z-index:1;background:#fff9d9;box-shadow:inset 4px 0 0 var(--yellow);outline:none}.course-row-link:focus-visible{box-shadow:inset 4px 0 0 var(--yellow),0 0 0 3px #ffd40055}.course-edit-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid #cdb74e;border-radius:9px;background:#fff8cf;color:#6e5800;font-size:13px;font-weight:900;white-space:nowrap}.course-row-link:hover .course-edit-link{background:#ffe56a;color:#171717}.course-deleted-banner{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid #e3b1a7;border-radius:13px;background:#fff0ec;color:#8e3428}.course-deleted-banner strong{font-size:16px}.course-deleted-banner span{font-size:14px}.detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.danger-button,.danger-outline-button{min-height:46px;padding:0 17px;border-radius:10px;font-size:15px;font-weight:900;cursor:pointer}.danger-outline-button{border:1px solid #d18f84;background:white;color:#9e3427}.danger-button{border:1px solid #a53225;background:#a53225;color:white}.danger-button:disabled{cursor:not-allowed;opacity:.45}.calendar-change-warning{display:grid;gap:4px;padding:15px 17px;border:1px solid #e2c574;border-radius:13px;background:#fff7d6;color:#6c5700}.calendar-change-warning strong{font-size:16px}.calendar-change-warning span{font-size:14px;line-height:1.6}.session-calendar-mark{grid-column:2/-1;color:#8b6d00;font-size:13px;font-weight:800}.delete-course-modal{width:min(620px,100%);max-height:min(88vh,760px);overflow:auto;padding:28px;border:1px solid #ded9ca;border-radius:21px;background:white;box-shadow:0 28px 80px #0006}.delete-course-modal h2{margin:5px 0 12px;font-size:26px}.delete-course-modal>p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:1.7}.delete-course-modal label{display:grid;gap:8px;margin-top:18px;color:#4c4a44;font-size:16px;font-weight:800}.delete-course-modal input,.delete-course-modal textarea{padding:0 13px;border:1px solid #d6d1c4;border-radius:10px;font:inherit}.delete-course-modal input{min-height:52px;font-size:18px}.delete-course-modal textarea{padding-block:12px;resize:vertical}.delete-course-modal footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:22px}.delete-blocked{display:grid;gap:5px;margin-top:12px;padding:15px 17px;border-radius:12px;background:#fee9e5;color:#963629}.delete-blocked strong{font-size:16px}.delete-blocked span{font-size:14px;line-height:1.65}@media (max-width:700px){.form-topbar{align-items:flex-start;flex-wrap:wrap}.detail-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.detail-actions button{width:100%}.course-deleted-banner{align-items:flex-start;flex-direction:column}.delete-course-modal{align-self:end;padding:23px 17px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.delete-course-modal footer{display:grid;grid-template-columns:1fr 1fr}.delete-course-modal footer button{width:100%}}.permission-cutoff-note{display:grid;gap:4px;padding:15px 17px;border:1px solid #b7c9df;border-radius:13px;background:#edf5ff;color:#295379}.permission-cutoff-note strong{font-size:16px}.permission-cutoff-note span{font-size:14px;line-height:1.65}.session-locked{background:#f3f1eb}.session-locked input:disabled,.session-locked select:disabled{background:#e8e5dc;color:#77736a}.session-history-mark{grid-column:2/-1;color:#745b00;font-size:13px;font-weight:900}.submission-check{display:grid;gap:5px;padding:16px 18px;border:1px solid #e1b1a7;border-radius:13px;background:#fff0ed;color:#8d3529}.submission-check.ready{border-color:#8dc5a5;background:#e8f7ef;color:#205f42}.submission-check strong{font-size:16px}.submission-check span{font-size:14px;line-height:1.65}.session-editor.session-incomplete{border-color:#dfa89d;box-shadow:0 0 0 2px #fee9e5}.session-incomplete-mark{grid-column:2/-1;color:#9b3f31;font-size:13px;font-weight:900;line-height:1.5}.session-line-test{grid-column:2/-1;justify-self:start;min-height:38px;padding:0 13px;border:1px solid #c8b55c;border-radius:9px;background:#fffbed;color:#725d00;font-size:14px;font-weight:900;cursor:pointer}.session-line-test:disabled{cursor:wait;opacity:.55}.line-test-result{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:#e8f7ef;color:#205f42;font-size:14px;font-weight:800;line-height:1.6}.instructor-create-button{align-self:start;margin-top:7px;padding:0;border:0;background:transparent;color:#8a6d00;font-size:13px;font-weight:900;cursor:pointer;text-align:left}.instructor-create-button:hover{color:#171717;text-decoration:underline}.client-request-form label small{color:#777166;font-size:13px;font-weight:500;line-height:1.5}.instructor-invite-check{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:3px 9px!important;padding:13px 14px;border:1px solid #e0d9bc;border-radius:11px;background:#fffbed}.instructor-invite-check input{width:18px!important;min-height:auto!important;margin-top:2px}.instructor-invite-check small{grid-column:2}.registration-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:7px;border:1px solid var(--line);border-radius:14px;background:#eeece6}.registration-tabs button{min-height:44px;padding:0 18px;border:0;border-radius:10px;background:transparent;color:#67635c;font-size:15px;font-weight:900;cursor:pointer}.registration-tabs button.active{background:#171717;color:white;box-shadow:0 5px 15px #0002}.registration-message{padding:14px 16px;border-radius:12px;font-size:15px;font-weight:800;line-height:1.55}.registration-message.ok{border:1px solid #8dc5a5;background:#e8f7ef;color:#205f42}.registration-message.error{border:1px solid #e3b1a7;background:#fff0ec;color:#8e3428}.registration-filters{display:grid;grid-template-columns:minmax(260px,1fr) 170px 150px auto;align-items:center;gap:9px;margin:17px 0;padding:14px;border-radius:12px;background:#f5f3ed}.registration-filters input,.registration-filters select{min-height:46px;padding:0 12px;border:1px solid #d8d3c8;border-radius:9px;background:white;font-size:15px}.registration-filters>span{color:#69655e;font-size:14px;font-weight:900;text-align:right}.registration-list .ops-row{min-width:1000px;grid-template-columns:180px minmax(190px,1fr) minmax(260px,1.3fr) 105px 105px}.registration-list .ops-row>div:first-child small{overflow:hidden;color:#777166;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.registration-entry,.registration-import{display:grid;gap:18px}.manual-registration-rule{display:grid;gap:4px;padding:14px 16px;border:1px solid #d9c66a;border-radius:12px;background:#fff8d8;color:#655300}.manual-registration-rule span{font-size:14px;line-height:1.55}.registration-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.registration-form>label{display:grid;gap:7px;color:#4c4943;font-size:14px;font-weight:900}.registration-form input,.registration-form select,.registration-form textarea{width:100%;padding:0 12px;border:1px solid #d8d3c8;border-radius:9px;background:white;color:#171717;font:inherit}.registration-form input,.registration-form select{min-height:49px}.registration-form textarea{padding-block:11px;resize:vertical}.registration-form input:focus,.registration-form select:focus,.registration-form textarea:focus{outline:3px solid #ffd40033;border-color:#b99c00}.registration-form .wide{grid-column:1/-1}.registration-search-picker{position:relative;display:grid;align-content:start;gap:7px}.registration-search-picker>label{color:#4c4943;font-size:14px;font-weight:900}.registration-search-box{display:grid;grid-template-columns:30px 1fr;align-items:center;min-height:50px;padding:0 11px;border:1px solid #d8d3c8;border-radius:9px;background:#fff}.registration-search-box.open{border-color:#b99c00;box-shadow:0 0 0 3px #ffd40033}.registration-search-box>span{color:#8b867d;font-size:20px}.registration-form .registration-search-box input{min-height:46px;padding:0;border:0;outline:0;box-shadow:none}.registration-search-results{position:absolute;z-index:20;top:80px;left:0;right:0;overflow:auto;max-height:370px;border:1px solid #d6d0c3;border-radius:12px;background:white;box-shadow:0 18px 45px #33290025}.registration-search-results>button{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:62px;padding:10px 13px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;cursor:pointer}.registration-search-results>button:focus,.registration-search-results>button:hover{background:#fff9d9}.registration-search-results>button>span{display:grid;gap:4px}.registration-search-results strong{font-size:14px}.registration-search-results small{color:#777166;font-size:12px;line-height:1.45}.registration-search-results i{color:#806700;font-size:12px;font-style:normal;font-weight:900}.registration-search-results>div{display:grid;gap:4px;padding:16px}.registration-search-picker>p{margin:0;color:#756f64;font-size:12px;line-height:1.5}.registration-check{display:flex!important;grid-column:1/-1;align-items:center;gap:8px!important;padding:12px 14px;border:1px solid #e0d9bc;border-radius:10px;background:#fffbed}.registration-check input{width:18px;min-height:18px;accent-color:#171717}.registration-form footer{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:12px;padding-top:5px}.registration-form footer span{color:#726c61;font-size:13px}.import-drop{display:grid;justify-items:start;gap:7px;padding:25px;border:2px dashed #c9c1ad;border-radius:14px;background:#faf9f5}.import-drop strong{font-size:18px}.import-drop span{color:#716d65;font-size:14px;line-height:1.55}.import-drop input{width:min(100%,520px);margin-top:9px;padding:10px;border:1px solid #ddd7ca;border-radius:9px;background:white}.import-summary{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:#fff7ca}.import-summary span{color:#706342;font-size:14px}.import-preview{overflow-x:auto;border:1px solid var(--line);border-radius:13px}.import-row{min-width:960px;display:grid;grid-template-columns:50px minmax(190px,1fr) minmax(220px,1.2fr) minmax(210px,1fr) minmax(190px,1fr);align-items:center;gap:12px;min-height:72px;padding:11px 14px;border-top:1px solid var(--line);font-size:14px}.import-head{min-height:44px;border-top:0;background:#f4f2ed;color:#67635c;font-weight:900}.import-row>div{display:grid;gap:4px}.import-row small{color:#777166;line-height:1.4}.import-row em{justify-self:start;padding:5px 8px;border-radius:999px;font-size:12px;font-style:normal;font-weight:900}.preview-ready{background:#e4f6eb;color:#176e46}.preview-duplicate{background:#fff0d9;color:#985200}.preview-invalid{background:#fee9e5;color:#9b3f31}@media (max-width:720px){.registration-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.registration-tabs button{padding:0 8px;font-size:13px}.registration-filters{grid-template-columns:1fr}.registration-filters>span{text-align:left}.registration-form{grid-template-columns:1fr}.registration-check,.registration-form .wide,.registration-form footer{grid-column:auto}.registration-form footer{align-items:stretch;flex-direction:column}.registration-form footer button{width:100%}.import-summary{grid-template-columns:1fr}.import-summary button{width:100%}}.instructor-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.instructor-summary-grid article{display:grid;gap:6px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.instructor-summary-grid span{color:var(--muted);font-size:14px;font-weight:800}.instructor-summary-grid strong{font-size:34px}.instructor-summary-grid small{color:#8a857c}.instructor-search{display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:10px;margin:18px 0;padding:15px;border-radius:13px;background:#f5f3ed}.instructor-search label{display:grid;gap:6px;color:#57544d;font-size:14px;font-weight:900}.instructor-search input{min-height:46px;padding:0 13px;border:1px solid #d8d3c8;border-radius:9px;background:#fff;font-size:16px}.instructor-directory{display:grid}.instructor-directory>article{display:grid;grid-template-columns:52px minmax(220px,1fr) minmax(240px,1fr) auto;align-items:center;gap:16px;padding:17px 4px;border-top:1px solid var(--line)}.instructor-avatar{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#ffd400;font-size:21px;font-weight:950}.instructor-directory article>div:nth-child(2){display:grid;gap:3px}.instructor-directory article strong{font-size:17px}.instructor-directory article p,.instructor-directory article small{margin:0;color:var(--muted);font-size:13px;word-break:break-word}.instructor-completeness{display:grid;justify-items:start;gap:5px}.profile-status{padding:6px 10px;border-radius:999px;background:#eee;font-size:12px;font-style:normal;font-weight:900}.status-資料完整{background:#e4f6eb;color:#176e46}.status-待審核,.status-需補件{background:#fff0d9;color:#985200}.status-待講師填寫{background:#e8f1fb;color:#245f95}.status-停用{background:#f1e6e4;color:#8d372d}.instructor-history-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}.instructor-history-card>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-bottom:1px solid var(--line)}.instructor-history-card h2{margin:3px 0 0}.instructor-history-card>header>div:last-child{display:flex;align-items:baseline;gap:12px}.instructor-history-card>header strong{font-size:28px}.instructor-history-card>header span{color:var(--muted);font-weight:800}.instructor-history-table{overflow-x:auto}.history-row{min-width:900px;display:grid;grid-template-columns:125px minmax(300px,1.4fr) minmax(220px,1fr) 100px 100px;gap:14px;align-items:center;padding:13px 18px;border-top:1px solid var(--line);font-size:13px}.history-row>span:nth-child(2){display:grid;gap:2px}.history-row b{font-size:12px}.history-head{border-top:0;background:#f3f1eb;color:var(--muted);font-weight:900}.profile-security-note{display:grid;gap:5px;padding:15px 17px;border:1px solid #d9c66a;border-radius:13px;background:#fff8d8;color:#655300}.profile-security-note span{font-size:14px;line-height:1.6}.instructor-profile-editor{display:grid;gap:16px;padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff}.profile-editor-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.profile-editor-head h2{margin:2px 0 4px}.profile-editor-head span{color:var(--muted)}.profile-message{padding:13px 15px;border-radius:11px;background:#e9f7ef;color:#216643;font-weight:800;line-height:1.6}.instructor-profile-editor form{display:grid;gap:16px}.profile-form-section{padding:20px;border:1px solid #e1ddd2;border-radius:15px;background:#fff}.profile-form-section>div:first-child{display:flex;align-items:center;gap:10px;margin-bottom:15px}.profile-form-section>div:first-child>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ffd400;font-weight:950}.profile-form-section h3{margin:0;font-size:19px}.profile-form-section>p{margin:-5px 0 15px;color:#7b7050;font-size:14px;line-height:1.6}.profile-form-section.sensitive{background:#fffdf4}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-fields label{display:grid;gap:7px;color:#4d4a43;font-size:14px;font-weight:900}.profile-fields .wide{grid-column:1/-1}.profile-fields input,.profile-fields textarea{width:100%;padding:11px 12px;border:1px solid #d8d3c8;border-radius:9px;background:#fff;color:#171717;font:inherit;font-weight:500;line-height:1.55}.profile-fields input{min-height:48px}.profile-fields input:focus,.profile-fields textarea:focus{outline:3px solid #ffd40033;border-color:#b99c00}.profile-fields input:disabled{background:#efede8;color:#666}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upload-grid label{display:grid;gap:7px;padding:15px;border:1px dashed #c9c1ad;border-radius:12px;background:#faf9f5}.upload-grid label.required-upload{border-color:#c7a500;background:#fffbed}.upload-grid small{color:var(--muted);line-height:1.5}.upload-grid input{width:100%;font-size:13px}.recognition-status{margin:12px 0 0;color:#876d00;font-weight:800}.recognition-preview{display:grid;gap:12px;margin-top:15px;padding:16px;border:1px solid #d6c566;border-radius:12px;background:#fffceb}.recognition-preview>div{display:grid!important;gap:3px!important;margin:0!important}.recognition-preview>div span{color:var(--muted);font-size:13px}.recognition-preview ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.recognition-preview li{display:grid;grid-template-columns:90px 1fr;gap:10px}.recognition-preview li span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;white-space:pre-line;color:#535047;font-size:13px;line-height:1.5}.recognition-preview button{justify-self:start}.profile-consent{display:flex;align-items:flex-start;gap:9px;margin-top:14px;color:#514e47;font-size:14px;font-weight:800;line-height:1.6}.profile-consent input{margin-top:4px}.profile-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}.warning-button{min-height:46px;padding:0 17px;border:1px solid #d59a42;border-radius:10px;background:#fff5df;color:#84500a;font-size:15px;font-weight:900;cursor:pointer}.recognition-status{display:grid;gap:7px}.recognition-status progress{width:min(480px,100%);height:10px;accent-color:#c7a500}.recognition-preview details{padding:10px 12px;border:1px solid #ddd2a0;border-radius:9px;background:#fff}.recognition-preview summary{cursor:pointer;color:#675600;font-size:13px;font-weight:900}.recognition-preview pre{max-height:260px;overflow:auto;margin:10px 0 0;white-space:pre-wrap;word-break:break-word;color:#514e47;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.public-profile-page{min-height:100vh;padding:32px max(18px,calc((100vw - 980px)/2));background:#f4f1e9}.public-profile-page>header{display:flex;align-items:center;gap:18px;margin-bottom:20px;padding:20px 24px;border-radius:20px;background:#171717;color:#fff}.public-profile-page>header img{width:72px;height:72px;object-fit:contain}.public-profile-page>header h1{margin:3px 0 5px;font-size:29px}.public-profile-page>header span{color:#c9c9c9}.public-profile-page .instructor-profile-editor{padding:24px}.public-profile-card{max-width:680px;margin:15vh auto 0;padding:36px;border:1px solid var(--line);border-radius:22px;background:#fff;text-align:center;box-shadow:0 24px 70px #0001}.public-profile-card h1{font-size:34px}.public-profile-card p{color:var(--muted);line-height:1.7}.sensitive-toggle{margin-left:auto;padding:7px 10px;border:1px solid #cdbb67;border-radius:8px;background:#fffbed;color:#705c00;font-size:12px;font-weight:900;cursor:pointer}.sensitive-masked input,.sensitive-masked textarea{filter:blur(5px);-webkit-user-select:none;user-select:none;pointer-events:none}.existing-attachments{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px!important;margin:14px 0 0!important}.existing-attachments>div{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px 12px;border-radius:9px;background:#f5f3ed}.existing-attachments strong{font-size:13px}.existing-attachments a{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a6200;font-size:12px;font-weight:800}@media (max-width:800px){.instructor-summary-grid{grid-template-columns:1fr}.instructor-search{grid-template-columns:1fr 1fr}.instructor-search label{grid-column:1/-1}.instructor-directory>article{grid-template-columns:50px 1fr}.instructor-completeness,.instructor-directory>article>.view-only-badge,.instructor-directory>article>a{grid-column:2}.profile-editor-head{align-items:flex-start;flex-direction:column}.profile-fields,.upload-grid{grid-template-columns:1fr}.profile-fields .wide{grid-column:auto}.profile-actions{display:grid;grid-template-columns:1fr}.profile-actions button{width:100%}.public-profile-page{padding:14px}.public-profile-page>header{align-items:flex-start;padding:17px}.public-profile-page>header img{width:54px;height:54px}.public-profile-page>header h1{font-size:24px}.instructor-profile-editor,.public-profile-page .instructor-profile-editor{padding:14px}.profile-form-section{padding:15px}}.course-registration-card{overflow:hidden}.course-registration-summary{display:grid;grid-template-columns:180px 180px 1fr;align-items:center;gap:12px;padding:15px;border-radius:13px;background:#f5f3ed}.course-registration-summary>div{display:flex;align-items:baseline;gap:7px}.course-registration-summary strong{font-size:29px}.course-registration-summary span{color:var(--muted);font-size:13px;font-weight:800}.course-registration-summary>a{justify-self:end;text-decoration:none}.course-registration-list{overflow-x:auto;margin-top:15px;border:1px solid var(--line);border-radius:13px}.course-registration-row{min-width:900px;display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(220px,1fr) 190px;align-items:center;gap:14px;min-height:70px;padding:11px 15px;border-top:1px solid var(--line)}.course-registration-row>div{display:grid;justify-items:start;gap:4px}.course-registration-row small{color:var(--muted);font-size:12px}.course-registration-row em{padding:5px 8px;border-radius:999px;font-size:12px;font-style:normal;font-weight:900}.course-registration-row a{color:#755e00;font-size:13px;font-weight:900}.course-registration-head{min-height:43px;border-top:0;background:#f5f3ed;color:#68645d;font-size:13px;font-weight:900}.certificate-preview-page{min-height:100vh;padding:24px;background:#dedbd3;color:#171717}.certificate-toolbar{position:sticky;z-index:10;top:14px;width:min(860px,100%);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px;margin:0 auto 22px;padding:12px 15px;border:1px solid #d5d0c4;border-radius:14px;background:#fff;box-shadow:0 10px 30px #0002}.certificate-toolbar>a{color:#705a00;font-weight:900;text-decoration:none}.certificate-toolbar>div{display:grid;gap:2px;text-align:right}.certificate-toolbar>div span{color:var(--muted);font-size:12px}.certificate-toolbar button{min-height:42px;padding:0 15px;border:0;border-radius:9px;background:#171717;color:#fff;font-weight:900;cursor:pointer}.certificate-toolbar button:disabled{cursor:wait;opacity:.62}.certificate-pages{display:grid;gap:24px}.certificate-sheet{width:min(820px,calc(100vw - 48px));aspect-ratio:210/297;margin:auto;padding:12px;background:#fff;box-shadow:0 15px 45px #0002}.certificate-frame{position:relative;height:100%;overflow:hidden;background:#f8f2e7;font-family:Noto Sans TC,PingFang TC,sans-serif}.certificate-reference-art{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;mix-blend-mode:multiply;opacity:.96;pointer-events:none}.certificate-serial{position:absolute;z-index:3;top:4.1%;right:7.2%;font-size:14px;font-weight:700;letter-spacing:.035em}.certificate-serial strong{font-weight:800}.certificate-reference-title{position:absolute;z-index:2;top:21%;left:14%;width:72%;height:10.5%;display:grid;place-items:center;margin:0;background:#f8f1e0;text-align:center;text-indent:-1.4%;font-size:58px;font-weight:950;letter-spacing:.105em;line-height:1.1}.certificate-reference-title:after{content:"";position:absolute;top:0;bottom:0;left:100%;width:14%;background:#f8f1e0}.certificate-content{position:absolute;z-index:2;top:32.6%;left:7.7%;width:80%}.certificate-recipient{margin:0 0 5%;font-size:34px;font-weight:850;letter-spacing:.06em}.certificate-recipient strong{margin-right:12px;font-size:39px;font-weight:950}.certificate-copy{width:90%;margin:0 0 0 7.875%;font-size:27px;font-weight:850;line-height:1.9;letter-spacing:.005em;text-align:left}.certificate-note{position:absolute;z-index:2;left:8.8%;bottom:17.2%;width:62%;display:grid;gap:4%;margin:0;color:#111;font-size:26px;font-weight:950;line-height:2;letter-spacing:.015em}.certificate-note span{display:block}.certificate-issue-date{position:absolute;z-index:3;bottom:10.5%;left:0;width:100%;margin:0;text-align:center;font-size:26px;font-weight:950;letter-spacing:.035em}.certificate-empty{width:min(720px,100%);display:grid;justify-items:center;gap:15px;margin:20vh auto;padding:40px;border-radius:20px;background:#fff}.certificate-empty a{color:#755e00;font-weight:900}@media (max-width:720px){.course-registration-summary{grid-template-columns:1fr 1fr}.course-registration-summary>a{grid-column:1/-1;justify-self:stretch;text-align:center}.certificate-preview-page{padding:10px}.certificate-toolbar{position:static;grid-template-columns:1fr auto}.certificate-toolbar>div{display:none}.certificate-sheet{width:100%;padding:4px}.certificate-serial{font-size:6px}.certificate-reference-title{font-size:21px}.certificate-recipient{font-size:12px}.certificate-recipient strong{font-size:14px}.certificate-copy,.certificate-note{font-size:8px}.certificate-issue-date{font-size:7px}}@media print{@page{size:A4 portrait;margin:0}body{background:#fff!important}.certificate-preview-page{padding:0;background:#fff}.certificate-toolbar{display:none!important}.certificate-pages{display:block}.certificate-sheet{width:210mm;height:297mm;aspect-ratio:auto;margin:0;padding:0;page-break-after:always;break-after:page;box-shadow:none}.certificate-sheet:last-child{page-break-after:auto;break-after:auto}.certificate-frame{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.certificate-settings-editor{display:grid;gap:15px;margin:4px 0 17px;padding:18px;border:1px solid #d9c66a;border-radius:14px;background:#fffbea}.certificate-settings-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.certificate-settings-editor>header>div:first-child{display:grid;gap:4px}.certificate-settings-editor>header strong{font-size:17px}.certificate-settings-editor>header span{color:#71684a;font-size:13px;line-height:1.5}.certificate-settings-editor>header>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.certificate-settings-editor>header button{min-height:34px;padding:0 10px;border:1px solid #ccb64e;border-radius:8px;background:#fff;color:#6d5900;font-size:12px;font-weight:900;cursor:pointer}.certificate-settings-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.certificate-settings-fields label{display:grid;gap:6px;color:#4e4a40;font-size:13px;font-weight:900}.certificate-settings-fields .wide{grid-column:1/-1}.certificate-settings-fields input,.certificate-settings-fields textarea{width:100%;padding:10px 12px;border:1px solid #d8d1bc;border-radius:9px;background:#fff;color:#171717;font:inherit;line-height:1.55;resize:vertical}.certificate-settings-fields input{min-height:46px}.certificate-settings-fields input:focus,.certificate-settings-fields textarea:focus{outline:3px solid #ffd40033;border-color:#ad9200}.certificate-settings-fields small{color:#766f61;font-size:11px;font-weight:500;line-height:1.55}.certificate-settings-fields code{padding:2px 4px;border-radius:4px;background:#f0ebd6;color:#625100;font-size:11px}.certificate-settings-editor>footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.certificate-settings-editor>footer span{color:#366949;font-size:13px;font-weight:800;line-height:1.5}.certificate-settings-editor>footer span.error{color:#9b3f31}.certificate-settings-editor button:disabled,.certificate-settings-fields input:disabled,.certificate-settings-fields textarea:disabled{cursor:not-allowed;opacity:.6}.certificate-settings-editor .certificate-note{align-self:end;margin:0 0 1%;color:#756a50;font-size:11px;line-height:1.5}@media (max-width:720px){.certificate-settings-editor>header{flex-direction:column}.certificate-settings-editor>header>div:last-child{justify-content:flex-start}.certificate-settings-fields{grid-template-columns:1fr}.certificate-settings-fields .wide{grid-column:auto}.certificate-settings-editor>footer{align-items:stretch;flex-direction:column}.certificate-settings-editor>footer button{width:100%}}.registration-list .ops-row{min-width:1080px;grid-template-columns:180px minmax(190px,1fr) minmax(260px,1.3fr) 105px 105px 105px}.registration-edit-button{min-height:38px;padding:0 11px;border:1px solid #cdb74e;border-radius:8px;background:#fff8cf;color:#6e5800;font-size:13px;font-weight:900;cursor:pointer}.registration-edit-button:hover{background:#ffe96a}.registration-edit-modal select,.registration-edit-modal textarea{width:100%;padding:0 13px;border:1px solid #dcd8ce;border-radius:10px;background:white;font:inherit}.registration-edit-modal select{min-height:52px}.registration-edit-modal textarea{padding-block:11px;resize:vertical}.registration-edit-check{display:flex!important;align-items:center;gap:9px!important;min-height:52px;padding:0 13px;border:1px solid #e0d9bc;border-radius:10px;background:#fffbed}.registration-edit-check input{width:18px!important;min-height:18px!important;accent-color:#171717}.primary-button:disabled{cursor:not-allowed;opacity:.45}.course-audit-card{padding-bottom:18px}.course-audit-list{display:grid;gap:0;margin-top:15px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.course-audit-list>article{display:grid;grid-template-columns:180px minmax(180px,.6fr) minmax(320px,1.4fr);gap:18px;padding:16px 18px;border-top:1px solid var(--line);background:#fff}.course-audit-list>article:first-child{border-top:0}.course-audit-list header{display:grid;align-content:start;gap:4px}.course-audit-list time{color:#6d685e;font-size:13px}.course-audit-list strong{font-size:15px}.course-audit-list small{color:#8b6d00;font-size:12px;font-weight:800}.course-audit-list ul{display:grid;gap:6px;margin:0;padding-left:19px;color:#4f4c45;font-size:14px;line-height:1.6}@media (max-width:720px){.course-audit-list>article{grid-template-columns:1fr;gap:10px;padding:15px}.course-audit-list header{grid-template-columns:1fr auto}.course-audit-list header time{grid-column:1/-1}.course-audit-list ul{padding-left:18px}}.editable-time legend{margin-bottom:8px;font-size:16px;font-weight:700}@media (max-width:580px){.session-editor .editable-time{grid-column:2}}