:root{--c-red:#e4002b;--c-red-tint:#fff1f3;--c-ink:#111;--c-ink-2:#6d6d6d;--c-ink-3:#9a9a9a;--c-line:#d9d9d9;--c-line-2:#eaeaea;--c-surface:#fff;--c-bg:#fafafa;--c-chip:#f5f5f5;--c-chip-2:#e8e8e8;--c-meter:#eaeaea;--c-on-dark:#bebebe;--c-white:#fff;--f-sans:"Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--f-latin:"Inter", "Segoe UI Variable Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sidebar-w:200px;--pad-left:40px;--pad-right:60px;--radius:2px;--head-num-top:18px;--head-title-top:42px;--head-date-top:52px;--rule-y:132px;--shadow-pop:0 18px 48px #11111129}.t-title-xl{font:700 34px/46px var(--f-sans);letter-spacing:-.2px}.t-section{font:700 20px/27px var(--f-sans)}.t-section-sm{font:700 18px/24px var(--f-sans)}.t-card-title{font:700 16px/22px var(--f-sans)}.t-item{font:700 15px/20px var(--f-sans)}.t-item-md{font:500 15px/20px var(--f-sans)}.t-body{font:400 14px/19px var(--f-sans)}.t-meta{font:500 12px/16px var(--f-sans)}.t-micro{font:400 11px/15px var(--f-sans)}.t-micro-md{font:500 11px/15px var(--f-sans)}.t-num-xl{font:700 50px/68px var(--f-latin);letter-spacing:-1px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol{margin:0}ul,ol{padding:0;list-style:none}svg{display:block}body{background:var(--c-bg);color:var(--c-ink);font-family:var(--f-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea{font:inherit;color:inherit;background:0 0;border:0;outline:none}a{color:inherit;text-decoration:none}::selection{background:#ffd7de}.app{background:var(--c-bg);min-height:100vh;display:flex}.app__main{min-width:0;padding:0 var(--pad-right) 48px var(--pad-left);flex:1}.sidebar{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);background:var(--c-surface);border-right:1px solid var(--c-line);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar__rule-top{background:var(--c-red);flex:0 0 8px;height:8px}.sidebar__brand{padding:20px 24px 0}.sidebar__brand-name{font:700 20px/27px var(--f-sans);letter-spacing:-.1px}.sidebar__brand-sub{font:600 10px/14px var(--f-latin);letter-spacing:.12em;color:var(--c-ink-2);text-transform:uppercase;margin-top:3px}.sidebar__brand-line{background:var(--c-line);height:1px;margin:16px 24px 0}.sidebar__nav{flex-direction:column;padding:26px 0 0;display:flex}.nav-item{height:54px;color:var(--c-ink);align-items:center;gap:12px;padding:0 24px;transition:color .14s;display:flex;position:relative}.nav-item__icon{width:20px;height:20px;color:var(--c-ink);flex:0 0 20px}.nav-item__label{font:500 15px/20px var(--f-sans)}.nav-item:hover,.nav-item:hover .nav-item__icon{color:var(--c-red)}.nav-item.is-active .nav-item__label{font-weight:700}.nav-item.is-active:before{content:"";background:var(--c-red);width:4px;height:44px;position:absolute;top:5px;left:0}.nav-item__badge{background:var(--c-red);min-width:18px;height:18px;color:var(--c-white);font:700 10px/18px var(--f-latin);text-align:center;border-radius:9px;margin-left:auto;padding:0 5px}.sidebar__foot{margin-top:auto;padding-bottom:26px}.sidebar__foot-line{background:var(--c-line);height:1px;margin:0 24px 18px}.user-chip{text-align:left;align-items:center;gap:12px;width:100%;padding:0 24px;display:flex}.user-chip__avatar{background:var(--c-ink);width:36px;height:36px;color:var(--c-white);font:700 16px/36px var(--f-sans);text-align:center;border-radius:50%;flex:0 0 36px}.user-chip__name{font:700 14px/19px var(--f-sans);display:block}.user-chip__class{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:2px;display:block}.page-head{padding:var(--head-title-top) 0 23px;border-bottom:1px solid var(--c-line);position:relative}.page-head__num{right:0;top:var(--head-num-top);font:700 16px/22px var(--f-latin);color:var(--c-red);letter-spacing:.04em;position:absolute}.page-head__date{right:0;top:var(--head-date-top);font:500 12px/16px var(--f-sans);color:var(--c-ink);position:absolute}.page-head__title{font:700 34px/46px var(--f-sans);letter-spacing:-.2px}.page-head__sub{font:400 14px/19px var(--f-sans);color:var(--c-ink-2);margin-top:2px}.sec{margin-top:34px}.sec__head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:15px;display:flex}.sec__title{font:700 20px/27px var(--f-sans)}.sec__title--sm{font:700 18px/24px var(--f-sans)}.link-red{font:700 13px/18px var(--f-sans);color:var(--c-red)}.link-red--sm{font:500 11px/15px var(--f-sans);color:var(--c-ink-2)}.pill{height:26px;font:700 12px/16px var(--f-sans);white-space:nowrap;border-radius:13px;justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.pill--red{background:var(--c-red);color:var(--c-white)}.pill--tint{background:var(--c-red-tint);color:var(--c-red)}.pill--chip{background:var(--c-chip);color:var(--c-ink-2)}.pill--chip-strong{background:var(--c-chip-2);color:var(--c-ink)}.pill--outline{background:var(--c-surface);border:1px solid var(--c-line);color:var(--c-ink-2)}.btn{border-radius:var(--radius);height:44px;font:700 15px/20px var(--f-sans);justify-content:center;align-items:center;gap:8px;padding:0 18px;transition:background .14s,color .14s,border-color .14s;display:inline-flex}.btn--primary{background:var(--c-red);color:var(--c-white)}.btn--primary:hover{background:#c50025}.btn--ghost{background:var(--c-surface);border:1px solid var(--c-line);color:var(--c-ink)}.btn--ghost:hover{border-color:var(--c-ink)}.btn--quiet{color:var(--c-ink-2);font-weight:500}.btn--quiet:hover{color:var(--c-ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.chip{border:1px solid var(--c-line);background:var(--c-surface);height:32px;font:500 12px/16px var(--f-sans);color:var(--c-ink);border-radius:16px;align-items:center;padding:0 16px;transition:all .14s;display:inline-flex}.chip:hover{border-color:var(--c-ink-3)}.chip.is-on{background:var(--c-ink);border-color:var(--c-ink);color:#fff}.field{display:block}.field__label{font:500 12px/16px var(--f-sans);color:var(--c-ink-2);margin-bottom:12px;display:block}.input,.textarea{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);width:100%;height:48px;font:400 13px/18px var(--f-sans);color:var(--c-ink);padding:0 18px;transition:border-color .14s}.textarea{resize:none;height:150px;padding:16px 18px;line-height:22px}.input::placeholder,.textarea::placeholder{color:var(--c-ink-3)}.input:focus,.textarea:focus{border-color:var(--c-ink)}.field__foot{font:500 11px/15px var(--f-latin);color:var(--c-ink-2);justify-content:flex-end;margin-top:6px;display:flex}.toggle{background:var(--c-chip-2);border-radius:12px;flex:0 0 48px;width:48px;height:24px;transition:background .16s;position:relative}.toggle:after{content:"";background:var(--c-white);border-radius:50%;width:16px;height:16px;transition:transform .16s;position:absolute;top:4px;left:4px}.toggle.is-on{background:var(--c-red)}.toggle.is-on:after{transform:translate(24px)}.meter{background:var(--c-meter);border-radius:3px;height:6px;overflow:hidden}.meter__fill{background:var(--c-red);border-radius:3px;height:100%}.panel{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius)}.ann-hero{background:var(--c-red-tint);border-radius:var(--radius);text-align:left;width:calc(100% - 60px);min-height:126px;margin-top:28px;margin-left:60px;display:block;position:relative}.ann-hero__tag{position:absolute;top:8px;left:0}.ann-hero__row{align-items:center;gap:16px;padding:44px 34px 0 24px;display:flex}.ann-hero__icon{color:var(--c-ink);flex:0 0 22px;margin-top:4px}.ann-hero__text{flex:1;min-width:0}.ann-hero__title{font:700 22px/30px var(--f-sans);display:block}.ann-hero__desc{font:400 14px/19px var(--f-sans);color:var(--c-ink-2);margin-top:6px;display:block}.ann-hero__arrow{color:var(--c-ink);flex:0 0 28px;margin-top:4px;transition:transform .16s}.ann-hero:hover .ann-hero__arrow{transform:translate(4px)}.quick-grid{grid-template-columns:repeat(3,280px);gap:40px;margin-top:13px;display:grid}.quick{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;height:104px;padding:20px;transition:border-color .14s}.quick:hover{border-color:var(--c-ink)}.quick__head{align-items:center;gap:14px;display:flex}.quick__icon{color:var(--c-ink);flex:0 0 22px}.quick__title{font:700 16px/22px var(--f-sans)}.quick__desc{font:400 12px/16px var(--f-sans);color:var(--c-ink-2);margin-top:22px;display:block}.ann-list{flex-direction:column;gap:14px;display:flex}.ann-row{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;align-items:flex-start;width:100%;height:58px;padding:10px 10px 0 27px;transition:border-color .14s;display:flex}.ann-row:hover{border-color:var(--c-ink)}.ann-row__dot{background:var(--c-ink);border-radius:50%;flex:0 0 10px;width:10px;height:10px;margin-top:9px;margin-right:23px}.ann-row__dot--red{background:var(--c-red)}.ann-row__tag{flex:none;margin-right:22px}.ann-row__text{flex:1;min-width:0}.ann-row__title{font:700 15px/20px var(--f-sans);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.ann-row__desc{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;display:block;overflow:hidden}.ann-row__time{text-align:right;font:500 11px/15px var(--f-sans);color:var(--c-ink-2);flex:0 0 100px;margin-top:3px}.ann-row__unread{background:var(--c-red);border-radius:50%;flex:0 0 6px;width:6px;height:6px;margin-top:11px;margin-left:10px}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px;display:flex}.filter-bar__spacer{flex:1}.detail{max-width:980px;margin-top:28px}.detail__meta{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.detail__title{font:700 28px/38px var(--f-sans);letter-spacing:-.2px;margin-top:18px}.detail__sub{font:500 12px/16px var(--f-sans);color:var(--c-ink-2);margin-top:10px}.detail__body{border-top:1px solid var(--c-line);font:400 15px/26px var(--f-sans);white-space:pre-wrap;margin-top:24px;padding-top:24px}.detail__attach{margin-top:28px}.fb-layout{grid-template-columns:620px 320px;align-items:start;gap:40px;margin-top:10px;display:grid}.fb-form__sec{margin-top:26px}.cat-grid{flex-wrap:wrap;gap:12px 16px;max-width:620px;display:flex}.cat-grid .chip{justify-content:flex-start;width:138px}.route-hint{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:12px}.route-hint b{color:var(--c-red);font-weight:700}.fb-form__actions{align-items:center;gap:32px;margin-top:30px;display:flex}.privacy-panel{background:var(--c-red-tint);border-radius:var(--radius);gap:14px;padding:22px;display:flex}.privacy-panel__icon{color:var(--c-ink);flex:0 0 22px;margin-top:2px}.privacy-panel__title{font:700 15px/20px var(--f-sans)}.privacy-panel__desc{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:6px}.anon-row{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);justify-content:space-between;align-items:center;height:56px;margin-top:20px;padding:0 20px;display:flex}.anon-row__label{font:500 14px/19px var(--f-sans)}.side-note{font:400 12px/16px var(--f-sans);color:var(--c-ink-2);margin-top:24px}.attach-panel{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;gap:14px;width:100%;margin-top:24px;padding:20px;display:flex}.attach-panel:hover{border-color:var(--c-ink)}.attach-panel__icon{color:var(--c-ink);flex:0 0 22px;margin-top:1px}.attach-panel__title{font:500 13px/18px var(--f-sans)}.attach-panel__hint{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:6px;display:block}.attach-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.attach-thumb{border:1px solid var(--c-line);background:var(--c-chip);height:44px;font:500 11px/42px var(--f-sans);color:var(--c-ink-2);align-items:center;gap:8px;padding:0 12px;display:inline-flex}.fb-list{flex-direction:column;gap:14px;margin-top:20px;display:flex}.fb-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;width:100%;padding:20px 22px;transition:border-color .14s}.fb-card:hover{border-color:var(--c-ink)}.fb-card__top{align-items:center;gap:12px;display:flex}.fb-card__title{min-width:0;font:700 15px/20px var(--f-sans);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fb-card__body{font:400 13px/19px var(--f-sans);color:var(--c-ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;display:-webkit-box;overflow:hidden}.fb-card__foot{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;display:flex}.dept-tag{background:var(--c-chip);height:22px;font:500 11px/15px var(--f-sans);color:var(--c-ink);border-radius:11px;align-items:center;padding:0 9px;display:inline-flex}.dept-tag--owner{background:var(--c-red-tint);color:var(--c-red)}.timeline{border-top:1px solid var(--c-line);margin-top:26px;padding-top:22px}.tl-item{padding:0 0 22px 26px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";background:var(--c-ink);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:0}.tl-item--red:before{background:var(--c-red)}.tl-item:after{content:"";background:var(--c-line);width:2px;position:absolute;top:16px;bottom:2px;left:4px}.tl-item:last-child:after{display:none}.tl-item__head{align-items:baseline;gap:10px;display:flex}.tl-item__who{font:700 13px/18px var(--f-sans)}.tl-item__when{font:400 11px/15px var(--f-sans);color:var(--c-ink-2)}.tl-item__body{font:400 13px/20px var(--f-sans);color:var(--c-ink-2);white-space:pre-wrap;margin-top:6px}.stars{gap:4px;display:inline-flex}.star{color:var(--c-line);line-height:0}.star.is-on{color:var(--c-red)}.songs-hero{background:var(--c-red-tint);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:24px;min-height:116px;margin-top:28px;padding:22px 32px 0 26px;display:flex}.songs-hero__tag{margin-bottom:8px}.songs-hero__title{font:700 22px/30px var(--f-sans)}.songs-hero__sub{font:400 12px/16px var(--f-sans);color:var(--c-ink-2);margin-top:2px}.search{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);flex:0 0 240px;align-items:center;gap:10px;width:240px;height:40px;margin-top:12px;padding:0 16px;display:flex}.search:focus-within{border-color:var(--c-ink)}.search__icon{color:var(--c-ink-2);flex:0 0 20px}.search input{min-width:0;font:400 12px/16px var(--f-sans);flex:1}.search input::placeholder{color:var(--c-ink-2)}.song-list{flex-direction:column;gap:16px;display:flex}.song-row{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);align-items:center;gap:26px;height:66px;padding:0 14px 0 18px;display:flex}.album{background:var(--c-chip-2);width:40px;height:40px;color:var(--c-ink);border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;display:flex}.album--ink{background:var(--c-ink);color:var(--c-white)}.song-row__text{flex:1;min-width:0}.song-row__title{font:700 15px/20px var(--f-sans);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.song-row__sub{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:5px;display:block}.song-row__status{flex:none;justify-content:center;width:72px;display:flex}.song-row__action{font:500 11px/15px var(--f-sans);color:var(--c-red);flex:none}.song-foot{align-items:baseline;gap:36px;margin-top:50px;display:flex}.song-foot__link{font:700 14px/19px var(--f-sans);color:var(--c-red)}.song-foot__hint{font:400 11px/15px var(--f-sans);color:var(--c-ink-2)}.offline{background:var(--c-surface);border:1px dashed var(--c-line);border-radius:var(--radius);align-items:flex-start;gap:24px;margin-top:28px;padding:44px 48px;display:flex}.offline__icon{color:var(--c-ink-3);flex:0 0 28px;margin-top:4px}.offline__title{font:700 20px/27px var(--f-sans)}.offline__desc{font:400 13px/20px var(--f-sans);color:var(--c-ink-2);max-width:620px;margin-top:8px}.song-form{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);margin-top:20px;padding:24px}.song-form__grid{grid-template-columns:1fr 1fr;gap:20px 24px;display:grid}.song-form__note{grid-column:1/-1}.song-form__actions{align-items:center;gap:20px;margin-top:20px;display:flex}.form-error{font:400 12px/16px var(--f-sans);color:var(--c-red)}.form-hint{font:400 11px/15px var(--f-sans);color:var(--c-ink-2)}.quota{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px;display:grid}.quota__cell{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:18px 20px}.quota__label{font:500 12px/16px var(--f-sans);color:var(--c-ink-2)}.quota__value{font:700 28px/38px var(--f-latin);letter-spacing:-.5px;margin-top:8px}.quota__value small{font:500 12px/16px var(--f-sans);color:var(--c-ink-2);letter-spacing:0;margin-left:6px}.stepper{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);align-items:center;padding:20px 24px;display:flex;overflow-x:auto}.step{flex:none;align-items:center;gap:10px;display:flex}.step__dot{border:2px solid var(--c-line);background:var(--c-surface);border-radius:50%;width:12px;height:12px}.step.is-done .step__dot{border-color:var(--c-ink);background:var(--c-ink)}.step.is-now .step__dot{border-color:var(--c-red);background:var(--c-red)}.step__label{font:500 12px/16px var(--f-sans);color:var(--c-ink-2)}.step.is-done .step__label,.step.is-now .step__label{color:var(--c-ink);font-weight:700}.step__bar{background:var(--c-line);flex:0 0 56px;width:56px;height:1px;margin:0 14px}.exam-bar{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:24px;height:66px;margin-top:28px;padding:14px 24px 6px;display:flex}.exam-bar__label{font:500 12px/16px var(--f-sans);color:var(--c-ink-2)}.exam-bar__name{font:700 16px/22px var(--f-sans);margin-top:8px}.exam-bar__date{font:500 12px/16px var(--f-sans);color:var(--c-ink-2);padding-top:14px}.score-band{background:var(--c-ink);border-radius:var(--radius);grid-template-columns:276px 472px 1fr;align-items:start;min-height:144px;margin-top:24px;padding:24px 0 0 32px;display:grid}.score-band__label{font:500 13px/18px var(--f-sans);color:var(--c-on-dark)}.score-band__total{font:700 50px/68px var(--f-latin);letter-spacing:-1.5px;color:var(--c-white);margin-top:6px}.score-band__rank{font:700 28px/38px var(--f-sans);color:var(--c-white);margin-top:8px}.score-band__meta{padding-left:12px}.score-band__meta-line{font:500 12px/16px var(--f-sans);color:var(--c-on-dark)}.score-band__meta-line--sm{font:400 11px/15px var(--f-sans);margin-top:12px}.subject-grid{grid-template-columns:repeat(3,310px);gap:20px;display:grid}.subject{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);height:82px;padding:14px 0 0 18px;position:relative}.subject__name{font:500 13px/18px var(--f-sans)}.subject__score{align-items:baseline;gap:6px;margin-top:6px;display:flex}.subject__value{font:700 24px/32px var(--f-latin);letter-spacing:-.4px}.subject__full{font:500 11px/15px var(--f-latin);color:var(--c-ink-2)}.subject__meter{width:132px;position:absolute;top:50px;right:24px}.subject--items{height:auto;min-height:82px;padding-bottom:14px}.subject__items{flex-wrap:wrap;gap:4px 12px;margin-top:40px;padding-right:18px;display:flex}.subject__item{font:400 10px/15px var(--f-sans);color:var(--c-ink-2);white-space:nowrap}.subject__item b{font-family:var(--f-latin);color:var(--c-ink);font-weight:600}.note{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:40px}.id-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);align-items:flex-start;gap:32px;min-height:126px;margin-top:28px;padding:24px;display:flex;position:relative}.id-card__avatar{background:var(--c-ink);width:78px;height:78px;color:var(--c-white);font:700 30px/78px var(--f-sans);text-align:center;border-radius:50%;flex:0 0 78px}.id-card__name{font:700 20px/27px var(--f-sans)}.id-card__row{align-items:center;gap:22px;margin-top:9px;display:flex}.id-card__no{font:500 12px/16px var(--f-sans);color:var(--c-ink-2)}.id-card__device{text-align:right;gap:10px;display:flex;position:absolute;top:30px;right:24px}.id-card__device-icon{color:var(--c-ink);margin-top:2px}.id-card__device-title{font:700 13px/18px var(--f-sans)}.id-card__device-sub{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:10px}.task-list{flex-direction:column;gap:18px;display:flex}.task-row{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;align-items:center;gap:22px;width:100%;height:60px;padding:0 20px 0 22px;transition:border-color .14s;display:flex}.task-row:hover{border-color:var(--c-ink)}.task-row__icon{color:var(--c-ink);flex:0 0 22px}.task-row__text{flex:1;min-width:0}.task-row__title{font:700 15px/20px var(--f-sans);display:block}.task-row__sub{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);margin-top:4px;display:block}.task-row__go{font:500 12px/16px var(--f-sans);color:var(--c-red);align-items:center;gap:14px;display:flex}.notif-banner{background:var(--c-surface);border:1px solid var(--c-line);border-left:3px solid var(--c-red);border-radius:var(--radius);text-align:left;align-items:center;gap:14px;width:100%;margin-bottom:18px;padding:14px 18px;display:flex}.notif-banner__text{min-width:0;font:400 13px/18px var(--f-sans);color:var(--c-ink-2);flex:1}.notif-banner__text strong{color:var(--c-red);font-weight:700}.notif-banner__go{font:500 12px/16px var(--f-sans);color:var(--c-red);align-items:center;gap:6px;display:flex}.notif-row{gap:14px;height:auto;min-height:68px;padding-top:12px;padding-bottom:12px}.notif-row__dot{background:var(--c-red);border-radius:50%;flex:0 0 8px;width:8px;height:8px}.notif-row__dot.is-read{border:1px solid var(--c-line);background:0 0}.notif-row__kind{background:var(--c-chip);color:var(--c-ink-2);font:500 10px/16px var(--f-sans);vertical-align:1px;border-radius:3px;margin-right:8px;padding:1px 6px;display:inline-block}.notif-row__time{font:400 11px/16px var(--f-sans);color:var(--c-ink-3);white-space:nowrap;flex:none;margin-left:auto}.notif-row .task-row__go{flex:none}.account-row{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;align-items:center;gap:16px;width:100%;height:54px;padding:0 18px 0 20px;display:flex}.account-row+.account-row{margin-top:14px}.account-row__icon{color:var(--c-ink);flex:0 0 20px}.account-row__label{font:500 13px/18px var(--f-sans)}.account-row__hint{font:400 11px/15px var(--f-sans);color:var(--c-ink-2)}.account-row__danger{font:500 12px/16px var(--f-sans);color:var(--c-red);margin-left:auto}.gate{background:var(--c-bg);justify-content:center;align-items:center;min-height:100vh;padding:48px;display:flex}.gate__card{background:var(--c-surface);border:1px solid var(--c-line);border-top:8px solid var(--c-red);border-radius:var(--radius);width:560px;padding:40px 44px 36px}.gate__brand{font:700 26px/34px var(--f-sans)}.gate__sub{font:600 10px/14px var(--f-latin);letter-spacing:.14em;color:var(--c-ink-2);text-transform:uppercase;margin-top:6px}.gate__title{font:700 20px/27px var(--f-sans);margin-top:32px}.gate__desc{font:400 13px/20px var(--f-sans);color:var(--c-ink-2);margin-top:8px}.gate__code{gap:12px;margin-top:26px;display:flex}.gate__code input{border:1px solid var(--c-line);border-radius:var(--radius);text-align:center;width:64px;height:72px;font:700 28px/70px var(--f-latin);background:var(--c-surface);transition:border-color .14s}.gate__code input:focus{border-color:var(--c-ink)}.gate__actions{align-items:center;gap:20px;margin-top:26px;display:flex}.gate__foot{border-top:1px solid var(--c-line);font:400 11px/16px var(--f-sans);color:var(--c-ink-2);margin-top:26px;padding-top:20px}.gate__error{font:400 12px/16px var(--f-sans);color:var(--c-red);margin-top:14px}.setup-gate{background:var(--c-bg);justify-content:center;align-items:center;min-height:100vh;padding:40px 24px;display:flex}.setup-card{background:var(--c-surface);border:1px solid var(--c-line);border-top:8px solid var(--c-red);border-radius:var(--radius);width:620px;max-width:100%;padding:38px 44px 32px}.setup-hero__top{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.setup-brand{font:700 26px/34px var(--f-sans)}.setup-brand-sub{font:600 10px/14px var(--f-latin);letter-spacing:.14em;color:var(--c-ink-2);margin-top:4px}.setup-chip{border:1px solid var(--c-line);background:var(--c-chip);height:30px;font:500 11px/15px var(--f-sans);color:var(--c-ink-2);white-space:nowrap;border-radius:15px;flex:none;align-items:center;padding:0 12px;display:inline-flex}.setup-hero-sub{font:400 12px/18px var(--f-sans);color:var(--c-ink-2);margin-top:16px}.setup-title{font:700 24px/32px var(--f-sans);letter-spacing:-.2px;margin-top:26px}.setup-desc{font:400 13px/21px var(--f-sans);color:var(--c-ink-2);margin-top:8px}.setup-section{border-top:1px solid var(--c-line-2);margin-top:26px;padding-top:22px}.setup-section__title{font:700 16px/22px var(--f-sans);align-items:center;gap:9px;display:flex}.setup-no{background:var(--c-red);width:22px;height:22px;color:var(--c-white);font:700 11px/22px var(--f-latin);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.setup-req,.setup-opt{font:500 10px/15px var(--f-sans);border-radius:10px;padding:1px 7px}.setup-req{color:var(--c-red);background:var(--c-red-tint)}.setup-opt{color:var(--c-ink-2);background:var(--c-chip)}.setup-tip{font:400 11px/17px var(--f-sans);color:var(--c-ink-2);margin-top:8px}.setup-fields{flex-direction:column;gap:16px;margin-top:16px;display:flex}.setup-actions{gap:12px;margin-top:26px;display:flex}.setup-actions .btn{flex:1}.setup-out{border-top:1px solid var(--c-line-2);width:100%;font:400 11px/16px var(--f-sans);color:var(--c-ink-2);text-align:center;cursor:pointer;margin-top:22px;padding-top:18px;display:block}.setup-out:hover{color:var(--c-ink)}.setup-done{border:1px solid var(--c-line-2);background:var(--c-bg);align-items:flex-start;gap:18px;margin-top:24px;padding:20px;display:flex}.setup-done__icon{background:var(--c-red);width:40px;height:40px;color:var(--c-white);font:700 20px/40px var(--f-latin);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.setup-summary{flex-direction:column;gap:8px;min-width:0;display:flex}.setup-summary>div{font:400 12px/18px var(--f-sans);align-items:baseline;gap:12px;display:flex}.setup-summary span{width:48px;color:var(--c-ink-2);flex:none}.setup-summary strong{color:var(--c-ink);word-break:break-all;font-weight:600}@media (width<=640px){.setup-gate{align-items:flex-start;padding:20px 14px}.setup-card{padding:28px 22px 24px}.setup-hero__top{flex-direction:column;gap:12px}.setup-actions{flex-direction:column-reverse}}.toast-wrap{z-index:60;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.toast{background:var(--c-ink);color:var(--c-white);border-radius:var(--radius);font:500 13px/18px var(--f-sans);box-shadow:var(--shadow-pop);padding:12px 20px;animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-mask{z-index:50;background:#11111152;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.modal{background:var(--c-surface);border-top:4px solid var(--c-red);border-radius:var(--radius);width:420px;box-shadow:var(--shadow-pop);padding:28px 28px 24px}.modal__title{font:700 18px/24px var(--f-sans)}.modal__desc{font:400 13px/19px var(--f-sans);color:var(--c-ink-2);margin-top:8px}.modal__actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.empty{text-align:center;border:1px dashed var(--c-line);border-radius:var(--radius);margin-top:24px;padding:48px 0}.empty__title{font:700 15px/20px var(--f-sans)}.empty__desc{font:400 12px/16px var(--f-sans);color:var(--c-ink-2);margin-top:8px}@media (width<=1180px){.app__main{padding-right:40px}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}.fb-layout{grid-template-columns:minmax(0,1fr) 300px;gap:28px}.subject-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.score-band{grid-template-columns:200px 260px 1fr}.cat-grid .chip{width:auto}}@media (width<=900px){.sidebar{flex:0 0 84px;width:84px}.sidebar__brand,.user-chip__name,.user-chip__class,.nav-item__label,.sidebar__brand-line,.sidebar__foot-line{display:none}.nav-item,.user-chip{justify-content:center;padding:0}.fb-layout{grid-template-columns:minmax(0,1fr)}.ann-hero{width:100%;margin-left:0}.score-band{grid-template-columns:1fr 1fr;gap:16px}.score-band__meta{grid-column:1/-1;padding-left:0}}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:26px;display:grid}.stat{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;flex-direction:column;gap:6px;padding:18px 20px;display:flex}.stat--accent{background:var(--c-red-tint);border-color:var(--c-red-tint)}.stat__label{font:500 12px/16px var(--f-sans);color:var(--c-ink-2)}.stat__value{font:700 28px/36px var(--f-latin);letter-spacing:-.6px}.stat__value small{font:500 12px/16px var(--f-sans);color:var(--c-ink-2);letter-spacing:0;margin-left:4px}.stat__hint{font:400 11px/15px var(--f-sans);color:var(--c-ink-2)}.task-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);text-align:left;flex-direction:column;gap:6px;width:100%;padding:14px 16px;display:flex}.task-card:hover{border-color:var(--c-ink)}.task-card__top{align-items:center;gap:8px;display:flex}.task-card__title{min-width:0;font:700 14px/19px var(--f-sans);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.task-card__artist{font:400 12px/16px var(--f-sans);color:var(--c-ink-2);margin-left:8px}.task-card__meta{font:400 11px/15px var(--f-sans);color:var(--c-ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.split-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px;display:grid}.split-detail{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;margin-top:24px;display:grid}.tool-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.data-wrap{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);max-height:460px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font:400 12px/18px var(--f-sans)}.data-table th{background:var(--c-bg);text-align:left;border-bottom:1px solid var(--c-line);font:600 11px/15px var(--f-sans);color:var(--c-ink-2);white-space:nowrap;padding:10px 12px;position:sticky;top:0}.data-table td{border-bottom:1px solid var(--c-line-2);padding:9px 12px}@media (width<=1180px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-2,.split-detail{grid-template-columns:minmax(0,1fr)}}.attach-thumb{border:1px solid var(--c-line);background:var(--c-chip);min-width:44px;height:44px;font:500 11px/42px var(--f-sans);color:var(--c-ink-2);align-items:center;gap:8px;padding:0 12px;display:inline-flex;position:relative;overflow:hidden}.attach-thumb:has(.attach-thumb__img){width:56px;height:56px;padding:0;line-height:0}.attach-thumb__img{object-fit:cover;width:100%;height:100%;display:block}.attach-thumb__x{color:#fff;width:16px;height:16px;font:700 11px/16px var(--f-sans);text-align:center;cursor:pointer;background:#111111b8;border-radius:50%;position:absolute;top:2px;right:2px}.attach-thumb__x:hover{background:var(--c-red)}.attach-item{border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface);height:40px;font:500 12px/16px var(--f-sans);color:var(--c-ink);align-items:center;gap:8px;padding:0 14px;text-decoration:none;display:inline-flex}.attach-item:hover{border-color:var(--c-ink)}.attach-grid{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.attach-grid img{object-fit:cover;border:1px solid var(--c-line);border-radius:var(--radius);width:120px;height:120px}.offline-bar{background:var(--c-chip);border-left:3px solid var(--c-ink-2);font:500 12px/16px var(--f-sans);color:var(--c-ink-2);align-items:center;gap:10px;margin-top:14px;padding:10px 14px;display:flex}.attach-panel__trigger{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.attach-panel__trigger:disabled{cursor:not-allowed;opacity:.6}.app--embed{display:block}.app--embed .app__main{min-height:100vh;padding:24px 32px 40px}.app--embed .sidebar{display:none}.web--embed .web__body{padding:20px 24px 40px}.web--embed .web__top{gap:16px;height:52px;padding:0 20px}.chip--vip{border-color:var(--c-red);color:var(--c-red);font-weight:700;position:relative}.chip--vip:before{content:"";background:var(--c-red);border-radius:50%;width:6px;height:6px;margin-right:7px}.chip--vip.is-on{background:var(--c-red);border-color:var(--c-red);color:#fff}.chip--vip.is-on:before{background:#fff}.vip-tag{background:var(--c-red);color:#fff;height:22px;font:700 11px/15px var(--f-sans);letter-spacing:.02em;border-radius:11px;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.vip-note{border-left:3px solid var(--c-red);background:var(--c-red-tint);color:#8a0018;font:500 12px/18px var(--f-sans);align-items:center;gap:6px;margin-top:10px;padding:8px 12px;display:inline-flex}.msg-head{align-items:center;gap:14px;margin-top:18px;display:flex}.msg-list{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);flex-direction:column;gap:10px;min-height:280px;margin-top:20px;padding:18px;display:flex}.msg-bubble{border:1px solid var(--c-line);background:#fff;border-radius:12px;align-self:flex-start;max-width:76%;padding:10px 14px}.msg-bubble--mine{background:var(--c-ink);border-color:var(--c-ink);color:#fff;align-self:flex-end}.msg-bubble__body{white-space:pre-wrap;word-break:break-word;font:400 14px/22px var(--f-sans)}.msg-bubble__time{font:400 10px/14px var(--f-latin);opacity:.6;margin-top:4px}.msg-compose{margin-top:16px}.msg-compose__foot{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.gate__class{flex-direction:column;gap:10px;max-width:320px;margin-top:20px;display:flex}.gate__class select.input{height:44px}.notify-host{z-index:90;flex-direction:column;gap:10px;max-width:380px;display:flex;position:fixed;top:18px;right:18px}.notify-card{border:1px solid var(--c-line);border-left:4px solid var(--c-red);background:#fff;align-items:flex-start;gap:10px;padding:12px;animation:.22s ease-out notify-in;display:flex;box-shadow:0 10px 28px #11111124}@keyframes notify-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notify-card.is-ann{border-left-color:#111}.notify-card__icon{background:var(--c-red-tint);width:30px;height:30px;color:var(--c-red);border-radius:50%;flex:none;place-items:center;display:grid}.notify-card.is-ann .notify-card__icon{color:#111;background:#f1f1f1}.notify-card__body{flex:1;min-width:0}.notify-card__kind{font:700 10px/14px var(--f-sans);letter-spacing:.14em;color:#999;text-transform:uppercase}.notify-card__title{font:600 14px/20px var(--f-sans);color:var(--c-ink);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;display:-webkit-box;overflow:hidden}.notify-card__text{font:400 12px/17px var(--f-sans);color:#666;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;display:-webkit-box;overflow:hidden}.notify-card__actions{flex:none;align-items:center;gap:4px;display:flex}.notify-card__open{border:1px solid var(--c-red);background:var(--c-red);color:#fff;height:26px;font:600 12px/1 var(--f-sans);cursor:pointer;border-radius:2px;padding:0 10px}.notify-card__close{color:#999;cursor:pointer;background:0 0;border:0;width:26px;height:26px;font-size:18px;line-height:1}.notify-card__close:hover{color:#111}@media (width<=900px){.notify-host{max-width:none;left:12px;right:12px}}.cal{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:22px;margin-top:22px;display:grid}.cal__bar{grid-column:1/-1;align-items:center;gap:10px;display:flex}.cal__nav{border:1px solid var(--c-line);cursor:pointer;background:#fff;border-radius:2px;width:30px;height:30px;font-size:16px;line-height:1}.cal__month{font:700 18px/1.2 var(--f-sans)}.cal__grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal__wday{font:600 11px/1 var(--f-sans);color:#999;text-align:center;letter-spacing:.08em;padding-bottom:4px}.cal__cell{border:1px solid var(--c-line);text-align:left;cursor:pointer;background:#fff;border-radius:2px;flex-direction:column;gap:4px;min-height:58px;padding:7px 6px;display:flex;position:relative}.cal__cell:hover{border-color:var(--c-ink-3)}.cal__cell.is-empty{cursor:default;background:0 0;border:0}.cal__cell.is-today .cal__date{color:var(--c-red);font-weight:700}.cal__cell.is-on{border-color:var(--c-ink);box-shadow:inset 0 0 0 1px var(--c-ink)}.cal__date{font:600 13px/1 var(--f-sans);color:var(--c-ink)}.cal__dot{background:#bbb;border-radius:50%;width:6px;height:6px}.cal__dot--exam{background:var(--c-red)}.cal__dot--activity{background:#111}.cal__dot--holiday{background:#1f9d55}.cal__dot--deadline{background:#d97706}.cal__count{font:500 10px/1 var(--f-sans);color:#999;position:absolute;bottom:4px;right:5px}.cal__side{border:1px solid var(--c-line);background:#fff;padding:16px}.cal__side-head{font:700 15px/1.2 var(--f-sans);justify-content:space-between;align-items:center;display:flex}.cal__form{flex-direction:column;gap:8px;margin-top:12px;display:flex}.cal__form input{border:1px solid var(--c-line);height:34px;font:400 13px/1 var(--f-sans);border-radius:2px;padding:0 10px}.cal__list{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.cal__item{background:#fafafa;border-left:3px solid #ccc;gap:10px;padding:10px;display:flex}.cal__item--exam{border-left-color:var(--c-red)}.cal__item--activity{border-left-color:#111}.cal__item--holiday{border-left-color:#1f9d55}.cal__item--deadline{border-left-color:#d97706}.cal__kind{font:700 10px/16px var(--f-sans);letter-spacing:.1em;color:#888;flex:none}.cal__item-body{flex:1;min-width:0}.cal__title{font:600 13px/18px var(--f-sans);color:var(--c-ink)}.cal__note{font:400 12px/17px var(--f-sans);color:#666;margin-top:2px}.cal__meta{font:400 11px/15px var(--f-sans);color:#999;margin-top:4px}.cal__del{color:var(--c-red);font:500 12px/1 var(--f-sans);cursor:pointer;background:0 0;border:0;flex:none}.trend{border-top:1px solid var(--c-line);margin-top:26px;padding-top:18px}.trend__head{justify-content:space-between;align-items:baseline;display:flex}.trend__title{font:700 16px/1.3 var(--f-sans)}.trend__sub{font:400 12px/1.5 var(--f-sans);color:#888}.trend__chart{width:100%;height:190px;margin-top:14px}.trend__list{border-top:1px solid var(--c-line);margin-top:12px}.trend__row{border-bottom:1px solid var(--c-line);font:400 13px/1.5 var(--f-sans);grid-template-columns:1fr auto auto;gap:12px;padding:9px 0;display:grid}.trend__row b{font-weight:700}.trend__pct{color:#888}@media (width<=1000px){.cal{grid-template-columns:1fr}}.web{background:var(--c-bg);flex-direction:column;min-height:100vh;display:flex}.web__top{z-index:20;background:var(--c-surface);border-bottom:1px solid var(--c-line);border-top:4px solid var(--c-red);align-items:center;gap:32px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.web__brand{flex:none;align-items:center;gap:10px;display:flex}.web__logo{background:var(--c-red);width:10px;height:26px}.web__brand-name{font:700 16px/20px var(--f-sans);display:block}.web__brand-sub{font:600 9px/12px var(--f-latin);letter-spacing:.14em;color:var(--c-ink-2);display:block}.web__nav{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.web__nav-item{height:64px;font:500 13px/18px var(--f-sans);color:var(--c-ink-2);align-items:center;padding:0 14px;display:inline-flex;position:relative}.web__nav-item:hover{color:var(--c-ink)}.web__nav-item.is-active{color:var(--c-ink);font-weight:700}.web__nav-item.is-active:after{content:"";background:var(--c-red);height:3px;position:absolute;bottom:0;left:14px;right:14px}.web__right{flex:none;align-items:center;gap:12px;display:flex}.web__user{text-align:left;align-items:center;gap:10px;display:flex}.web__avatar{background:var(--c-ink);width:30px;height:30px;color:var(--c-white);font:700 12px/30px var(--f-sans);text-align:center;border-radius:50%}.web__user-name{font:700 12px/16px var(--f-sans);display:block}.web__user-role{font:400 10px/14px var(--f-sans);color:var(--c-ink-2);display:block}.web__logout{font:500 12px/16px var(--f-sans);color:var(--c-ink-2);border:1px solid var(--c-line);padding:6px 10px}.web__logout:hover{color:var(--c-red);border-color:var(--c-red)}.web__body{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:26px 28px 56px}.web-head{border-bottom:1px solid var(--c-line);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:16px;display:flex}.web-head__title{font:700 24px/32px var(--f-sans);letter-spacing:-.2px}.web-head__desc{font:400 12px/18px var(--f-sans);color:var(--c-ink-2);margin-top:4px}.web-head__actions{flex:none;gap:8px;display:flex}.wgrid{gap:14px;margin-top:18px;display:grid}.wgrid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.wgrid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.wgrid--6{grid-template-columns:repeat(6,minmax(0,1fr))}.wcard{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:18px 20px}.wcard--stat{flex-direction:column;gap:6px;display:flex}.wcard__label{font:500 11px/15px var(--f-sans);color:var(--c-ink-2)}.wcard__value{font:700 24px/30px var(--f-latin);letter-spacing:-.5px}.wcard__value small{font:500 11px/15px var(--f-sans);color:var(--c-ink-2);letter-spacing:0;margin-left:4px}.wcard__hint{font:400 10px/14px var(--f-sans);color:var(--c-ink-2)}.wcard__title{font:700 14px/20px var(--f-sans)}.wsection{margin-top:26px}.wsection__head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.wsection__title{font:700 15px/20px var(--f-sans)}.wmeta{font:400 11px/16px var(--f-sans);color:var(--c-ink-2)}.wnote{background:var(--c-red-tint);border-left:3px solid var(--c-red);font:500 12px/18px var(--f-sans);color:var(--c-ink);margin-top:12px;padding:10px 12px}.wfoot{font:400 11px/16px var(--f-sans);color:var(--c-ink-2);margin-top:22px}.wrow{align-items:center;display:flex}.wbtn{border-radius:var(--radius);height:30px;font:600 12px/16px var(--f-sans);white-space:nowrap;justify-content:center;align-items:center;padding:0 12px;transition:background .14s,color .14s,border-color .14s;display:inline-flex}.wbtn--primary{background:var(--c-red);color:var(--c-white)}.wbtn--primary:hover{background:#c50025}.wbtn--ghost{border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-ink)}.wbtn--ghost:hover{border-color:var(--c-ink)}.wbtn--quiet{color:var(--c-ink-2)}.wbtn--quiet:hover{color:var(--c-ink)}.wbtn--danger{color:var(--c-red)}.wbtn--danger:hover{background:var(--c-red-tint)}.wbtn:disabled{opacity:.4;cursor:not-allowed}.winput{border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface);height:30px;font:400 12px/16px var(--f-sans);color:var(--c-ink);padding:0 10px}.winput:focus{border-color:var(--c-ink);outline:none}.wtoggle{border:1px solid var(--c-line);background:var(--c-surface);height:28px;font:500 11px/15px var(--f-sans);color:var(--c-ink);border-radius:14px;padding:0 12px}.wtoggle.is-on{background:var(--c-red-tint);border-color:var(--c-red);color:var(--c-red);font-weight:700}.wtag{background:var(--c-chip);height:24px;font:500 10px/14px var(--f-sans);color:var(--c-ink);border-radius:12px;align-items:center;padding:0 9px;display:inline-flex}.wtable{border-collapse:collapse;width:100%;font:400 12px/18px var(--f-sans)}.wtable th{text-align:left;background:var(--c-bg);border-bottom:1px solid var(--c-line);font:600 11px/15px var(--f-sans);color:var(--c-ink-2);white-space:nowrap;padding:10px 12px}.wtable td{border-bottom:1px solid var(--c-line-2);vertical-align:middle;padding:11px 12px}.wtable tr:last-child td{border-bottom:0}.wtable tr:hover td{background:#fcfcfc}.wtable__strong{font-weight:700}.wtable__sub{color:var(--c-ink-2)}.wtabs{border-bottom:1px solid var(--c-line);gap:2px;margin-top:26px;display:flex}.wtabs__item{height:38px;font:500 12px/16px var(--f-sans);color:var(--c-ink-2);padding:0 14px;position:relative}.wtabs__item.is-active{color:var(--c-ink);font-weight:700}.wtabs__item.is-active:after{content:"";background:var(--c-red);height:2px;position:absolute;bottom:-1px;left:10px;right:10px}@media (width<=1100px){.wgrid--6{grid-template-columns:repeat(3,minmax(0,1fr))}.wgrid--2{grid-template-columns:minmax(0,1fr)}}.walert{border:1px solid #f3c0c6;border-left:4px solid var(--c-red);color:#8a1220;font:400 13px/1.6 var(--f-sans);background:#fff1f2;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;display:flex}.walert b{white-space:nowrap;font-weight:700}
