:root{--ink:#16313b;--ink-soft:#557079;--paper:#f7f8f5;--surface:#ffffff;--line:#e1e8e6;--teal:#0b7a75;--teal-dark:#0c585b;--coral:#e8735f;--orange:#e69b42;--blue:#6c9fbd;--purple:#9276b9;--green:#72a68c;--shadow:0 12px 35px rgba(25,57,66,0.07)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--paper);color:var(--ink);font-family:Arial,Microsoft YaHei,sans-serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid rgba(11,122,117,.24);outline-offset:2px}.app-shell{display:flex;min-height:100vh}.sidebar{width:242px;background:#123844;color:#e9f1ef;padding:25px 15px 17px;display:flex;flex-direction:column;flex-shrink:0}.brand-mark,.mobile-brand{display:flex;gap:10px;align-items:center}.brand-logo{width:34px;height:34px;display:block;flex:0 0 34px}.brand-logo img{width:100%;height:100%;display:block;object-fit:cover;border-radius:11px}.brand-mark strong,.mobile-brand strong{font-size:16px;display:block;letter-spacing:.01em;white-space:nowrap}.brand-mark span{display:block;font-size:11px;color:#97b6b6;margin-top:4px}.brand-star{width:34px;height:34px;display:grid;place-items:center;color:#123844;background:#cbe7c9;border-radius:11px}.role-switch{background:rgba(255,255,255,.08);display:flex;padding:3px;border-radius:9px;margin:32px 0 22px}.role-switch button{color:#9db4b6;border:0;background:transparent;padding:9px 8px;flex:1 1;border-radius:7px;font-size:12px;display:flex;align-items:center;justify-content:center;gap:6px}.role-switch button.active{background:#f6faf7;color:var(--ink)}.side-nav{display:grid;grid-gap:5px;gap:5px}.bottom-nav button,.side-nav button{border:0;background:transparent;color:#a9c0c0;min-height:44px;border-radius:9px;display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left;position:relative}.side-nav button.active,.side-nav button:hover{background:rgba(210,240,229,.12);color:#f4fbf7}.side-nav button.active:before{content:"";position:absolute;left:0;height:19px;width:3px;border-radius:2px;background:#f1b477}.side-nav span{font-size:13px;flex:1 1}.nav-badge{width:20px;height:20px;display:grid;place-items:center;border-radius:6px;background:#e8735f;color:white;font-size:10px}.sidebar-footer{margin-top:auto;display:grid;grid-gap:14px;gap:14px}.sync-mini{border-top:1px solid rgba(255,255,255,.11);padding:17px 4px 0;font-size:11px;color:#a9c0c0;display:flex;align-items:center;gap:7px}.sync-mini small{margin-left:auto;color:#7fa09f}.live-dot{width:7px;height:7px;border-radius:50%;background:#7ed6a3}.profile-mini{color:#ecf8f0;border:0;background:transparent;display:flex;align-items:center;gap:9px;text-align:left;padding:4px}.profile-mini>span{flex:1 1;min-width:0}.profile-mini small,.profile-mini strong{display:block}.profile-mini strong{font-size:12px}.profile-mini small{color:#8eabad;font-size:10px;margin-top:4px}.main-column{min-width:0;flex:1 1}.topbar{min-height:72px;background:rgba(247,248,245,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 40px;position:-webkit-sticky;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.breadcrumb{font-size:12px;color:#7a8d91}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.filter-button,.help-button,.icon-button,.outline-button,.text-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px}.icon-button{width:36px;height:36px;padding:0;position:relative}.icon-button.has-dot:after{content:"";position:absolute;width:6px;height:6px;background:var(--coral);border:2px solid var(--paper);border-radius:50%;top:6px;right:6px}.help-button{padding:9px 12px;font-size:12px}.page-content{max-width:1300px;margin:0 auto;padding:38px 40px 55px}.content-stack{display:grid;grid-gap:30px;gap:30px}.eyebrow{margin:0 0 8px;color:var(--teal);text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-.03em;margin-bottom:8px;line-height:1.1}h2{font-size:18px;margin-bottom:0;letter-spacing:-.015em}h3{font-size:15px;margin-bottom:7px}.muted{color:var(--ink-soft);font-size:13px;line-height:1.65}.section-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:15px}.section-title .eyebrow{margin-bottom:5px}.text-button{border:0;background:transparent;color:var(--teal);font-size:12px;padding:6px 0}.filter-button,.outline-button{padding:10px 13px;font-size:12px}.outline-button.small{padding:7px 10px}.outline-button.full{width:100%}.primary-button{background:var(--teal);color:white;border:0;padding:11px 15px;border-radius:8px;font-size:12px;display:inline-flex;align-items:center;gap:7px;justify-content:center}.primary-button:hover{background:var(--teal-dark)}.heading-actions{display:flex;gap:8px}.page-heading,.profile-banner,.welcome-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.welcome-row h1 span{color:#dfaa5c;font-size:19px;vertical-align:top}.hero-avatar{position:relative}.avatar{background:#d8e8e1;color:var(--teal-dark);width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:13px;font-weight:700;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;display:block;object-fit:cover}.avatar.large{width:60px;height:60px;border-radius:19px;font-size:22px;background:#f2c8ab;color:#6b3f36}.online-mark{position:absolute;bottom:2px;right:-2px;width:12px;height:12px;background:#6bb684;border:3px solid var(--paper);border-radius:50%}.student-hero{background:#16414e;color:white;border-radius:12px;min-height:222px;padding:26px 30px 19px;overflow:hidden;position:relative;display:flex;flex-direction:column}.hero-profile-card{display:none}.hero-greeting{margin:0 0 14px;color:inherit;font-size:18px;font-weight:700;position:relative;z-index:2}.hero-kicker{color:#9ed4c9;font-size:11px;display:flex;gap:6px;align-items:center}.student-hero strong{display:block;font-size:53px;line-height:1.05;letter-spacing:-.06em;margin:15px 0 2px}.student-hero strong small{font-size:16px;letter-spacing:0}.student-hero p{color:#b4d8d0;font-size:12px;margin:0;display:flex;align-items:center;gap:4px}.hero-illustration{position:absolute;right:15%;top:12px;width:230px;height:160px}.hero-illustration span{position:absolute;right:24%;top:35%;color:#f1c87c;font-size:52px;text-shadow:0 0 25px rgba(241,200,124,.5)}.orbit{position:absolute;inset:19px 12px;border:1px solid rgba(159,221,203,.28);border-radius:48%;transform:rotate(-25deg)}.orbit-two{inset:14px 40px;transform:rotate(52deg);border-color:rgba(242,192,129,.34)}.hero-foot{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid rgba(219,247,234,.15);color:#9ac6c1;font-size:10px;position:relative;z-index:1}.hero-foot strong{display:inline;font-size:11px;letter-spacing:0;margin:0;color:#eef8ef}.student-hero .hero-foot strong{display:inline-block;font-size:11px;line-height:1.2;letter-spacing:0;margin:0;white-space:nowrap}.hero-foot button{color:#cae8dc;border:0;background:transparent;margin-left:auto;white-space:nowrap;font-size:10px;padding:0}.hero-foot button:first-child{margin-left:0}.shortcut-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:9px;gap:9px}.shortcut{display:flex;align-items:center;gap:11px;padding:14px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:9px;color:var(--ink);min-height:72px}.admin-actions button:hover,.menu-list button:hover,.shortcut:hover{border-color:#afd4c5;box-shadow:var(--shadow);transform:translateY(-1px)}.shortcut>span:nth-child(2){flex:1 1}.shortcut small,.shortcut strong{display:block}.shortcut strong{font-size:12px}.shortcut small{font-size:10px;color:#83949a;margin-top:6px}.shortcut>svg{color:#9bacaf}.action-icon,.admin-card-icon,.menu-icon,.shortcut-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;flex-shrink:0}.admin-card-icon.blue,.menu-icon.blue,.metric-icon.blue,.shortcut-icon.blue{background:#e3eff5;color:#4f8ca8}.admin-card-icon.orange,.menu-icon.orange,.metric-icon.orange,.shortcut-icon.orange{background:#fff0da;color:#c27a23}.admin-card-icon.green,.menu-icon.green,.metric-icon.green,.shortcut-icon.green{background:#e4f3e8;color:#4d9a73}.shortcut-icon.pink{background:#fae8ef;color:#c3718f}.admin-card-icon.coral,.shortcut-icon.coral{background:#fae5df;color:#c76550}.admin-card-icon.purple,.menu-icon.purple,.metric-icon.purple,.shortcut-icon.purple{background:#eee9f7;color:#7d65a1}.split-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:18px;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px}.todo-list{display:grid;grid-gap:2px;gap:2px}.admin-actions button,.menu-list button,.record-row,.todo-row{display:flex;align-items:center;gap:11px;border-bottom:1px solid #eef1ef;min-height:61px}.todo-row{width:100%;border:0;background:transparent;padding:8px 0;text-align:left;color:inherit}.todo-row:last-child{border-bottom:0}.admin-actions button>span:nth-child(2),.menu-list button>span:nth-child(2),.record-row>span:nth-child(2),.todo-row>span:nth-child(2){flex:1 1;min-width:0}.admin-actions small,.admin-actions strong,.menu-list small,.menu-list strong,.record-row small,.record-row strong,.todo-row small,.todo-row strong{display:block}.admin-actions strong,.menu-list strong,.record-row strong,.todo-row strong{font-size:12px}.admin-actions small,.menu-list small,.record-row small,.todo-row small{font-size:10px;color:#87969b;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center}.todo-icon.danger{background:#fbe9e6;color:var(--coral)}.todo-icon.warning{background:#fff2db;color:#c9873b}.todo-icon.info{background:#e5eff6;color:#598ba4}.notice-feature{padding:14px 0 0}.notice-tag{display:inline-block;color:#bd6a37;background:#fff0db;font-size:10px;padding:5px 8px;border-radius:5px}.notice-feature h3{font-size:17px;line-height:1.4;margin:14px 0 8px}.notice-feature p{color:var(--ink-soft);font-size:12px;line-height:1.6;max-width:360px}.notice-feature small{color:#9ba8a9;font-size:10px}.filter-tabs,.tabs-line{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;border-bottom:1px solid var(--line)}.filter-tabs button,.tabs-line button{border:0;background:transparent;color:#85969b;padding:0 14px 12px;font-size:12px;position:relative;white-space:nowrap}.filter-tabs button.active,.tabs-line button.active{color:var(--teal-dark);font-weight:700}.filter-tabs button.active:after,.tabs-line button.active:after{content:"";position:absolute;bottom:-1px;height:2px;left:10px;right:10px;background:var(--teal)}.filter-tabs b,.tabs-line b{display:inline-grid;place-items:center;background:#fae1db;color:#b75e4f;font-size:9px;min-width:17px;height:17px;border-radius:5px;margin-left:4px}.homework-list{display:grid;grid-gap:10px;gap:10px}.homework-card{display:flex;align-items:center;gap:14px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:16px}.homework-row-card{display:grid;grid-template-columns:78px minmax(0,1fr) 120px 78px;grid-gap:16px;gap:16px;min-height:72px}.homework-subject{font-size:13px;font-weight:700;color:var(--teal-dark,#397e88)}.homework-subject.danger{color:#c56855}.homework-subject.warning{color:#bf7d32}.homework-subject.success{color:#57916f}.homework-subject.neutral{color:#69828b}.homework-row-card .homework-main h3{margin:0}.homework-row-card .homework-content{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.homework-due{display:flex;align-items:center;gap:4px;color:#87979b;font-size:11px;white-space:nowrap}.homework-card.status-unregistered .status-pill{margin-inline:auto}.subject-mark{width:41px;height:41px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:17px;flex-shrink:0}.subject-mark.danger{background:#fae6e2;color:#c56855}.subject-mark.warning{background:#fff0db;color:#bf7d32}.subject-mark.success{background:#e3f1e8;color:#57916f}.subject-mark.neutral{background:#e8edf0;color:#69828b}.homework-main{flex:1 1;min-width:0}.row-between{display:flex;justify-content:space-between;align-items:center;gap:8px}.label-muted{font-size:10px;color:#8c9ba0}.homework-main h3{margin:7px 0;font-size:14px}.homework-main p{display:flex;align-items:center;gap:4px;color:#87979b;font-size:11px;margin:0}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:5px;font-size:10px;white-space:nowrap}.pill-success{background:#e3f2e8;color:#418762}.pill-warning{background:#fff0d9;color:#b8762c}.pill-danger{background:#fbe5e1;color:#bb5d4c}.pill-danger:before,.pill-success:before,.pill-warning:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;margin-right:5px}.info-strip{background:#edf5f4;border:1px solid #d9e8e5;color:#5e777b;padding:12px 14px;border-radius:8px;display:flex;gap:9px;align-items:flex-start;font-size:11px;line-height:1.55}.points-summary{background:#f2eade;border-radius:11px;padding:23px 27px;display:flex;justify-content:space-between;align-items:center}.points-summary>div:first-child>span{color:#8b7c6c;font-size:11px}.points-summary strong{display:block;font-size:42px;letter-spacing:-.05em;color:#5d4837;line-height:1.1;margin:7px 0 5px}.points-summary p{margin:0;display:flex;align-items:center;gap:5px;color:#9d8872;font-size:10px}.points-source-breakdown{display:block;margin-top:6px;color:#8aa0a4;font-size:11px}.progress-ring{width:80px;height:80px;border-radius:50%;border:8px solid #ddceb7;border-top-color:#bc8463;display:grid;place-items:center;align-content:center;color:#694e3d}.progress-ring span{font-size:16px;font-weight:800}.progress-ring small{font-size:9px;margin-top:1px}.shop-toolbar,.toolbar-row{display:flex;gap:9px;align-items:center}.search-box{border:1px solid var(--line);background:var(--surface);border-radius:8px;display:flex;align-items:center;padding:0 11px;height:38px;color:#93a2a6;flex:1 1}.search-box input{border:0;outline:0;background:transparent;padding:0 8px;min-width:0;width:100%;font-size:12px;color:var(--ink)}.search-box.wide{max-width:390px}.filter-button{height:38px}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:13px;gap:13px}.spirit-list{display:grid;grid-gap:18px;gap:18px}.spirit-row{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden}.spirit-row-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line,#e5e7eb)}.spirit-row-heading small{color:var(--muted,#6b7280)}.spirit-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;padding:14px;overflow-x:auto}.spirit-level-card{position:relative;min-width:120px;display:grid;grid-gap:6px;gap:6px;padding:8px;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:#fff;text-align:center;cursor:pointer}.spirit-level-card img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:7px}.spirit-level-badge{position:absolute;top:12px;left:12px;z-index:1;padding:3px 7px;border-radius:999px;background:#ffad00;color:#fff;font-size:12px;font-weight:700}.product-card{background:var(--surface);border:1px solid var(--line);border-radius:9px;overflow:hidden}.product-card img{width:100%;height:130px;object-fit:cover;display:block;filter:saturate(.78)}.product-card-body{padding:14px}.product-card h3{font-size:14px;margin:10px 0 7px}.product-description{min-height:31px;margin:0 0 11px;color:#8a9a9d;font-size:10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stock{color:#7d9990;font-size:10px}.product-bottom{display:flex;align-items:center;justify-content:space-between}.product-bottom strong{display:flex;align-items:center;gap:5px;color:#b2764d;font-size:14px}.product-bottom button{border:0;background:#edf3f0;color:var(--teal-dark);border-radius:6px;font-size:11px;padding:7px 12px}.modal-backdrop{position:fixed;inset:0;background:rgba(19,52,61,.38);z-index:20;display:grid;place-items:center;padding:18px}.confirm-sheet{background:white;border-radius:13px;max-width:390px;width:100%;padding:28px;position:relative;box-shadow:0 20px 50px rgba(11,45,54,.23)}.spirit-preview{margin:auto;max-height:min(90vh,720px);overflow:auto;text-align:center}.spirit-preview .product-image-box{display:block;width:100%}.spirit-preview img{display:block;width:min(100%,520px);max-height:68vh;object-fit:contain;margin:0 auto 16px;border-radius:10px}.close-button{position:absolute;top:14px;right:14px;border:0;background:transparent;color:#809095}.sheet-icon{width:46px;height:46px;border-radius:14px;background:#fff0dc;color:#bb7c36;display:grid;place-items:center;margin-bottom:18px}.confirm-sheet h2{font-size:21px;line-height:1.4;margin-bottom:10px}.preview-picker-backdrop{z-index:30}.preview-picker{width:min(100%,480px);max-width:480px;max-height:min(88vh,720px);display:grid;grid-gap:14px;gap:14px;overflow:hidden}.preview-picker>p{margin:0}.preview-student-list{display:grid;grid-gap:8px;gap:8px;max-height:min(52vh,430px);overflow-y:auto;padding-right:3px}.preview-student-list>button{min-width:0;min-height:60px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;color:var(--ink);padding:10px 12px;text-align:left}.preview-student-list>button.selected{border-color:var(--teal);background:#edf6f2;color:var(--teal-dark)}.preview-student-list>button>span:not(.avatar){min-width:0}.preview-student-list small,.preview-student-list strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-student-list small{margin-top:4px;color:#7a8c8f;font-size:11px}@media (max-width:640px){.preview-picker-backdrop{align-items:end;padding:0}.preview-picker{max-width:none;width:100%;max-height:86dvh;border-radius:8px 8px 0 0;padding:24px 18px calc(20px + env(safe-area-inset-bottom))}}.sheet-detail{background:#f6f8f6;display:flex;justify-content:space-between;padding:12px 14px;font-size:12px;margin:20px 0;color:#778b8e}.sheet-detail strong{color:var(--teal)}.exchange-quantity-row,.quantity-stepper{align-items:center}.quantity-stepper{display:inline-flex;gap:7px}.quantity-stepper .icon-button{width:28px;height:28px;padding:0}.quantity-stepper input{width:52px;height:30px;text-align:center;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:13px;gap:13px}.album-card{min-height:220px;border:0;padding:0;border-radius:9px;overflow:hidden;position:relative;text-align:left;background:#d8e8e3}.album-card img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block;transition:transform .3s}.album-card:hover img{transform:scale(1.04)}.album-card-embed{min-height:220px}.album-embed{width:100%;height:220px;border:0;display:block;background:#eef5f1}.album-card-embed .album-overlay{pointer-events:none}.album-reference-embed{display:block;overflow:hidden;padding:0}.album-reference-embed .album-embed{height:180px}.album-reference-embed>div:last-child{padding:12px 14px}.album-overlay{position:absolute;inset:0;padding:17px;display:flex;flex-direction:column;justify-content:flex-end;color:white;background:linear-gradient(0deg,rgba(14,43,49,.78),transparent 65%)}.album-overlay span{font-size:10px;color:#cae5d9}.album-overlay h3{font-size:17px;margin:6px 0}.album-overlay small{font-size:10px;display:flex;align-items:center;gap:4px;color:#dbece3}.discovery-lower{align-items:start}.praise-wall{columns:220px 2;column-gap:12px}.praise-note{page-break-inside:avoid;break-inside:avoid;margin-bottom:12px;padding:11px;border-radius:4px;min-height:135px;box-shadow:0 5px 13px rgba(57,69,60,.07);transform:rotate(-.5deg)}.praise-note:nth-child(2n){transform:rotate(.8deg)}.praise-note.yellow{background:#fff2b9}.praise-note.mint{background:#dff2e4}.praise-note.coral{background:#f9ddd3}.praise-top{color:#6d7568;font-size:10px;display:flex;justify-content:space-between;gap:7px}.praise-note p{color:#4d5a56;font-size:13px;line-height:1.6;margin:10px 0 8px}.praise-note small{color:#858f82;font-size:10px}.side-feature{min-height:340px}.pet-visual{height:110px;background:#dceee5;color:#599f78;display:grid;place-items:center;border-radius:8px;margin-bottom:18px}.side-feature h2{font-size:21px;margin-bottom:9px}.feature-divider{height:1px;background:var(--line);margin:22px 0 15px}.whisper-row{display:flex;align-items:center;gap:10px}.whisper-row>span:nth-child(2){flex:1 1}.whisper-row small,.whisper-row strong{display:block}.whisper-row strong{font-size:12px}.whisper-row small{color:#839398;font-size:10px;margin-top:5px}.profile-banner{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px;justify-content:start}.profile-banner>div{flex:1 1}.profile-banner h1{margin:0 0 7px}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#16414e;color:white;border-radius:10px;padding:24px;grid-gap:1px;gap:1px}.profile-stats>div{padding:0 22px;border-right:1px solid rgba(255,255,255,.17)}.profile-stats>div:first-child{padding-left:0}.profile-stats>div:last-child{border-right:0}.profile-stat-action{cursor:pointer;border-radius:7px;transition:background .2s ease}.profile-stat-action:focus-visible,.profile-stat-action:hover{background:rgba(255,255,255,.08);outline:none}.profile-stats span,.profile-stats strong{display:block}.profile-stats span{color:#a3cac4;font-size:11px}.profile-stats strong{font-size:27px;margin-top:9px}.menu-list{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px 19px}.menu-list button{border:0;background:transparent;text-align:left;padding:10px 0;min-height:70px}.menu-list .menu-icon{width:34px;height:34px;border-radius:9px}.menu-list>button>svg:last-child{color:#9cabb0}.count-badge{background:#f9e3de;color:#bd6653;font-size:10px;padding:3px 6px;border-radius:5px;margin-right:6px}.security-note,.settings-warning{display:flex;align-items:center;gap:8px;color:#668083;background:#eef5f3;border-radius:8px;padding:13px 15px;font-size:11px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.metric-card{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:17px;min-height:145px}.metric-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;margin-bottom:13px}.metric-label{font-size:11px;color:#75888d;display:block}.metric-card>strong{display:block;font-size:28px;margin:3px 0;letter-spacing:-.04em}.metric-card>small{font-size:10px;color:#8ba09f}.teacher-dashboard-grid{grid-template-columns:1.15fr .85fr}.admin-actions{display:grid}.admin-actions button{width:100%;border:0;background:transparent;text-align:left;padding:8px 0}.action-icon{width:41px;height:41px}.action-icon.coral{background:#fae5df;color:#c76550}.action-icon.blue{background:#e3eff5;color:#4f8ca8}.action-icon.green{background:#e4f3e8;color:#4d9a73}.sync-panel{background:#f1f6f2}.sync-status{display:flex;align-items:center;gap:13px;padding:15px 0 22px}.sync-ring{width:49px;height:49px;border-radius:50%;border:7px solid #cde7d6;color:#51a171;display:grid;place-items:center}.sync-status strong{font-size:14px}.sync-status p,.sync-status small{display:block;font-size:11px;color:#78908e;margin:6px 0 0}.activity-table,.admin-product-table,.student-table{background:var(--surface);border:1px solid var(--line);border-radius:9px;overflow:hidden}.student-table{max-height:min(68vh,720px);overflow-y:auto}.table-head,.table-row{display:grid;grid-template-columns:1.1fr 1.7fr .8fr .8fr;align-items:center;grid-gap:16px;gap:16px;padding:13px 17px}.table-head{background:#f2f6f4;color:#7d9093;font-size:10px}.table-row{border-top:1px solid #edf1ef;min-height:62px;font-size:11px;color:#5c7075}.student-cell{display:flex;align-items:center;gap:9px;color:var(--ink)}.student-cell small,.student-cell strong{display:block}.student-cell strong{font-size:12px}.student-cell small{font-size:10px;color:#8a9a9e;margin-top:4px}.binding-cell{color:#5c9c78;display:flex;align-items:center;gap:5px}.toolbar-count{margin-left:auto;color:#8a9a9e;font-size:11px}.student-table .table-head,.student-table .table-row{grid-template-columns:1.5fr .6fr 1fr .7fr .4fr}.student-table .table-row{min-height:54px;padding-top:8px;padding-bottom:8px}.student-table .row-actions{flex-wrap:nowrap;gap:5px}.student-table .row-actions .outline-button.small{padding:6px 9px}.scan-layout{display:grid;grid-template-columns:1.22fr .78fr;grid-gap:18px;gap:18px}.scan-console{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px}.scan-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:17px;border-bottom:1px solid var(--line)}.scan-header h2{margin-top:7px;font-size:18px}.scan-mode-tabs{display:grid;grid-template-columns:1fr 1fr;background:#eff4f2;padding:4px;margin:18px 0;border-radius:8px;grid-gap:4px;gap:4px}.scan-mode-tabs button{border:0;background:transparent;color:#7d9092;padding:10px 7px;border-radius:6px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:6px}.scan-mode-tabs button.active{background:white;color:var(--teal-dark);box-shadow:0 2px 5px rgba(20,65,78,.08)}.quick-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:18px}.quick-status>span{font-size:10px;color:#839297;margin-right:3px}.quick-status button{border:1px solid var(--line);background:white;padding:7px 9px;border-radius:6px;color:#63777b;font-size:10px;display:flex;align-items:center;gap:5px}.quick-status button.selected{border-color:#69aaa0;background:#edf7f2;color:var(--teal-dark)}.status-dot{width:6px;height:6px}.status-dot.green{background:#61aa7b}.status-dot.red{background:#dd7665}.status-dot.orange{background:#d99545}.status-dot.gray{background:#93a1a4}.review-hint{display:flex;gap:8px;align-items:center;padding:11px 12px;color:#6b8283;background:#eff5f3;border-radius:7px;font-size:11px;margin-bottom:18px}.scanner-stage{min-height:300px;background:#eff6f3;border-radius:8px;display:grid;place-items:center;align-content:center;grid-gap:11px;gap:11px;color:#44656a}.scanner-stage>strong{font-size:13px;margin-top:5px}.scanner-stage>small{font-size:10px;color:#83989a}.scan-frame{height:130px;width:190px;position:relative;display:grid;place-items:center;color:#68a59b}.scan-frame:after,.scan-frame:before{content:"";position:absolute;left:13px;right:13px;height:1px;background:rgba(73,154,142,.28)}.scan-frame:before{top:24px}.scan-frame:after{bottom:24px}.corner{position:absolute;width:25px;height:25px;border-color:#5da195;border-style:solid}.corner.top-left{left:0;top:0;border-width:2px 0 0 2px}.corner.top-right{right:0;top:0;border-width:2px 2px 0 0}.corner.bottom-left{left:0;bottom:0;border-width:0 0 2px 2px}.corner.bottom-right{right:0;bottom:0;border-width:0 2px 2px 0}.scan-line{width:157px;height:2px;background:#e47965;position:absolute;top:64px;box-shadow:0 0 12px rgba(228,121,101,.65)}.scan-button{background:var(--teal);color:white;border:0;border-radius:7px;font-size:11px;padding:10px 14px;display:flex;align-items:center;gap:6px;margin-top:8px}.scan-tip{display:flex;gap:7px;color:#809094;font-size:10px;line-height:1.5;margin-top:14px}.recent-records{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px;align-self:start}.record-count{width:22px;height:22px;display:grid;place-items:center;background:#e7f2ed;color:#4f9876;border-radius:6px;font-size:10px}.record-row .status-pill{margin-left:auto}.record-list{margin-bottom:16px}.homework-admin-list{display:grid;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:4px 18px}.homework-admin-row{grid-template-columns:1.5fr 1fr .6fr 20px;grid-gap:20px;gap:20px;padding:10px 0;border-bottom:1px solid #edf1ef}.homework-admin-row:last-child{border-bottom:0}.homework-admin-row.has-incomplete{margin:3px -10px;padding:10px;border:1px solid #eed28d;border-radius:8px;background:#fff9e8}.homework-admin-row.has-incomplete .mini-progress span{background:#d9a93e}.status-action{border:0;cursor:pointer}.homework-admin-row small,.homework-admin-row strong{display:block}.homework-admin-row strong{font-size:12px}.homework-admin-row small{font-size:10px;color:#8a9a9e;margin-top:5px}.mini-progress{background:#e8efec;height:6px;border-radius:9px;overflow:hidden}.mini-progress span{height:100%;display:block;background:#76ae91;border-radius:inherit}.sync-banner{background:#e4f2e8;border:1px solid #cee6d6;border-radius:9px;padding:14px 17px;display:flex;align-items:center;gap:12px}.sync-symbol{width:34px;height:34px;border-radius:9px;background:#bce0c9;color:#4b9b69;display:grid;place-items:center}.sync-banner>div:nth-child(2){flex:1 1}.sync-banner strong{font-size:13px}.sync-banner p{margin:5px 0 0;color:#709081;font-size:10px}.admin-product-table .table-head,.admin-product-table .table-row{grid-template-columns:1.5fr .9fr .8fr .9fr .7fr}.product-cell{display:flex;align-items:center;gap:10px}.product-cell img{width:35px;height:35px;object-fit:cover;border-radius:7px}.product-cell small,.product-cell strong{display:block}.product-cell strong{color:var(--ink);font-size:12px}.product-cell small{color:#8a9a9e;font-size:9px;margin-top:4px}.rule-note{color:#78a28c;font-size:9px}.content-admin-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px}.admin-content-card{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:22px;min-height:210px}.admin-content-card h2{margin:13px 0 9px;font-size:18px}.admin-content-card p{font-size:12px;color:var(--ink-soft);line-height:1.6;max-width:380px;min-height:42px}.admin-content-card button{border:0;background:transparent;padding:6px 0;color:var(--teal);font-size:12px;display:flex;align-items:center;gap:4px}.settings-layout{display:grid;grid-template-columns:190px 1fr;grid-gap:18px;gap:18px;align-items:start}.settings-nav{display:grid;grid-gap:4px;gap:4px}.settings-nav button{border:0;background:transparent;color:#718489;text-align:left;padding:11px 12px;border-radius:7px;display:flex;align-items:center;gap:9px;font-size:12px}.settings-nav button.active{background:#e4f1ed;color:var(--teal-dark);font-weight:700}.settings-form{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:26px;max-width:700px}.settings-wide-form{max-width:none}.settings-option-grid{display:grid;grid-gap:10px;gap:10px;margin:4px 0 16px}.checkbox-group .checkbox-row,.settings-form>.checkbox-row,.settings-option-grid .checkbox-row{justify-content:space-between;width:100%}.remember-row{margin-top:13px!important;color:#718489!important;justify-content:flex-start;white-space:nowrap}.feed-limit,.field-counter{color:#91a0a4;font-size:10px}.avatar-edit-preview{width:72px;height:72px;object-fit:cover;border-radius:18px;border:1px solid var(--line);border-radius:50%}.avatar-crop-modal{width:min(92vw,420px)}.avatar-crop-stage{width:240px;height:240px;margin:8px auto 14px;border-radius:50%;overflow:hidden;border:3px solid var(--teal);background:#eef4f2;display:grid;place-items:center}.avatar-crop-stage img{width:100%;height:100%;object-fit:cover;transition:transform .15s ease}.crop-zoom{display:grid;grid-gap:6px;gap:6px}.crop-zoom input{width:100%}.asset-list,.ledger-list,.storage-list{display:grid;grid-gap:9px;gap:9px}.asset-item,.ledger-item,.storage-row{display:flex;align-items:center;gap:10px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:12px 13px}.asset-item>span:nth-child(2),.ledger-item>span:nth-child(2),.storage-row>span:first-child{flex:1 1;min-width:0}.asset-item small,.asset-item strong,.ledger-item small,.ledger-item strong,.storage-row small,.storage-row strong{display:block}.asset-item small,.ledger-item small,.storage-row small{color:#8b9da0;font-size:10px;margin-top:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ledger-plus{color:#4b9b69}.point-usage-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.point-usage-summary strong{display:block;margin-top:5px;font-size:30px;color:var(--ink)}.point-usage-summary small{display:block;margin-top:5px;color:#8b9da0;font-size:10px}.point-usage-summary .text-button{flex-shrink:0}.ledger-minus{color:#c46654}.asset-quantity,.ticket-code{color:var(--teal)!important}.asset-quantity{font-weight:600}.ticket-code strong{display:inline!important;font-size:13px;letter-spacing:.08em}.asset-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.asset-gifted-badge{display:inline-flex;align-items:center;gap:4px;color:#b3743a;background:#fff2df;border:1px solid #f1d4aa;border-radius:999px;padding:4px 7px;font-size:10px;white-space:nowrap}.homework-pages-editor{display:grid;grid-gap:8px;gap:8px;padding:11px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfb}.homework-page-edit-row{display:flex;align-items:center;gap:7px}.homework-page-edit-row input{margin-top:0}.page-index{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#e4efec;color:var(--teal-dark);font-size:11px}.page-tabs{display:flex;gap:7px;overflow-x:auto;padding:4px 0 10px}.page-tabs button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 10px;color:#6e8185;font:inherit;font-size:11px}.page-tabs button.active{background:var(--teal);color:#fff;border-color:var(--teal)}.student-homework-pages{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.page-status{border-radius:999px;padding:3px 7px;font-size:9px;background:#eef3f2;color:#738487}.page-status.success{background:#e6f4e9;color:#45815a}.page-status.warning{background:#fff2dc;color:#ae7634}.page-status.danger{background:#fde8e5;color:#b7534c}.ticket-verify-section{display:grid;grid-gap:14px;gap:14px}.ticket-detail,.ticket-verify-form{max-width:760px}.ticket-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin:18px 0;color:#7c8f92;font-size:11px}.ticket-detail-grid strong{display:block;color:var(--ink);margin-top:5px;font-size:13px}.feed-section{display:grid;grid-gap:13px;gap:13px}.feed-page .feed-heading,.feed-section{max-width:920px}.feed-page-mark{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid #cfe3e8;border-radius:9px;background:#eef7f8;color:#397e88;font-size:11px;white-space:nowrap}.feed-composer{display:grid;grid-gap:10px;gap:10px;max-width:none}.feed-composer textarea{width:100%;min-height:84px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfb;color:var(--ink);font:inherit}.feed-composer-actions{display:flex;align-items:center;gap:8px}.feed-upload-note{margin-right:auto;color:#8c9ca0;font-size:10px}.feed-preview-wrap{display:flex;align-items:flex-start;gap:8px}.feed-post-image,.feed-upload-preview{display:block;max-width:260px;max-height:230px;object-fit:cover;border-radius:8px}.feed-post-images{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:4px;gap:4px;margin-top:10px;width:min(100%,320px)}.feed-post-images.feed-image-grid-1{grid-template-columns:minmax(0,1fr);width:min(100%,320px)}.feed-post-images.feed-image-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.feed-image-button{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:0;padding:0;background:transparent;cursor:zoom-in}.feed-image-grid-1 .feed-image-button{aspect-ratio:auto;max-height:320px}.feed-post-images .feed-post-image{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.feed-image-grid-1 .feed-post-image{height:auto;max-height:320px;object-fit:contain}.feed-image-button>span,.feed-image-modal>span{display:none;color:var(--muted,#6b7280);padding:24px}.feed-image-button.image-load-failed,.feed-image-modal.image-load-failed{background:#f3f4f6;cursor:default}.feed-image-button.image-load-failed>span,.feed-image-modal.image-load-failed>span{display:block}.feed-post-actions{display:flex;align-items:center;gap:16px;margin-top:10px}.feed-action,.feed-comment-count{display:inline-flex;align-items:center;gap:5px;color:var(--muted,#6b7280);background:none;border:0;font-size:13px;cursor:pointer}.feed-action.liked{color:#e35d6a}.feed-likes{display:flex;align-items:center;gap:5px;margin-top:7px;color:#5f7390;font-size:12px;background:#f5f7fb;padding:7px 9px;border-radius:7px}.feed-unread-button{color:#bd5b57;border-color:#efc7c2}.feed-unread-button b{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#d85f5f;color:#fff;font-size:9px}.feed-show-all{justify-self:center}.feed-comments{display:grid;grid-gap:4px;gap:4px;margin-top:8px;padding:8px 10px;background:#f7f8fa;border-radius:8px}.feed-comments p{margin:0;font-size:13px;color:#334155}.feed-comment-input{display:flex;gap:8px;margin-top:8px}.feed-comment-input input{flex:1 1;min-width:0;border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:7px 9px}.feed-image-modal{position:relative;max-width:min(92vw,900px);max-height:92vh;padding:12px;background:#111827;border-radius:12px}.feed-image-modal img{display:block;max-width:88vw;max-height:84vh;object-fit:contain}.product-image-box{display:inline-flex;flex-direction:column;align-items:center;min-width:0;position:relative}.product-image-box.is-failed{color:#7a8791}.product-image-error{display:block;max-width:100%;padding:4px 2px 0;color:#7a8791;font-size:9px;line-height:1.35;text-align:center}.product-card .product-image-box,.spirit-level-card .product-image-box{display:block;width:100%}.product-cell .product-image-box{flex:0 0 35px;width:35px}.feed-list{display:grid;grid-gap:10px;gap:10px;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}.feed-post{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:15px}.feed-post-head{display:flex;align-items:center;gap:9px}.feed-post-head>span{min-width:0}.feed-post-head small,.feed-post-head strong{display:block}.feed-post-head small{color:#8c9ca0;font-size:10px;margin-top:4px}.feed-post>p{font-size:13px;line-height:1.65;margin:13px 0;white-space:pre-wrap;overflow-wrap:anywhere}.feed-pending{color:#c38439;font-size:10px}.feed-admin-cell{min-width:0}.feed-admin-cell img{width:54px;height:42px;display:block;object-fit:cover;border-radius:6px;margin-top:8px}.feed-admin-social{display:block;margin-top:7px;color:#5f7390}.feed-admin-comments{display:grid;grid-gap:3px;gap:3px;margin-top:5px;padding:5px 7px;background:#f7f8fa;border-radius:6px}.notification-unread-count{color:#75888d;font-size:11px}.qr-print-copy{display:grid;grid-gap:5px;gap:5px;text-align:left;margin-bottom:14px;color:#526e79}.qr-print-copy strong{font-size:15px;white-space:nowrap}.qr-print-copy span{font-size:12px}.qr-student-card{display:grid;grid-template-columns:minmax(0,1fr) 132px;grid-gap:12px;gap:12px;align-items:center;width:100%;min-height:132px;padding:12px;border:1px solid #d7dfe0;background:#fbfcfb;text-align:left}.qr-student-card .qr-print-copy{margin:0;min-width:0}.qr-student-card .qr-print-copy strong{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.qr-student-card .qr-placeholder{width:122px;height:122px;margin:0}.qr-student-card .qr-placeholder img{width:100%;height:100%;display:block}.qr-preview-dialog{width:min(100%,1120px);max-height:min(92vh,900px);overflow:auto;background:white;border-radius:10px;padding:22px;box-shadow:0 20px 50px rgba(11,45,54,.23)}.qr-preview-dialog .section-title{position:-webkit-sticky;position:sticky;top:-22px;z-index:1;padding:0 0 15px;margin:0 -2px 15px;background:white}.qr-print-preview{display:grid;grid-template-columns:repeat(6,30mm);grid-auto-rows:15mm;grid-gap:2mm;gap:2mm;align-content:start;justify-content:center;padding:10px;background:#f2f5f3;border:1px solid var(--line);border-radius:8px}.qr-print-item{width:30mm;height:15mm;border:.2mm solid #9aa8a8;background:white;display:grid;grid-template-columns:minmax(0,1fr) 12mm;grid-gap:1mm;gap:1mm;padding:1.2mm;align-items:center;page-break-inside:avoid;break-inside:avoid}.qr-print-item .qr-print-copy{gap:1mm;margin:0;line-height:1.1;font-size:7px}.qr-print-item .qr-print-copy span,.qr-print-item .qr-print-copy strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.qr-print-item img{width:12mm;height:12mm;display:block}.avatar-picker,.logo-upload-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.class-logo-preview{width:42px;height:42px;object-fit:cover;border-radius:11px;border:1px solid var(--line)}.hero-class-logo{width:16px;height:16px;display:inline-block;object-fit:cover;border-radius:5px;vertical-align:-3px}.student-hero-class-name{position:absolute;top:23px;left:50%;transform:translateX(-50%);z-index:1;max-width:calc(100% - 40px);color:white;font-family:Microsoft YaHei,sans-serif;font-size:23px;letter-spacing:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 9px rgba(25,61,94,.4)}.top-role-switch{margin:0;min-width:92px;padding:2px;background:rgba(22,63,84,.08)}.top-role-switch button{color:#61777c;padding:6px 8px}.feed-heading{align-items:center;justify-content:space-between}.feed-heading h1{flex:1 1;text-align:center;margin:0}.feed-back-button{width:34px;height:34px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center}.feed-camera-button{width:34px;height:34px;padding:0}.feed-heading-actions{display:flex;align-items:center;gap:8px}.feed-editor-page .section-title{display:none}.homework-batch-panel{margin-bottom:14px}.registration-choice{grid-column:1/-1}.registration-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.registration-choice-grid button{min-height:84px;justify-content:center;font-size:17px}@media (max-width:640px){.registration-choice-grid{grid-template-columns:1fr}}.homework-batch-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.homework-batch-toolbar>input{min-width:190px;flex:1 1;border:1px solid var(--line);border-radius:7px;padding:9px 10px}.record-count{white-space:nowrap}.homework-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:12px;gap:12px}.homework-admin-row .row-actions{justify-content:flex-end;flex-wrap:nowrap;white-space:nowrap}.homework-batch-toolbar>select,.sort-control select{border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:var(--surface)}.homework-batch-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:5px 12px;gap:5px 12px;max-height:180px;overflow:auto;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.homework-batch-list .checkbox-row{min-width:0;padding:4px 0}.homework-batch-list .checkbox-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.homework-batch-list .checkbox-row small{color:#8a9b9e;margin-left:auto;white-space:nowrap}.match-panel{display:grid;grid-gap:13px;gap:13px}.match-stats{display:flex;gap:8px;flex-wrap:wrap;color:#72868a;font-size:11px}.match-stats span{padding:7px 9px;border-radius:6px;background:#f1f5f3}.match-stats strong{color:var(--ink);margin-left:3px}.match-stats .match-ok{color:#4a956e;background:#e8f4ec}.match-stats .match-candidate{color:#a27132;background:#fff3dd}.match-stats .match-conflict,.match-stats .match-missing{color:#b65e51;background:#fbe9e5}.match-list{display:grid;grid-gap:6px;gap:6px}.match-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-top:1px solid #edf1ef;font-size:11px}.match-row small,.match-row strong{display:block}.match-note,.match-row small{color:#8a9a9e;font-size:10px;margin-top:3px}.match-status{color:#7f9295;font-size:10px;text-align:right}.match-status.candidate{color:#a27132}.match-status.conflict,.match-status.missing_external,.match-status.unmatched{color:#b65e51}.teacher-mode .page-content{width:100%;max-width:1520px;padding-top:28px;padding-bottom:40px}.teacher-mode h1{font-size:32px}.teacher-mode .admin-order-row,.teacher-mode .table-row{font-size:13px}.teacher-mode .content-stack{gap:22px}.teacher-mode .homework-admin-row{padding-top:9px;padding-bottom:9px}.teacher-mode .settings-form{max-width:none}.profile-banner>div{min-width:0}.profile-banner h1,.profile-class-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-heading{display:flex;align-items:center;gap:12px;padding-bottom:23px;border-bottom:1px solid var(--line);margin-bottom:22px}.form-heading>div:nth-child(2){flex:1 1}.form-heading h2{margin:0 0 6px}.form-heading p{margin:0;color:#839397;font-size:11px}.settings-logo{width:42px;height:42px;border-radius:11px;background:#f6d6aa;color:#9d6339;display:grid;place-items:center;font-weight:800;font-size:18px}.settings-form label{display:block;color:#6d8185;font-size:11px;margin-bottom:16px}.settings-form input{width:100%;border:1px solid var(--line);border-radius:7px;padding:11px;color:var(--ink);margin-top:7px;background:#fbfcfb;font-size:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.settings-warning{margin-top:5px}.bottom-nav,.mobile-brand{display:none}.toast{position:fixed;z-index:50;bottom:25px;left:50%;transform:translateX(-50%);background:#123844;color:white;border-radius:8px;padding:11px 15px;gap:7px;font-size:12px;box-shadow:0 10px 30px rgba(11,43,52,.25)}.student-page-header,.toast{display:flex;align-items:center}.student-page-header{min-height:42px;gap:8px}.student-page-header>div:nth-child(2){flex:1 1;min-width:0}.student-page-header h1{font-size:20px;margin:0}.student-page-header p{font-size:10px;color:#8aa0a8;margin:5px 0 0}.back-button{border:0;background:transparent;color:var(--ink);width:30px;height:32px;padding:0;display:grid;place-items:center}.back-chevron{transform:rotate(180deg)}.student-header-action{display:flex;align-items:center}.primary-button.compact{padding:8px 11px;font-size:10px}.album-list-reference{display:grid;grid-gap:13px;gap:13px}.album-reference-card{border:0;background:var(--surface);border-radius:10px;padding:0;overflow:hidden;text-align:left;position:relative;box-shadow:0 4px 14px rgba(28,65,74,.05)}.album-reference-card img{display:block;width:100%;height:132px;object-fit:cover}.album-reference-card>div{padding:13px 15px 14px}.album-reference-card h3{margin:0 0 5px;font-size:13px}.album-reference-card p{margin:0;color:#96a3a7;font-size:10px}.external-badge{position:absolute;right:13px;bottom:12px;width:27px;height:27px;border-radius:7px;background:#f2f5f5;color:#748b8f;display:grid;place-items:center}.praise-tabs{display:flex;align-items:center;gap:8px}.praise-tabs button{border:0;padding:8px 13px;border-radius:7px;color:#7b8c91;background:#eef2f2;font-size:11px}.praise-tabs button.active{background:#347de2;color:white}.praise-reference-list{column-count:2;column-gap:13px}.praise-reference-list .praise-note{min-height:143px;margin:0 0 13px;page-break-inside:avoid;break-inside:avoid;padding:12px}.whisper-page{min-height:calc(100vh - 160px)}.whisper-history-select{display:flex;align-items:center;gap:9px;color:#73868b;font-size:10px}.whisper-history-select select{flex:1 1;min-width:0;border:1px solid var(--line);border-radius:7px;padding:8px 9px;background:#fff;color:var(--ink);font:inherit}.whisper-thread{flex:1 1;display:flex;flex-direction:column;gap:12px;padding:8px 4px 18px}.whisper-bubble{max-width:81%;padding:12px 14px 9px;border-radius:8px}.whisper-bubble p{margin:0;font-size:12px;line-height:1.55}.whisper-bubble small{display:block;color:#9ca7ac;font-size:9px;margin-top:6px}.whisper-bubble.student{align-self:flex-end;background:#367ee7;color:white;border-bottom-right-radius:3px}.whisper-bubble.student small{color:#cbdcf8;text-align:right}.whisper-bubble.teacher{align-self:flex-start;background:#eef0ff;color:#49566f;border-bottom-left-radius:3px}.whisper-composer{display:flex;gap:8px;align-items:center;border:1px solid #e7eceb;border-radius:17px;padding:4px 5px 4px 13px;background:white;box-shadow:0 5px 15px rgba(31,75,82,.06)}.whisper-composer input{border:0;outline:0;flex:1 1;min-width:0;font-size:11px}.whisper-composer button{width:30px;height:30px;border:0;border-radius:50%;background:#367ee7;color:white;display:grid;place-items:center}.pet-page{margin:-38px -40px -55px;min-height:calc(100vh - 72px);padding:28px 40px 55px;background:#dff3fb}.pet-page .student-page-header{max-width:700px;margin:0 auto}.pet-page .student-page-header h1,.pet-page .student-page-header p{color:#16313b}.pet-scene{height:390px;max-width:700px;margin:20px auto 0;position:relative;overflow:hidden;border-radius:12px;background:#a7e0f5}.pet-scene:after{content:"";position:absolute;inset:0;background:url(https://images.unsplash.com/photo-1500534623283-312aade485b7?auto=format&fit=crop&w=1000&q=80) 50%/cover;opacity:.23;mix-blend-mode:multiply}.pet-sun{position:absolute;width:82px;height:82px;border-radius:50%;background:#ffe49f;top:28px;right:15%;box-shadow:0 0 30px rgba(255,228,159,.7)}.pet-cloud{position:absolute;width:108px;height:24px;border-radius:22px;background:rgba(255,255,255,.67);z-index:1}.pet-cloud:after,.pet-cloud:before{content:"";position:absolute;background:inherit;border-radius:50%}.pet-cloud:before{width:42px;height:42px;left:17px;bottom:3px}.pet-cloud:after{width:31px;height:31px;left:50px;bottom:1px}.cloud-one{top:72px;left:11%}.cloud-two{top:128px;right:8%;transform:scale(.72);opacity:.68}.pet-paw{position:absolute;z-index:2;color:#e89888;left:50%;top:51%;transform:translate(-50%,-50%);background:#fff6ee;border-radius:48%;padding:19px;width:165px;height:165px;filter:drop-shadow(0 9px 4px rgba(57,123,110,.18))}.pet-grass{position:absolute;bottom:0;left:-5%;right:-5%;height:90px;background:#8dcf8c;border-radius:50% 50% 0 0;z-index:1}.pet-enter-button{display:flex;align-items:center;justify-content:center;gap:8px;max-width:340px;width:calc(100% - 30px);margin:-25px auto 0;position:relative;z-index:3;background:#347de2;color:white;border:0;border-radius:20px;padding:13px 16px;font-size:12px;box-shadow:0 7px 16px rgba(52,125,226,.26)}.pet-note{text-align:center;color:#6d929e;font-size:10px;margin:20px 0 0}.notification-tabs{border-bottom:0}.notification-tabs button{background:#eef2f2}.notification-tabs button.active{background:#347de2}.notification-tabs b{margin-left:3px;font-size:9px}.notification-list,.settings-reference-list,.todo-reference-list{display:grid;grid-gap:9px;gap:9px}.notification-item,.settings-reference-list button,.todo-reference-item{border:0;background:var(--surface);border-radius:9px;min-height:70px;display:flex;align-items:center;gap:10px;padding:11px 13px;text-align:left;box-shadow:0 4px 13px rgba(29,65,74,.045)}.notification-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.notification-icon.coral{background:#fae4df;color:#d46b58}.notification-icon.blue{background:#e4effb;color:#4f8fce}.notification-icon.orange{background:#fff0db;color:#c8883c}.notification-item>span:nth-child(2),.settings-reference-list button>span:nth-child(2),.todo-reference-item>span:nth-child(2){flex:1 1;min-width:0}.notification-item small,.notification-item strong,.settings-reference-list small,.settings-reference-list strong,.todo-reference-item small,.todo-reference-item strong{display:block}.notification-item strong,.settings-reference-list strong,.todo-reference-item strong{font-size:12px}.notification-item small,.settings-reference-list small,.todo-reference-item small{color:#8c9da1;font-size:10px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-meta{align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;color:#9aa8ab;font-size:9px}.notification-meta b{width:7px;height:7px;border-radius:50%;background:#e45d5d}.todo-reference-item{min-height:67px}.todo-reference-icon{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.todo-reference-icon.coral{color:#d26957;background:#fae5df}.todo-reference-icon.orange{color:#c48637;background:#fff0da}.todo-reference-icon.purple{color:#7f69a1;background:#eee9f7}.todo-complete{color:#347de2;border:1px solid #8eb8f3;border-radius:6px;padding:5px 7px;font-size:9px;white-space:nowrap}.todo-reference-item.completed{opacity:.58}.todo-reference-item.completed .todo-complete{background:#e5f3e9;color:#4c9d70;border-color:#bfdfc8}.settings-reference-list{gap:10px}.settings-reference-list button{min-height:57px}.settings-reference-list button>svg{color:#a6b0b2}.logout-button{border:0;background:#fae6e1;color:#bd6354;border-radius:9px;padding:12px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:7px;margin-left:auto;margin-right:auto}.teacher-logout-button{width:min(100%,260px);margin-left:auto;margin-right:auto}.qr-page{align-items:center}.qr-page .student-page-header{width:100%}.qr-print-card{background:white;border:1px solid #d7dfe0;border-radius:10px;padding:25px 32px 24px;width:min(100%,330px);text-align:center;box-shadow:0 9px 25px rgba(24,56,67,.1)}.qr-class-name{font-size:18px;color:#526e79;letter-spacing:.12em;margin:0 0 17px}.qr-placeholder{width:180px;height:180px;margin:0 auto 15px;display:grid;place-items:center;color:#18262c;background:repeating-linear-gradient(45deg,#fff 0 4px,#f0f2f1 4px 7px)}.qr-print-card>strong{display:block;font-size:25px;letter-spacing:.33em;padding-left:.33em}.qr-print-card>small{display:block;color:#8b9b9e;font-size:10px;line-height:1.7;margin-top:12px}.student-mode .page-content,.student-mode .topbar{background:#f6fbff}.student-mode .sidebar{background:#163f54}.student-mode .student-hero{background-color:#75b9ec;background-image:url(https://images.unsplash.com/photo-1519681393784-d120267933ba?auto=format&fit=crop&w=1200&q=80);background-size:cover;background-position:50%;padding-top:30px}.student-mode .student-hero .hero-kicker{color:#e8f4ff}.student-mode .student-hero strong{color:white}.student-mode .student-hero p{color:#e5f2ff}.student-mode .student-hero .hero-foot{color:#e5f2ff;border-color:rgba(255,255,255,.32)}.student-mode .student-hero .hero-foot button,.student-mode .student-hero .hero-foot strong{color:white}.student-mode .hero-greeting{color:white;font-size:18px;letter-spacing:0}@media (max-width:980px){.sidebar{width:210px}.page-content{padding:30px 25px 45px}.topbar{padding:0 25px}.metric-grid,.shortcut-grid{grid-template-columns:repeat(2,1fr)}.scan-layout,.teacher-dashboard-grid{grid-template-columns:1fr}.recent-records{order:-1}.product-grid{grid-template-columns:repeat(2,1fr)}.hero-illustration{right:4%}}@media (max-width:700px){.praise-wall{column-count:1}.student-hero-class-name{font-size:19px;letter-spacing:.08em}.app-shell{display:block;padding-bottom:68px}.sidebar{display:none}.topbar{min-height:63px;padding:0 17px}.mobile-brand{display:flex}.breadcrumb,.help-button{display:none}.top-actions{margin-left:auto}.page-content{padding:25px 16px 30px}.bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;min-height:65px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);z-index:10;padding:5px 5px calc(5px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.teacher-bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.bottom-nav button{min-height:53px;padding:4px 2px;justify-content:center;gap:4px;flex-direction:column;color:#8c9ca0;border-radius:7px}.bottom-nav button span{font-size:9px}.bottom-nav button.active{color:var(--teal);background:#edf6f2}.bottom-nav .nav-badge{position:absolute;top:3px;right:19%;width:15px;height:15px;font-size:8px}.content-stack{gap:25px}.welcome-row h1{font-size:23px}.welcome-row .muted{font-size:12px}.hero-avatar .avatar{width:48px;height:48px;font-size:18px}.student-hero{min-height:200px;padding:21px 20px 15px}.student-hero strong{font-size:44px}.hero-illustration{opacity:.55;right:-15%;top:2px;transform:scale(.75)}.hero-foot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:4px;gap:4px;overflow:hidden;white-space:normal}.hero-foot button{margin-left:0;min-width:0;line-height:1.35;font-size:9px;overflow:hidden;text-overflow:ellipsis}.student-hero .hero-foot strong{font-size:11px}.section-title{align-items:center}.section-title h2{font-size:17px}.content-admin-grid,.settings-layout,.split-grid{grid-template-columns:1fr}.notice-panel{display:none}.shortcut{min-height:68px;padding:11px}.shortcut strong{font-size:11px}.page-heading{align-items:flex-start}.page-heading h1{font-size:25px}.page-heading>.icon-button,.page-heading>.outline-button{margin-top:4px}.heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.page-heading:has(.heading-actions){display:block}.page-heading:has(.heading-actions) .heading-actions{margin-top:16px}.filter-tabs button{padding-left:9px;padding-right:9px}.homework-card{padding:13px 11px;gap:10px}.homework-row-card{grid-template-columns:58px minmax(0,1fr) 92px 66px;gap:8px;padding:12px 10px}.homework-row-card .homework-subject{font-size:11px}.homework-row-card .homework-due{font-size:10px}.homework-row-card .status-pill{font-size:9px;padding:4px 5px}.homework-card.status-unregistered{justify-content:center}.homework-card.status-unregistered .homework-main{text-align:center}.homework-card.status-unregistered .homework-main p,.homework-card.status-unregistered .row-between{justify-content:center}.point-usage-summary{align-items:flex-start;flex-direction:column}.point-usage-summary .text-button{align-self:flex-start}.homework-main h3{font-size:12px}.points-summary{padding:19px}.points-summary strong{font-size:36px}.progress-ring{width:67px;height:67px}.album-grid,.product-grid{grid-template-columns:1fr 1fr;gap:9px}.product-card img{height:100px}.product-card-body{padding:11px}.product-card h3{font-size:12px;min-height:31px}.product-bottom strong{font-size:12px}.product-bottom button{padding:6px 9px}.album-card,.album-card img{min-height:160px}.album-overlay{padding:11px}.album-overlay h3{font-size:14px}.discovery-lower{display:block}.side-feature{margin-top:26px}.profile-banner{padding:19px;flex-wrap:wrap}.profile-banner .outline-button{margin-left:74px;margin-top:-10px}.profile-banner h1{max-width:calc(100vw - 150px);font-size:22px}.profile-stats{padding:18px 11px;grid-template-columns:repeat(4,1fr)}.profile-stats>div{padding:0 10px}.profile-stats strong{font-size:22px}.profile-stats span{font-size:10px}.table-head,.table-row{grid-template-columns:1.2fr 1fr .7fr;gap:7px;padding:11px 12px}.activity-table .table-head span:nth-child(4),.activity-table .table-row>span:nth-child(4),.student-table .table-head span:nth-child(2),.student-table .table-head span:nth-child(3),.student-table .table-head span:nth-child(4),.student-table .table-row>span:nth-child(2),.student-table .table-row>span:nth-child(3),.student-table .table-row>span:nth-child(4){display:none}.student-table .table-head,.student-table .table-row{grid-template-columns:1fr .4fr}.student-table .table-row{min-height:50px;padding-top:7px;padding-bottom:7px}.student-table .row-actions{grid-column:2;justify-content:flex-end}.metric-card{min-height:120px;padding:13px}.metric-card>strong{font-size:24px}.panel,.recent-records,.scan-console{padding:17px}.scan-mode-tabs button{font-size:10px}.quick-status>span{width:100%;margin-bottom:2px}.scanner-stage{min-height:285px}.homework-admin-row{grid-template-columns:1fr 25px;gap:7px;padding:9px 0}.homework-admin-row .mini-progress,.homework-admin-row .status-pill{display:none}.homework-admin-row .row-actions{grid-column:2;grid-row:1;justify-content:flex-end;gap:4px}.homework-admin-row>svg{display:none}.teacher-mode .top-actions{gap:5px}.teacher-mode .top-role-switch{transform:scale(.92);transform-origin:right center}.homework-tabs{overflow-x:auto;white-space:nowrap}.homework-tabs button{flex:0 0 auto}.missing-view .form-row{grid-template-columns:1fr}.sync-banner{align-items:flex-start;flex-wrap:wrap}.sync-banner .status-pill{margin-left:46px;margin-top:-5px}.admin-product-table .table-head,.admin-product-table .table-row{grid-template-columns:1.2fr .7fr .7fr}.admin-product-table .table-head span:nth-child(2),.admin-product-table .table-head span:nth-child(3),.admin-product-table .table-row>span:nth-child(2),.admin-product-table .table-row>span:nth-child(3){display:none}.admin-product-table .table-row>span:nth-child(4){grid-column:2}.admin-product-table .table-row>span:nth-child(5){grid-column:3}.settings-form{padding:18px}.form-row{grid-template-columns:1fr;gap:0}.form-actions{justify-content:stretch}.form-actions button{flex:1 1}.toast{width:calc(100% - 32px);justify-content:center;text-align:center;bottom:79px}.ticket-detail-grid{grid-template-columns:1fr}.storage-row{align-items:flex-start;flex-wrap:wrap}.storage-row .row-actions{width:100%}.feed-composer-actions{justify-content:stretch;flex-wrap:wrap}.feed-upload-note{width:100%;margin-right:0}.feed-composer-actions button{flex:1 1}.feed-list{grid-template-columns:1fr}.feed-page-mark{align-self:flex-start}.feed-post-image,.feed-upload-preview{max-width:100%;width:100%;max-height:260px}.asset-item{align-items:flex-start}.asset-actions{align-items:flex-end;flex-direction:column}.order-filter-toolbar{align-items:flex-start;flex-direction:column}.order-filter-toolbar .row-actions{width:100%;flex-wrap:wrap}.homework-row-card{grid-template-columns:52px minmax(0,1fr) 74px 58px;gap:6px}.homework-row-card .homework-main h3{font-size:12px}.homework-row-card .homework-content{font-size:10px}.homework-row-card .homework-due{font-size:9px}.student-page-header{min-height:48px}.student-page-header h1{font-size:19px}.student-page-header p{font-size:9px}.student-header-action .primary-button.compact{padding:8px 9px}.pet-page{margin:-25px -16px -30px;min-height:calc(100vh - 63px);padding:18px 16px 30px}.pet-scene{height:350px;margin-top:16px;border-radius:0}.pet-paw{width:140px;height:140px}.pet-enter-button{margin-top:-20px}.qr-print-card{width:min(100%,310px);padding:23px}.qr-print-copy strong{font-size:12px}.qr-placeholder{width:165px;height:165px}.student-mode .welcome-row{display:none}.qr-student-card{grid-template-columns:minmax(0,1fr) 104px;gap:8px;padding:8px;min-height:104px}.qr-student-card .qr-placeholder{width:96px;height:96px}.qr-student-card .qr-print-copy span,.qr-student-card .qr-print-copy strong{font-size:10px}.match-panel .section-title{align-items:flex-start;gap:10px;flex-direction:column}.match-panel .section-title button{width:100%}.match-row{align-items:flex-start;flex-direction:column}.match-status{text-align:left}}.auth-loading{place-items:center;color:var(--ink-soft);background:#f6fbff;font-size:14px}.auth-loading,.auth-page{min-height:100vh;display:grid}.auth-page{place-items:center;padding:24px;background:#f6fbff}.auth-card{width:min(100%,410px);background:white;border:1px solid var(--line);border-radius:14px;padding:32px;box-shadow:var(--shadow)}.auth-logo{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#cbe7c9;color:#163f54;margin-bottom:20px}.auth-card h1{font-size:25px;margin-bottom:10px}.auth-card label{display:block;margin-top:17px;font-size:11px;color:#6d8185}.auth-card input{width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;color:var(--ink)}.auth-role-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:22px}.auth-role-tabs button{border:1px solid var(--line);background:#fbfcfb;color:#7a8e92;border-radius:8px;padding:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px}.auth-role-tabs button.active{border-color:#acd2c5;background:#e8f4ef;color:var(--teal-dark);font-weight:700}.auth-submit{margin-top:23px;min-height:44px}.auth-error{margin-top:14px;color:#b85b4d;background:#fae8e4;border-radius:7px;padding:10px 12px;font-size:11px}.auth-note{display:block;text-align:center;color:#94a1a4;font-size:10px;margin-top:16px}.full{width:100%}.empty-state{border:1px dashed #cbd9d6;border-radius:9px;padding:25px;text-align:center;color:#8a9b9e;background:rgba(255,255,255,.65);font-size:12px}.privacy-badge{color:#74888c;background:#eef4f2;border-radius:6px;padding:7px 9px;display:inline-flex;align-items:center;gap:5px;font-size:10px}.praise-composer,.settings-edit{display:grid;grid-gap:12px;gap:12px}.settings-modal-backdrop{z-index:25}.settings-modal{position:relative;width:min(100%,500px);max-height:min(88vh,680px);overflow-y:auto;padding:28px}.settings-modal h2{margin:0 28px 4px 0;font-size:20px}.gift-modal{position:relative;width:min(100%,430px);padding:28px;display:grid;grid-gap:12px;gap:12px}.gift-modal h2{margin:0;font-size:20px}.gift-modal select{width:100%}.order-filter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.praise-composer label,.settings-edit label{display:block;color:#6d8185;font-size:11px}.praise-composer select,.praise-composer textarea,.settings-edit input,.settings-form textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fbfcfb;color:var(--ink);margin-top:7px}.checkbox-row{display:flex!important;align-items:center;gap:7px}.scanner-stage{position:relative}.scanner-video{width:min(100%,420px);aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:#102b35;margin:0 auto 10px;display:block}.scanner-actions{display:flex;align-items:center;justify-content:center;gap:8px}.homework-select{max-width:290px}.scan-live-state{font-size:10px;color:#63a77e;background:#e7f4eb;padding:6px 8px;border-radius:6px}.duplicate-review,.pending-review{display:grid;grid-gap:9px;gap:9px;padding:12px;margin-bottom:14px;border-radius:8px;background:#fff5df;color:#785d36;font-size:11px}.duplicate-review>span,.pending-review>span{color:#9a805b;font-size:10px}.pending-review button:not(.primary-button){border:1px solid #e7d4a7;background:white;color:#7c6742;border-radius:6px;padding:7px 9px;font-size:10px}.pending-review button.selected{background:#f0b764;color:white}.duplicate-review{background:#fcebe6;color:#8d4f45}.duplicate-review>div{display:flex;gap:8px}.error-text{color:#b65c50}.inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-form input,.inline-form textarea{flex:1 1;min-width:150px;border:1px solid var(--line);border-radius:7px;padding:10px;color:var(--ink);background:#fbfcfb}.admin-list,.admin-order-list,.log-list,.rule-list,.sync-log-list{display:grid;grid-gap:8px;gap:8px}.admin-order-row{display:grid;grid-template-columns:1fr 1.3fr auto;grid-gap:13px;gap:13px;align-items:center;border:1px solid var(--line);background:white;border-radius:8px;padding:13px}.admin-order-row small,.admin-order-row strong{display:block}.admin-order-row strong{font-size:12px}.admin-order-row small{color:#87979b;font-size:10px;margin-top:4px}.order-actions{display:flex;gap:7px}@media (max-width:700px){.auth-card{padding:24px 20px}.admin-order-row{grid-template-columns:1fr;gap:9px}.order-actions{width:100%}.order-actions button{flex:1 1}.inline-form{align-items:stretch}.inline-form button,.inline-form input,.inline-form textarea{width:100%}.scanner-video{min-height:220px}}@media print{@page{size:A4;margin:8mm}body:has(.qr-preview-backdrop)>*{visibility:hidden}body:has(.qr-preview-backdrop) .qr-preview-backdrop,body:has(.qr-preview-backdrop) .qr-preview-backdrop *{visibility:visible}body:has(.qr-preview-backdrop) .qr-preview-backdrop{position:absolute;inset:0;display:block;padding:0;background:white}body:has(.qr-preview-backdrop) .qr-preview-dialog{width:auto;max-height:none;overflow:visible;padding:0;border-radius:0;box-shadow:none}body:has(.qr-preview-backdrop) .qr-preview-dialog>.form-actions,body:has(.qr-preview-backdrop) .qr-preview-dialog>.section-title{display:none}body:has(.qr-preview-backdrop) .qr-print-preview{grid-template-columns:repeat(6,30mm);grid-auto-rows:15mm;gap:2mm;padding:0;border:0;background:white;justify-content:start}}.content-editor,.homework-create-form{display:grid;grid-gap:13px;gap:13px}.homework-admin-select{min-width:0;border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}.homework-admin-select small,.homework-admin-select strong{display:block}.homework-admin-select small{color:#8a9b9e;font-size:10px;margin-top:5px}.homework-admin-select:hover strong{color:var(--teal-dark)}.homework-filter-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.date-filter{display:inline-flex;align-items:center;gap:7px;color:#75898d;font-size:10px}.date-filter input{border:1px solid var(--line);border-radius:7px;padding:8px 9px;background:#fbfcfb;color:var(--ink);font:inherit}.student-admin-editor{display:grid;grid-gap:13px;gap:13px}.student-admin-editor label{display:block;color:#6d8185;font-size:11px}.student-admin-editor input,.student-admin-editor textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fbfcfb;color:var(--ink);margin-top:7px;font:inherit}.content-editor label,.homework-create-form label{display:block;color:#6d8185;font-size:11px}.content-editor input,.content-editor select,.content-editor textarea,.homework-create-form input,.homework-create-form textarea,.rule-editor select{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fbfcfb;color:var(--ink);margin-top:7px;font:inherit}.content-editor .form-heading,.homework-create-form .form-heading{display:flex;gap:10px;align-items:flex-start}.content-editor .form-heading>div:nth-child(2),.homework-create-form .form-heading>div:nth-child(2){flex:1 1}.content-editor .form-heading h2,.homework-create-form .form-heading h2{font-size:17px;margin:3px 0 5px}.rule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.rule-toolbar .muted{font-size:11px}.rule-editor{background:white;border:1px solid var(--line);padding:13px}.rule-editor>select{flex:1 1;min-width:150px}.rule-editor .rule-multiplier{min-width:120px;color:#6d8185;font-size:11px}.rule-editor .rule-multiplier input{width:100%}.rule-row{grid-template-columns:1.5fr .45fr .5fr auto}.rule-row>span:first-child small,.rule-row>span:first-child strong{display:block}.rule-row>span:first-child small{color:#8a9b9e;font-size:10px;margin-top:4px}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.select-all-students{margin-left:auto;color:#718589;font-size:10px}.content-tabs{overflow-x:auto}.admin-content-section{display:grid;grid-gap:14px;gap:14px}.content-admin-list{background:transparent}.content-admin-row{grid-template-columns:minmax(0,1fr) auto auto;background:white;border:1px solid var(--line);border-radius:8px}.content-admin-row .row-actions{flex-wrap:nowrap;white-space:nowrap}.content-title-cell{display:flex;align-items:center;min-width:0;gap:10px}.content-title-cell img{width:48px;height:40px;object-fit:cover;border-radius:6px;background:#edf3f1;flex-shrink:0}.content-title-cell small,.content-title-cell strong{display:block}.content-title-cell small{max-width:440px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8a9b9e;font-size:10px;margin-top:4px}.checkbox-group{display:flex;gap:15px;flex-wrap:wrap}.praise-preview{display:grid;grid-gap:8px;gap:8px;padding:12px;border:1px dashed #cbded6;border-radius:8px;background:#f7fbf8}.praise-preview .praise-note{margin:0;max-width:360px}.whisper-admin-layout{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);grid-gap:14px;gap:14px}.whisper-admin-list{align-content:start}.whisper-admin-thread{border:1px solid var(--line);background:white;border-radius:8px;display:flex;align-items:center;gap:9px;padding:10px;text-align:left}.whisper-admin-thread.active{border-color:#9dcfc1;background:#edf8f3}.whisper-admin-thread>span{min-width:0;flex:1 1}.whisper-admin-thread small,.whisper-admin-thread strong{display:block}.whisper-admin-thread small{color:#8a9b9e;font-size:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:4px}.whisper-admin-detail{min-height:420px;display:grid;grid-template-rows:auto 1fr auto;grid-gap:12px;gap:12px}.whisper-admin-detail .whisper-thread{min-height:260px;max-height:470px;overflow:auto}.exchange-reference-list{display:grid;grid-gap:9px;gap:9px}.exchange-reference-item{display:flex;align-items:center;gap:10px;min-height:72px;padding:12px 13px;border-radius:9px;background:var(--surface);box-shadow:0 4px 13px rgba(29,65,74,.045)}.exchange-reference-item>div{min-width:0;flex:1 1}.exchange-reference-item small,.exchange-reference-item strong{display:block}.asset-item,.exchange-reference-item{max-width:100%;overflow:hidden}.exchange-reference-item small{color:#8c9da1;font-size:10px;margin-top:5px}@media (max-width:700px){.rule-toolbar{align-items:stretch;flex-direction:column}.rule-toolbar button{width:100%}.rule-editor{align-items:stretch}.content-admin-row,.rule-row{grid-template-columns:1fr;gap:9px}.content-admin-row .status-pill{justify-self:start}.row-actions{justify-content:flex-start}.content-title-cell small{max-width:calc(100vw - 100px)}.whisper-admin-layout{grid-template-columns:1fr}.whisper-admin-detail{min-height:420px}.checkbox-group{display:grid;grid-gap:9px;gap:9px}}.ai-generator-panel{display:grid;grid-gap:16px;gap:16px}.ai-preview-area{min-height:280px;border-radius:12px;background:linear-gradient(135deg,#182338,#263d5d);display:grid;place-items:center;overflow:hidden;min-height:0;aspect-ratio:1/1}.ai-preview-area img{width:100%;height:100%;min-height:0;object-fit:contain}.ai-provider-status{display:inline-flex;align-items:center;gap:7px;margin:10px 0;font-size:13px;color:#64748b}.ai-provider-status.online{color:#1f8f68}.ai-provider-status.disabled,.ai-provider-status.not_configured,.ai-provider-status.offline{color:#b45309}.status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.upload-progress{display:grid;grid-gap:5px;gap:5px;margin:10px 0}.ai-example,.ai-progress{display:grid;grid-gap:8px;gap:8px;place-items:center;color:#fff;text-align:center;padding:0;width:100%;height:100%}.ai-sample-image{width:min(460px,100%);max-height:220px;object-fit:cover;border-radius:10px;opacity:.9}.ai-example .ai-sample-image{width:100%;height:100%;max-height:none;object-fit:contain;border-radius:0;opacity:1}.ai-progress small{color:rgba(255,255,255,.72)}.progress-track{width:min(360px,80vw);height:8px;border-radius:999px;background:rgba(255,255,255,.2);overflow:hidden}.progress-track span{display:block;height:100%;background:#f7c873;transition:width .4s ease}.ai-meta-row,.ai-size-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ai-size-row button{border:1px solid var(--line,#d8dee8);background:transparent;border-radius:8px;padding:6px 14px;cursor:pointer}.ai-size-row button.active{background:#263d5d;color:#fff;border-color:#263d5d}.ai-prompt-row{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;align-items:end}.ai-prompt-row textarea{min-height:84px;resize:vertical}.ai-meta-row{justify-content:space-between;color:var(--text-muted,#64748b)}.ai-meta-row strong{color:var(--text,#1f2937);font-size:20px}.ai-album-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.ai-recent-panel{padding-top:14px}.ai-album-grid,.ai-recent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.ai-album-item img,.ai-recent-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#eef2f7}.ai-album-item{min-width:0}.ai-album-item>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:6px}.ai-provider-list{display:grid;grid-gap:12px;gap:12px}.ai-provider-card{display:grid;grid-gap:10px;gap:10px}.print-photo-page{max-width:780px;margin:0 auto}.print-photo-panel{display:grid;grid-gap:16px;gap:16px}.print-price-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#6f8285;font-size:12px}.print-price-strip svg{color:var(--teal)}.print-price-strip span:nth-of-type(2){margin-left:auto;color:var(--teal-dark);font-weight:700}.print-price-strip small{width:100%;color:#a17a4b;font-size:10px}.print-source-actions,.print-submit-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.print-submit-row{justify-content:space-between;color:#60767a;font-size:12px}.print-album-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.print-album-picker button{border:2px solid transparent;background:transparent;padding:0;border-radius:8px;overflow:hidden;aspect-ratio:1}.print-album-picker button.selected{border-color:var(--teal)}.print-album-picker img{width:100%;height:100%;object-fit:cover;display:block}.print-request-row,.print-selected-list{display:grid;grid-gap:8px;gap:8px}.print-request-row,.print-selected-item{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:10px}.print-selected-item img{width:52px;height:52px;object-fit:cover;border-radius:7px}.print-selected-item label{display:flex;align-items:center;gap:8px;color:#788b8f;font-size:11px}.print-selected-item input{width:58px}.print-selected-item .icon-button{margin-left:auto}.print-request-row>span{flex:1 1;min-width:0}.print-request-row small,.print-request-row strong{display:block}.print-request-row small{color:#8b9da0;font-size:10px;margin-top:4px}.print-admin-card,.print-admin-list{display:grid;grid-gap:12px;gap:12px}.print-admin-card>.row-between small{display:block;color:#8b9da0;font-size:10px;margin-top:5px}.print-admin-images{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.print-admin-images img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:#eef2f7}@media (max-width:640px){.ai-prompt-row{grid-template-columns:1fr}.ai-album-grid,.ai-recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-album-actions{width:100%;margin-left:0}.print-album-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.print-admin-images{grid-template-columns:repeat(3,minmax(0,1fr))}}.previewable-image{cursor:zoom-in;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;touch-action:manipulation}.image-preview-backdrop{z-index:70;background:rgba(8,17,24,.86)}.image-preview-modal{position:relative;width:min(94vw,980px);height:min(90vh,820px);display:grid;place-items:center}.image-preview-modal .close-button{position:absolute;z-index:2;top:8px;right:8px;color:white;background:rgba(8,17,24,.72);border-color:rgba(255,255,255,.28)}.image-preview-large{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:6px}.student-text-action{min-width:0;padding:5px 7px;font-size:10px;line-height:1;white-space:nowrap}.outline-button.danger{color:#b7534c;border-color:#e8beb8}.admin-order-row>.status-pill{min-width:0;white-space:normal;text-align:left;justify-content:flex-start;line-height:1.35}.all-ticket-panel{display:grid;grid-gap:14px;gap:14px}.all-ticket-heading h2{margin:2px 0 4px;font-size:18px}.ticket-page-size{display:flex;align-items:center;gap:7px;color:#687d82;font-size:11px;white-space:nowrap}.ticket-page-size select{width:auto;min-width:76px;padding:7px 9px}.all-ticket-table .table-head,.all-ticket-table .table-row{grid-template-columns:minmax(150px,1.25fr) minmax(80px,.7fr) minmax(90px,.8fr) 82px minmax(145px,1fr)}.all-ticket-table .table-row>span small,.all-ticket-table .table-row>span strong{display:block}.all-ticket-table .table-row>span small+small{margin-top:3px}.ticket-pagination{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.ticket-page-numbers{display:flex;gap:4px;max-width:min(100%,420px);overflow-x:auto}.ticket-page-numbers button{width:30px;height:30px;flex:0 0 30px;border:1px solid var(--line);border-radius:6px;background:white;color:#60767a}.ticket-page-numbers button.active{border-color:var(--teal);background:var(--teal);color:white}.compact-empty{padding:18px}.whisper-admin-directory{grid-template-columns:minmax(0,1fr)}.whisper-admin-directory .whisper-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px}.whisper-admin-thread.needs-reply{border-color:#dc8377;background:#fff4f2}.whisper-admin-thread.needs-reply small,.whisper-admin-thread.needs-reply strong{color:#a84f46}.whisper-admin-thread .count-badge{flex:0 0 auto;white-space:nowrap}.whisper-dialog-backdrop{z-index:55}.whisper-admin-dialog{width:min(92vw,720px);height:min(82vh,680px);min-height:420px;overflow:hidden}.whisper-admin-dialog .section-title{margin:0}.praise-rejection-reason{display:block;margin-top:7px;color:#a84f46;font-weight:700}@media (max-width:720px){.whisper-admin-directory .whisper-admin-list{grid-template-columns:1fr}.whisper-admin-dialog{width:calc(100vw - 20px);height:calc(100dvh - 24px);min-height:0;padding:14px}.all-ticket-table .table-head,.whisper-admin-dialog .privacy-badge{display:none}.all-ticket-table .table-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:7px 12px;gap:7px 12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px}.all-ticket-table .table-row>span:nth-child(2),.all-ticket-table .table-row>span:nth-child(3),.all-ticket-table .table-row>span:nth-child(5){grid-column:1/-1}.all-ticket-heading{align-items:flex-end}}