:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#213c34;background:#f5f7f6;font-synthesis:none;--green:#163e35;--accent:#ddecad;--muted:#68796f;--border:#e1e7e3;--surface:#fff}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.6}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible{outline:3px solid #83ad8d;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #6b9780;outline-offset:1px}button svg{flex-shrink:0}svg{vertical-align:middle}.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.muted{color:var(--muted)}.small{font-size:14px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:700;color:var(--muted);text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:11px 18px;font-weight:600;background:var(--green);color:white;line-height:1.4;min-height:44px;transition:background .15s,transform .15s}.btn:hover{background:#245847}.btn.secondary{background:#fff;color:var(--green);border-color:var(--border)}.btn.secondary:hover{background:#eff4f0}.btn.ghost{background:transparent;color:var(--muted)}.btn.ghost:hover{background:#eaf0ec}.btn.danger{background:#a14438}.btn.sm{padding:7px 12px;font-size:14px;min-height:36px}.btn.full{width:100%}.link-button{border:0;background:none;color:#366c55;padding:3px 0;font-weight:600;text-align:left}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted)}.icon-button:hover{background:#edf2ee}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:42px;height:42px;display:inline-grid;place-items:center;background:var(--green);color:#ecf3c5;border-radius:13px;font-size:21px;font-weight:700}.brand-name{font-size:22px;letter-spacing:.12em;font-weight:700}.brand small{display:block;font-size:11px;letter-spacing:.16em;color:var(--muted);line-height:1.2}.loading{height:100vh;display:flex;align-items:center;justify-content:center;gap:16px}
.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-story{background:var(--green);color:#f4f7ed;padding:54px 12%;display:flex;flex-direction:column;justify-content:space-between;gap:60px;position:relative;overflow:hidden}.auth-story .brand-mark{background:#ddecad;color:var(--green)}.auth-story .brand small{color:#b6cebf}.auth-story .eyebrow{color:#b6cebf}.auth-story h1{font-size:clamp(36px,4vw,64px);line-height:1.4;letter-spacing:.025em;font-weight:500;margin:20px 0}.auth-story h1 em{color:#dfedaf;font-style:normal}.auth-story p{color:#bed0c7;max-width:340px;line-height:1.9}.auth-note{border-top:1px solid #466357;padding-top:25px;font-size:14px;color:#c2d3c7}.auth-features{display:flex;gap:24px;flex-wrap:wrap;margin-top:40px;font-size:14px;color:#dbe7db}.auth-form-area{display:grid;place-items:center;padding:50px 32px}.auth-box{width:100%;max-width:390px}.auth-box h2{font-size:30px;font-weight:600;letter-spacing:-.03em;margin:6px 0 8px}.auth-tabs{display:flex;border-bottom:1px solid var(--border);margin:30px 0 24px;gap:32px}.auth-tab{border:0;border-bottom:2px solid transparent;padding:10px 0;background:none;color:var(--muted);font-weight:600}.auth-tab.active{color:var(--green);border-color:var(--green)}form{margin:0}.field{display:grid;gap:7px;margin-bottom:18px}.field label,.field-label{font-size:14px;font-weight:600}.field input,.field textarea,.field select,.input{width:100%;min-width:0;padding:12px 14px;border:1px solid #dbe3dc;border-radius:9px;background:#fff;color:#233f34;min-height:46px}.field input::placeholder,.field textarea::placeholder{color:#8d9a92}.field textarea{resize:vertical;min-height:92px}.field small{font-size:12px;color:var(--muted)}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-wrap button{position:absolute;right:5px;top:4px}.form-error{color:#ad4439;background:#fff0ed;padding:10px 12px;border-radius:8px;font-size:14px;margin-bottom:16px}.form-error:empty{display:none}.auth-footer{margin-top:25px;color:var(--muted);font-size:12px}.notice{padding:12px 15px;background:#f4f5e8;border:1px solid #e5e7cb;border-radius:10px;color:#636848;font-size:14px}.notice a,.notice button{text-decoration:underline}.auth-box .notice{margin:20px 0}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:16px 0}.check input{accent-color:var(--green);margin-top:5px;width:16px;height:16px}
.shell{min-height:100vh;display:grid;grid-template-columns:228px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:228px;border-right:1px solid var(--border);background:#fff;padding:32px 22px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{padding:0 4px}.sidebar nav{display:grid;gap:8px;margin-top:50px}.nav-item{display:flex;gap:13px;align-items:center;width:100%;padding:13px 16px;border-radius:10px;background:transparent;border:0;text-align:left;color:#65766c;font-weight:500}.nav-item.active{background:var(--green);color:#eff6e9}.nav-item:not(.active):hover{background:#f1f5f2}.sidebar-caption{margin-top:28px;padding:0 16px;font-size:12px;color:#87948b}.sidebar-bottom{margin-top:auto}.sidebar-note{padding:18px 14px;border-radius:12px;background:#f3f6ed;margin-bottom:24px;font-size:13px;color:#65765b}.sidebar-note strong{display:block;color:var(--green);margin-bottom:5px}.profile{display:flex;align-items:center;gap:10px;padding-top:18px;border-top:1px solid var(--border)}.avatar{width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;background:#e8eddf;color:#4f6b41;font-weight:600;flex-shrink:0}.profile-info{min-width:0;flex:1}.profile-info strong{font-size:14px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-info small{font-size:12px;color:var(--muted)}.workspace{grid-column:2;min-width:0}.topbar{height:86px;border-bottom:1px solid var(--border);padding:0 42px;background:#fafcfb;display:flex;align-items:center;justify-content:space-between;gap:12px}.breadcrumb{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:12px}.breadcrumb b{color:var(--green);font-weight:500}.connection{display:flex;align-items:center;gap:8px;font-size:13px;color:#55735c}.connection:before{content:"";width:7px;height:7px;border-radius:50%;background:#56966d}.connection.offline:before{background:#c18d35}.connection.offline{color:#926518}.content{max-width:1450px;margin:auto;padding:36px 42px 52px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading h1{font-size:30px;line-height:1.4;font-weight:650;letter-spacing:-.025em}.page-heading p{color:var(--muted);font-size:14px;margin-top:6px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px}.stat{background:white;border:1px solid var(--border);border-radius:13px;padding:19px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-size:28px;line-height:1.4;font-weight:600;letter-spacing:-.03em}.stat-value span{font-size:13px;font-weight:400;color:var(--muted);margin-left:7px;letter-spacing:0}.stat-icon{background:#f1f5eb;color:#637c4e;width:43px;height:43px;border-radius:12px;display:grid;place-items:center}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:22px 0 16px}.section-head h2{font-size:18px;font-weight:600}.badge{display:inline-flex;gap:5px;align-items:center;background:#edf4e9;color:#527348;border-radius:6px;font-size:12px;padding:3px 8px;font-weight:500}.badge.neutral{background:#f0f2f1;color:#738078}.badge.amber{background:#fcf3df;color:#8c691a}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.room-card{border:1px solid var(--border);border-radius:15px;background:white;padding:23px;display:flex;flex-direction:column;min-width:0;transition:box-shadow .2s,border-color .2s}.room-card:hover{border-color:#a6b8aa;box-shadow:0 8px 25px #173e3507}.room-card .room-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#edf3e5;color:#577144}.room-card h3{font-size:18px;margin:19px 0 8px;overflow-wrap:anywhere}.room-card p{color:var(--muted);font-size:14px;min-height:45px;overflow-wrap:anywhere}.room-card footer{margin-top:auto;padding-top:25px;display:flex;align-items:center;justify-content:space-between;gap:8px}.room-meta{font-size:13px;color:var(--muted)}.empty{padding:54px 25px;text-align:center;background:white;border:1px dashed #cbd8cd;border-radius:15px;grid-column:1/-1}.empty-icon{width:68px;height:68px;margin:0 auto 20px;border-radius:20px;background:#eef3e8;color:#6c8358;display:grid;place-items:center}.empty-icon .icon{width:30px;height:30px}.empty h3{font-size:20px;font-weight:600;margin-bottom:8px}.empty p{color:var(--muted);font-size:14px;max-width:390px;margin:0 auto 23px}.banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 21px;border-radius:12px;background:#e7eed9;margin-bottom:22px;font-size:14px}.banner strong{display:block}.banner p{font-size:13px;color:#637254}.banner.warning{background:#fff3df;color:#815f25}
.study-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:25px;align-items:start}.focus-card{background:var(--green);color:#f6f8f0;border-radius:18px;padding:27px;position:sticky;top:24px}.focus-card .eyebrow{color:#bdd0bd}.focus-card .badge{background:#385747;color:#e0edc5}.focus-card h2{font-size:19px;margin:22px 0 5px;font-weight:500;overflow-wrap:anywhere}.focus-card .focus-hint{font-size:13px;color:#b9cabb}.timer-circle{aspect-ratio:1;max-width:255px;margin:25px auto;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #627d63;border-radius:50%;outline:9px solid #ffffff05;box-shadow:inset 0 0 0 10px #ffffff03}.timer{font-size:43px;font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-weight:400;line-height:1.3}.timer-label{color:#bfd0ba;font-size:12px;letter-spacing:.15em;margin-top:7px}.focus-card .btn{background:var(--accent);color:#233e2d}.focus-card .btn:hover{background:#eaf5c6}.focus-card .btn.secondary{border-color:#55715e;background:transparent;color:#e6eddf}.focus-card .field label{color:#dfebd7}.focus-card .field input{background:#244d40;border-color:#59705b;color:white}.focus-card .field input::placeholder{color:#b1c3ad}.focus-card .actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.focus-card .divider{border-top:1px solid #466350;margin-top:24px;padding-top:17px;color:#bfcebd;font-size:12px}.focus-card .notice{margin-bottom:16px;color:#ece0b7;background:#4b5038;border-color:#6e7150}.focus-card .notice .row{margin-top:12px}.focus-card .notice .btn{font-size:12px;padding:8px}.room-panel{min-width:0}.room-panel .section-head{margin-top:0}.members-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.member{background:white;border:1px solid var(--border);border-radius:13px;padding:19px;min-width:0}.member.self{border-color:#9db89a;background:#fbfdf8}.member .avatar{border-radius:12px;width:42px;height:42px}.member-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}.member-role{font-size:12px;color:var(--muted)}.member-goal{font-size:14px;margin:17px 0 16px;overflow-wrap:anywhere;min-height:23px;color:#5e7062}.member-time{font-size:19px;letter-spacing:.02em;font-variant-numeric:tabular-nums}.member-empty{min-height:176px;border:1px dashed #d7dfd5;border-radius:13px;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#84917d;font-size:13px;gap:7px}.member-empty .icon{width:25px;height:25px}.room-guideline{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;padding:16px 0 26px}.activity{padding:18px;background:white;border:1px solid var(--border);border-radius:12px;margin-top:12px}.activity p{font-size:14px;overflow-wrap:anywhere;margin-top:8px}.activity small{color:var(--muted)}.activity-empty{padding:25px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--muted);font-size:14px}.record-list{display:grid;gap:12px}.record{display:grid;grid-template-columns:60px 1fr auto;gap:20px;padding:22px;background:#fff;border:1px solid var(--border);border-radius:13px;align-items:start}.record-date{text-align:center;border-right:1px solid var(--border);padding-right:18px;color:var(--muted);font-size:12px}.record-date strong{display:block;color:var(--green);font-size:26px;font-weight:500;line-height:1.3}.record h3{font-size:16px;font-weight:600;overflow-wrap:anywhere}.record p{font-size:14px;color:var(--muted);margin-top:7px;overflow-wrap:anywhere;white-space:pre-wrap}.record .duration{font-size:18px;white-space:nowrap;font-variant-numeric:tabular-nums}.record-meta{display:flex;gap:10px;margin-top:9px;align-items:center;font-size:12px;color:var(--muted)}
dialog{border:1px solid var(--border);border-radius:18px;padding:28px;max-width:480px;width:calc(100% - 32px);max-height:90vh;color:var(--green);box-shadow:0 24px 100px #071e3033}dialog::backdrop{background:#11271f66;backdrop-filter:none;-webkit-backdrop-filter:none}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-head h2{font-size:22px;font-weight:600}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}dialog .summary{background:#f1f5ed;border-radius:12px;padding:18px;margin-bottom:20px}dialog .summary strong{display:block;font-size:28px;font-weight:500}dialog .summary p{font-size:14px;color:var(--muted);overflow-wrap:anywhere}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:#173e35;color:white;border-radius:12px;padding:12px 22px;max-width:calc(100% - 30px);width:max-content;box-shadow:0 8px 25px #0002;z-index:100;opacity:0;pointer-events:none;transition:.2s;font-size:14px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.mobile-brand{display:none}.network-banner{background:#fff2d8;padding:10px 20px;text-align:center;font-size:13px;color:#886220}.error-view{padding:20px}
@media(min-width:1500px){.study-layout{grid-template-columns:370px minmax(0,1fr)}.members-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1150px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{grid-template-columns:190px 1fr}.sidebar{width:190px;padding:28px 14px}.content{padding:28px}.topbar{padding:0 28px}.study-layout{grid-template-columns:290px minmax(0,1fr);gap:18px}.focus-card{padding:21px}.members-grid{grid-template-columns:1fr}.timer{font-size:39px}.stat{padding:16px}.stat-icon{display:none}.brand-name{font-size:20px}}
@media(max-width:800px){.auth-layout{grid-template-columns:1fr}.auth-story{padding:26px 30px;gap:24px}.auth-story h1{font-size:31px;margin:12px 0}.auth-story h1 br{display:none}.auth-story p,.auth-note,.auth-features{display:none}.auth-form-area{padding:30px 24px 50px}.auth-box h2{font-size:26px}.auth-tabs{margin:20px 0}.shell{display:block}.sidebar{inset:auto 0 0 0;width:100%;height:74px;padding:8px 14px;background:#fffffff5;backdrop-filter:blur(12px);border-right:0;border-top:1px solid var(--border)}.sidebar>.brand,.sidebar-caption,.sidebar-bottom{display:none}.sidebar nav{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.nav-item{flex-direction:column;gap:3px;justify-content:center;font-size:12px;padding:6px;border-radius:8px}.nav-item.active{background:#e8efdd;color:var(--green)}.nav-item .icon{width:20px;height:20px}.workspace{padding-bottom:78px}.topbar{height:67px;padding:0 20px}.mobile-brand{display:flex}.mobile-brand .brand-mark{width:33px;height:33px;font-size:16px;border-radius:10px}.mobile-brand .brand-name{font-size:18px}.breadcrumb{display:none}.connection{font-size:12px}.content{padding:24px 20px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:23px}.page-heading h1{font-size:26px}.page-heading .btn{padding:10px 13px;font-size:14px}.stats{gap:9px;margin-bottom:24px}.stat{padding:13px 11px;border-radius:10px}.stat-label{font-size:12px}.stat-value{font-size:24px}.stat-value span{font-size:11px;margin-left:3px}.study-layout{grid-template-columns:1fr}.focus-card{position:static;padding:23px}.timer-circle{max-width:210px;margin:18px auto}.timer{font-size:42px}.focus-card h2{margin-top:17px}.focus-card .divider{margin-top:17px}.members-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member{padding:15px}.member .row{gap:8px}.member .avatar{width:34px;height:34px}.member .badge{font-size:11px;padding:2px 5px}.member-time{font-size:17px}.room-grid{grid-template-columns:1fr}.banner{align-items:flex-start;flex-wrap:wrap}.record{grid-template-columns:42px 1fr;gap:14px;padding:18px 15px}.record .duration{grid-column:2;font-size:16px}.record-date{padding-right:12px}.record-meta{flex-wrap:wrap}.record-date strong{font-size:23px}#toast{bottom:92px}.auth-footer{font-size:12px}.room-guideline{align-items:flex-start}.room-guideline .icon{flex-shrink:0}.section-head h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.center{justify-content:center}
.ranking-preference{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:21px 24px;background:#fff;border:1px solid var(--border);border-radius:13px;margin-bottom:27px}.ranking-preference h2{font-size:16px;font-weight:600;display:flex;align-items:center;gap:10px}.ranking-preference p{font-size:14px;color:var(--muted);margin-top:6px;max-width:720px}.participation-switch{flex-shrink:0;position:relative;width:56px;height:34px;border:1px solid #acb7b0;border-radius:22px;background:#b8c4bd;padding:3px;transition:background .2s}.participation-switch span{display:block;width:26px;height:26px;border-radius:50%;background:white;box-shadow:0 1px 4px #19342a26;transition:transform .2s}.participation-switch[aria-checked=true]{background:var(--green);border-color:var(--green)}.participation-switch[aria-checked=true] span{transform:translateX(21px)}.ranking-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.ranking-tabs{display:flex;background:#e9eeeb;border:1px solid #e1e7e3;border-radius:11px;padding:4px;gap:4px}.ranking-tabs button{border:0;background:transparent;color:#68796f;font-size:14px;padding:10px 25px;min-height:42px;border-radius:8px;font-weight:600}.ranking-tabs button.active{background:white;color:var(--green);box-shadow:0 2px 5px #2340340c}.ranking-self{display:grid;grid-template-columns:1fr auto;gap:22px 30px;background:var(--green);border-radius:15px;padding:25px 28px;color:#eef5e8}.ranking-self-title{display:flex;align-items:center;gap:16px;min-width:0}.ranking-emblem{display:grid;place-items:center;width:52px;height:52px;border:1px solid #627d57;border-radius:15px;color:var(--accent);flex-shrink:0}.ranking-emblem .icon{width:27px;height:27px}.ranking-self-title p{color:#bdcebe;margin-bottom:4px}.ranking-self-title strong{font-size:20px;font-weight:500;overflow-wrap:anywhere}.ranking-self-score{display:flex;gap:40px;align-items:center}.ranking-self-score>div{display:grid;gap:6px}.ranking-self-score span{font-size:13px;color:#bdcebe}.ranking-self-score strong{font-size:26px;line-height:1.3;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.ranking-self-hint{grid-column:1/-1;border-top:1px solid #426151;padding-top:14px;font-size:13px;color:#ccdabf}.ranking-table-wrap{background:white;border:1px solid var(--border);border-radius:14px;overflow:hidden}.ranking-table{width:100%;border-collapse:collapse;text-align:left}.ranking-table th{padding:15px 23px;font-size:13px;font-weight:500;color:var(--muted);background:#fafcf9;border-bottom:1px solid var(--border)}.ranking-table td{padding:16px 23px;border-bottom:1px solid #edf0ed;font-size:15px}.ranking-table tbody tr:last-child td{border-bottom:0}.ranking-table th:first-child{width:92px}.ranking-table th:last-child,.ranking-duration{text-align:right}.ranking-table tr.ranking-me{background:#f0f6e8}.ranking-person{display:flex;align-items:center;gap:12px;min-width:0}.ranking-nickname{overflow-wrap:anywhere}.ranking-person .avatar{width:34px;height:34px;font-size:14px}.rank-number{display:inline-grid;place-items:center;width:34px;height:34px;color:#79867e;font-variant-numeric:tabular-nums;font-weight:600;border-radius:10px}.rank-number.rank-1{background:#f3e7c5;color:#8c6425}.rank-number.rank-2{background:#e8eef1;color:#526c79}.rank-number.rank-3{background:#f3e6dc;color:#986044}.ranking-duration{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.02em}.ranking-rules{font-size:13px;color:var(--muted);line-height:1.8;margin-top:22px;display:grid;gap:6px}.ranking-rules .icon{width:16px;height:16px;margin-right:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr))}.ranking-preference{padding:17px 16px;gap:15px;margin-bottom:20px}.ranking-preference p{font-size:13px}.ranking-toolbar{gap:12px}.ranking-tabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.ranking-tabs button{padding:8px 12px}.ranking-toolbar>p{font-size:12px}.ranking-self{padding:20px;grid-template-columns:1fr;gap:18px}.ranking-self-title strong{font-size:18px}.ranking-self-score{justify-content:space-between;gap:16px}.ranking-self-score strong{font-size:24px}.ranking-self-hint{font-size:12px}.ranking-emblem{width:44px;height:44px}.ranking-table th,.ranking-table td{padding:14px 12px}.ranking-table th:first-child{width:48px}.ranking-table th{font-size:12px}.ranking-table td{font-size:14px}.ranking-person{gap:7px;flex-wrap:wrap}.ranking-person .avatar{display:none}.rank-number{width:28px;height:30px;font-size:13px}.ranking-table .badge{font-size:11px;padding:2px 5px}.ranking-rules{font-size:12px}.ranking-table .ranking-duration{font-size:13px}.ranking-self-title .small{font-size:13px}}
.exam-countdown{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 30px;margin-bottom:28px;border-radius:16px;background:#183f35;color:#fff}.countdown-copy h2{font-size:21px;font-weight:600;margin:0 0 9px}.countdown-copy time{font-size:15px;color:#e1eadb;letter-spacing:.06em}.countdown-copy small{display:block;margin-top:7px;font-size:11px;color:#b8cbbf}.countdown-number{text-align:right;flex-shrink:0}.countdown-number>span{font-size:12px;color:#d0decc}.countdown-number>div{display:flex;align-items:baseline;justify-content:flex-end;gap:8px}.countdown-number strong{font-size:68px;line-height:1.12;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.035em;color:#e5f4ab}.countdown-number>div>span{font-size:15px;color:#e5f4ab}
@media(max-width:800px){.exam-countdown{padding:20px;gap:12px;margin-bottom:23px;border-radius:14px}.countdown-copy h2{font-size:17px}.countdown-copy time{font-size:13px}.countdown-copy small{font-size:10px;max-width:160px;line-height:1.6}.countdown-number strong{font-size:50px}.countdown-number>span{font-size:11px}}
.room-owner-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e7ece6;margin-top:15px;padding-top:12px}.room-owner-actions>span{font-size:12px;color:#879085}.room-delete{color:#a3473d!important}.room-delete:hover{background:#fff0ed!important}

.lobby-current-room{padding:26px 0 34px;margin-bottom:28px;border-bottom:1px solid var(--border)}.current-room-title{font-size:28px;line-height:1.4;margin:9px 0}.profile-link{border:0;background:none;text-align:left;cursor:pointer;color:inherit;padding:0}.profile-summary{display:flex;align-items:center;gap:18px;padding:24px;background:var(--green);color:white;border-radius:16px;margin-bottom:24px}.profile-summary .avatar{width:60px;height:60px;font-size:25px;flex-shrink:0}.profile-summary h2{font-size:22px;overflow-wrap:anywhere}.profile-summary p{font-size:14px;color:#d0decc;margin-top:5px;overflow-wrap:anywhere}.profile-summary .badge{margin-left:auto;flex-shrink:0}.profile-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}.profile-card{background:white;border:1px solid var(--border);border-radius:14px;padding:26px;min-width:0}.profile-card h2{font-size:18px;margin-bottom:9px}.profile-card form{margin-top:22px}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.profile-side{display:grid;gap:24px}.account-details{margin:20px 0;display:grid;gap:7px}.account-details dt{font-size:12px;color:var(--muted)}.account-details dd{margin:0 0 9px;overflow-wrap:anywhere}.profile-card textarea{min-height:130px}.profile-summary>div{min-width:0}@media(max-width:1000px){.profile-layout{grid-template-columns:1fr}}@media(max-width:600px){.profile-fields{grid-template-columns:1fr}.profile-card{padding:20px}.profile-summary{padding:20px;gap:12px}.profile-summary .badge{display:none}.current-room-title{font-size:24px}.lobby-current-room{padding-top:12px}}

.room-back{margin-bottom:20px}.current-room-entry{gap:16px}.current-room-entry>div{min-width:0}.current-room-entry strong{overflow-wrap:anywhere}.current-room-entry .btn{flex-shrink:0}.current-room-entry p{margin-top:3px}

.managed-room{padding-top:18px;margin-top:18px;border-top:1px solid var(--border)}.managed-room>strong{overflow-wrap:anywhere}.managed-room>p{margin:6px 0 12px}
/* Inline chat attachments and drag-to-send. */
.friend-chat,.discussion-chat{position:relative;transition:outline-color .15s}
.file-drag-over{outline:3px dashed #df7fa4;outline-offset:-4px;background:#fff0f6!important}
.file-drag-over::after{content:'松手发送文件';position:absolute;inset:12px;z-index:8;display:grid;place-items:center;background:#fff1f8ee;border-radius:18px;color:#9b3d65;font-size:22px;font-weight:700;pointer-events:none}
.chat-attachment{max-width:100%;min-width:0}.chat-image{display:block;padding:0;border:0;background:transparent;cursor:zoom-in;max-width:100%}
.chat-image img{display:block;max-width:min(280px,100%);max-height:230px;border-radius:12px;object-fit:contain}
.chat-video{display:block;width:320px;max-width:100%;max-height:250px;background:#29212a;border-radius:12px;margin-bottom:8px}
.chat-attachment a{overflow-wrap:anywhere}.chat-media-error{max-width:300px}.chat-image[hidden]{display:none}
.chat-image-dialog{border:1px solid #f1c8dc;border-radius:18px;max-width:92vw;max-height:90vh;padding:12px;background:#fff8fb}.chat-image-dialog::backdrop{background:#291927b8}
.chat-image-dialog>button{display:block;margin:0 0 10px auto}.chat-image-dialog>img{display:block;max-width:85vw;max-height:73vh;object-fit:contain}
