:root{color-scheme:light dark;--accent:#0a84ff;--accent-rgb:10,132,255;--bg:#f4f5f7;--surface:#fff;--surface-2:#eef0f4;--text:#111318;--muted:#707681;--line:rgba(18,22,28,.08);--good:#238568;--warn:#a56a08;--danger:#cc3945;--shadow:0 16px 44px rgba(21,29,43,.08);--radius:22px;--control-radius:16px;--blur:22px;--safe-top:max(16px,var(--tg-content-safe-area-inset-top,env(safe-area-inset-top)));--safe-bottom:max(8px,var(--tg-content-safe-area-inset-bottom,env(safe-area-inset-bottom)))}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;overscroll-behavior:none;background:var(--bg);color:var(--text)}body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Apple SD Gothic Neo","Noto Sans KR",sans-serif;-webkit-font-smoothing:antialiased}.app{width:min(100%,480px);min-height:var(--tg-viewport-stable-height,100svh);margin:auto;background:var(--bg);position:relative;overflow:hidden}.shell{min-height:inherit;padding:var(--safe-top) 16px calc(82px + var(--safe-bottom))}.topbar{height:58px;display:flex;align-items:flex-start;justify-content:space-between;padding:3px 2px 0}.overline{display:block;color:var(--accent);font-size:9px;line-height:1.2;font-weight:760;letter-spacing:.16em}.topbar h1{font-size:22px;line-height:1.1;letter-spacing:-.045em;margin:5px 0 0}.icon-button,.close-button{border:0;width:40px;height:40px;border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 4px 16px rgba(20,26,38,.06);font-size:20px}.gear{display:block;transform:translateY(-1px)}button{font:inherit;color:inherit;cursor:pointer}.tactile{transform:translateZ(0);transition:transform 110ms cubic-bezier(.2,.8,.2,1),filter 110ms,background-color 160ms}.tactile:active,.tactile.is-pressed{transform:scale(.975);filter:brightness(.97)}.content{padding-top:14px}.view{display:none;min-height:calc(var(--tg-viewport-stable-height,100svh) - 160px)}.view.active{display:block;animation:view-in .24s cubic-bezier(.2,.75,.25,1)}@keyframes view-in{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
.hero-copy{padding:11px 4px 21px}.hero-copy>p{margin:0;font-size:27px;line-height:1.16;letter-spacing:-.055em;color:var(--muted);font-weight:570}.hero-copy>p strong{color:var(--text);font-weight:760}.hero-copy>span{display:inline-flex;align-items:center;gap:7px;margin-top:13px;font-size:11px;color:var(--muted)}.hero-copy i{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px rgba(35,133,104,.1)}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-card{min-height:116px;border:0;border-radius:var(--radius);background:var(--surface);padding:15px;text-align:left;box-shadow:0 7px 28px rgba(25,33,47,.045);position:relative;display:flex;flex-direction:column;align-items:flex-start}.action-card .symbol{width:38px;height:38px;border-radius:13px;background:rgba(var(--accent-rgb),.1);color:var(--accent);display:grid;place-items:center;font-size:22px;font-weight:500}.action-card .people{font-size:18px}.action-card>span:nth-child(2){display:flex;flex-direction:column;margin-top:14px;gap:3px}.action-card strong{font-size:14px;letter-spacing:-.025em}.action-card small{font-size:9.5px;color:var(--muted)}.action-card>b{position:absolute;right:15px;top:17px;color:#a1a6ae;font-size:20px;font-weight:400}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 3px 12px}.section-title h2{font-size:16px;margin:0;letter-spacing:-.035em}.text-button{border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:680;padding:8px}.week-stack{display:grid;gap:8px}.week-card{border:0;width:100%;background:var(--surface);border-radius:18px;padding:14px 15px;display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left}.week-card .week-main{display:flex;gap:11px;align-items:center}.week-card .file-symbol{width:36px;height:42px;border-radius:11px;background:var(--surface-2);display:grid;place-items:center;color:var(--accent);font-size:15px}.week-card strong{font-size:12.5px;display:block}.week-card small{font-size:9.5px;color:var(--muted);display:block;margin-top:4px}.status-label{align-self:center;border-radius:99px;padding:5px 8px;background:rgba(35,133,104,.1);color:var(--good);font-size:9px;font-weight:720}.status-label.review{background:rgba(165,106,8,.1);color:var(--warn)}.issue-card{margin-top:10px;background:#fff7e9;border-radius:18px;padding:14px;display:flex;align-items:center;gap:12px}.issue-card div{flex:1}.issue-card span,.issue-card strong{display:block}.issue-card span{font-size:10px;color:var(--warn);font-weight:720}.issue-card strong{font-size:11px;margin-top:4px}.issue-card button{border:0;border-radius:12px;background:#f2dfb9;color:#775015;font-size:10px;font-weight:720;padding:9px 11px}
.view-heading{padding:8px 4px 15px}.view-heading h2{font-size:28px;letter-spacing:-.055em;margin:7px 0 5px}.view-heading p{font-size:11px;line-height:1.5;color:var(--muted);margin:0}.room-picker{display:flex;gap:7px;overflow-x:auto;padding:5px 1px 13px;scrollbar-width:none}.room-picker::-webkit-scrollbar{display:none}.room-picker button{height:34px;white-space:nowrap;border:1px solid var(--line);border-radius:99px;background:var(--surface);font-size:10px;padding:0 13px}.room-picker button.active{border-color:transparent;background:var(--text);color:var(--bg)}.library-list{display:grid;gap:12px}.library-week{background:var(--surface);border-radius:var(--radius);overflow:hidden}.library-week header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px}.library-week header div{display:flex;gap:10px;align-items:center}.state-dot{width:8px;height:8px;border-radius:50%;background:var(--good)}.state-dot.review{background:var(--warn)}.state-dot.quiet{background:#a4a9b2}.library-week h3{font-size:14px;margin:0}.library-week header small{font-size:9px;color:var(--muted)}.material-row{display:flex;align-items:center;gap:10px;margin:0 12px;border-top:1px solid var(--line);padding:11px 4px}.material-row .mini-file{width:31px;height:34px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;font-size:11px;color:var(--accent)}.material-row div{flex:1}.material-row strong{display:block;font-size:11px}.material-row small{font-size:9px;color:var(--muted)}.library-week footer{padding:10px 12px 12px}.open-week{border:0;width:100%;height:38px;border-radius:12px;background:rgba(var(--accent-rgb),.1);color:var(--accent);font-size:10.5px;font-weight:730}
.community-orb{width:144px;height:144px;margin:38px auto 28px;border-radius:50%;position:relative;background:radial-gradient(circle at 35% 28%,rgba(var(--accent-rgb),.34),rgba(var(--accent-rgb),.08) 58%,transparent 59%);display:grid;place-items:center}.community-orb:before{content:"";width:64px;height:64px;border-radius:24px;background:var(--accent);box-shadow:0 15px 35px rgba(var(--accent-rgb),.24)}.community-orb span{position:absolute;width:24px;height:24px;border-radius:50%;background:var(--surface);box-shadow:0 7px 18px rgba(20,28,42,.12)}.community-orb span:nth-child(1){left:7px;top:37px}.community-orb span:nth-child(2){right:7px;top:31px}.community-orb span:nth-child(3){right:23px;bottom:8px}.community-copy{text-align:center;padding:0 20px 22px}.community-copy h2{font-size:28px;letter-spacing:-.055em;margin:7px 0 8px}.community-copy p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}.primary-button{width:100%;height:48px;border:0;border-radius:var(--control-radius);background:var(--accent);color:white;font-size:13px;font-weight:760}.native-note{display:block;text-align:center;font-size:9px;line-height:1.5;color:var(--muted);margin:11px 24px}.profile-card{display:flex;align-items:center;gap:13px;background:var(--surface);border-radius:var(--radius);padding:16px;margin:3px 0 12px}.avatar{width:46px;height:46px;border-radius:16px;background:rgba(var(--accent-rgb),.11);color:var(--accent);display:grid;place-items:center;font-weight:760}.profile-card strong,.profile-card small{display:block}.profile-card strong{font-size:14px}.profile-card small{font-size:10px;color:var(--muted);margin-top:4px}.settings-group{overflow:hidden;border-radius:18px;margin:0 0 11px}.list-row{width:100%;min-height:58px;border:0;border-bottom:1px solid var(--line);background:var(--surface);padding:10px 15px;display:flex;align-items:center;text-align:left}.list-row:first-child{border-radius:18px 18px 0 0}.list-row:last-child{border-radius:0 0 18px 18px;border:0}.list-row:only-child{border-radius:18px}.list-row span{flex:1}.list-row strong,.list-row small{display:block}.list-row strong{font-size:12px}.list-row small{font-size:9px;color:var(--muted);margin-top:4px;line-height:1.35}.list-row>b{font-size:19px;color:#9da3ad;font-weight:400}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin-card{min-height:92px;border:0;border-radius:19px;background:var(--surface);padding:15px;text-align:left}.admin-card span,.admin-card small{display:block}.admin-card span{font-size:13px;font-weight:730}.admin-card small{font-size:9px;line-height:1.4;color:var(--muted);margin-top:7px}.admin-feature{margin-top:13px;padding:18px;background:linear-gradient(145deg,rgba(var(--accent-rgb),.1),var(--surface) 65%);border-radius:var(--radius)}.admin-feature .eyebrow{font-size:9px;font-weight:760;color:var(--accent)}.admin-feature h3{font-size:16px;letter-spacing:-.04em;margin:6px 0}.admin-feature p{font-size:10px;line-height:1.55;color:var(--muted);margin:0 0 14px}.secondary-button{height:40px;border:0;border-radius:13px;padding:0 14px;background:rgba(var(--accent-rgb),.12);color:var(--accent);font-size:10.5px;font-weight:720}
.tabbar{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);height:calc(67px + var(--safe-bottom));padding:7px 20px var(--safe-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(248,249,251,.86);backdrop-filter:blur(var(--blur)) saturate(1.25);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.25);border-top:1px solid rgba(255,255,255,.5)}.tabbar button{border:0;background:transparent;color:#8d929b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:650}.tabbar button span{font-size:20px;line-height:1}.tabbar button small{font-size:9px}.tabbar button.active{color:var(--accent)}
.loading-screen{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px}.loading-screen strong{font-size:16px;letter-spacing:-.035em;transition:opacity .22s,transform .22s}.loading-screen strong.swap{opacity:0;transform:translateY(3px)}.loading-screen small{font-size:10px;color:var(--muted);margin-top:7px}.loading-mark{width:60px;height:42px;position:relative;margin-bottom:25px}.loading-mark span{position:absolute;width:30px;height:30px;border-radius:13px;background:rgba(var(--accent-rgb),.22);backdrop-filter:blur(8px);animation:load-float 1.5s ease-in-out infinite}.loading-mark span:nth-child(1){left:0;top:10px}.loading-mark span:nth-child(2){left:15px;top:0;animation-delay:-.5s;background:rgba(var(--accent-rgb),.46)}.loading-mark span:nth-child(3){right:0;top:10px;animation-delay:-1s;background:var(--accent)}@keyframes load-float{50%{transform:translateY(4px) scale(.94)}}
.modal-layer{position:fixed;z-index:50;inset:0}.scrim{position:absolute;inset:0;background:rgba(13,17,25,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,480px);max-height:90svh;overflow:auto;background:var(--bg);border-radius:28px 28px 0 0;padding:23px 20px calc(20px + var(--safe-bottom));animation:modal-in .25s cubic-bezier(.2,.8,.2,1)}@keyframes modal-in{from{transform:translate(-50%,20px);opacity:.3}}.modal h2{font-size:24px;letter-spacing:-.05em;margin:8px 0}.modal>p{font-size:12px;line-height:1.55;color:var(--muted)}.update-art{height:92px;position:relative;margin:-3px 0 15px;display:grid;place-items:center}.update-art:before{content:"";width:70px;height:70px;border-radius:25px;background:linear-gradient(145deg,rgba(var(--accent-rgb),.32),var(--accent));box-shadow:0 20px 35px rgba(var(--accent-rgb),.2)}.update-art span{position:absolute;width:25px;height:25px;border-radius:10px;background:var(--surface);box-shadow:0 5px 16px rgba(20,28,40,.12)}.update-art span:nth-child(1){left:28%;top:11px}.update-art span:nth-child(2){right:25%;top:28px}.update-art span:nth-child(3){left:34%;bottom:0}.update-modal>p{margin:0 0 15px}.update-modal ul{list-style:none;margin:0 0 14px;padding:0;background:var(--surface);border-radius:18px}.update-modal li{position:relative;padding:12px 13px 12px 35px;font-size:11px;border-bottom:1px solid var(--line)}.update-modal li:last-child{border:0}.update-modal li:before{content:"";position:absolute;left:15px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.update-modal>small{display:block;font-size:9px;line-height:1.5;color:var(--muted);margin:0 5px 16px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:7px 0 18px}.close-button{box-shadow:none;background:var(--surface-2)}.settings-modal>label{display:block;font-size:10px;color:var(--muted);font-weight:680;margin:16px 3px 8px}.segmented{height:42px;padding:3px;background:var(--surface-2);border-radius:13px;display:grid;grid-template-columns:repeat(3,1fr)}.segmented button{border:0;border-radius:10px;background:transparent;font-size:10px}.segmented button.active{background:var(--surface);box-shadow:0 2px 8px rgba(20,28,40,.08);font-weight:720}.segmented button:disabled{opacity:.34}.color-picker{display:flex;gap:12px;padding:4px}.color-picker button{width:31px;height:31px;border-radius:50%;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--line);background:#7f8791}.color-picker button:nth-child(2){background:#0a84ff}.color-picker button:nth-child(3){background:#7357d9}.color-picker button:nth-child(4){background:#16877d}.color-picker button.active{box-shadow:0 0 0 2px var(--text)}.setting-note{min-height:28px;font-size:9px!important;margin:9px 3px 16px!important}.transition-modal,.message-modal{text-align:center}.telegram-mark,.message-icon{width:54px;height:54px;border-radius:18px;background:rgba(var(--accent-rgb),.11);color:var(--accent);display:grid;place-items:center;margin:4px auto 15px;font-size:25px}.quiet-button{width:100%;height:44px;border:0;background:transparent;color:var(--accent);font-size:12px;font-weight:700;margin-top:6px}
.app[data-design="android"]{--radius:24px;--control-radius:24px;--bg:#f9f7fb;--surface:#fffbff;--surface-2:#f0ebf2;font-family:Roboto,"Noto Sans KR",system-ui,sans-serif}.app[data-design="android"][data-accent="system"]{--accent:#6750a4;--accent-rgb:103,80,164}.app[data-design="android"] .topbar h1{font-size:23px;font-weight:560;letter-spacing:-.025em}.app[data-design="android"] .overline{letter-spacing:.1em}.app[data-design="android"] .action-card{border-radius:26px;box-shadow:none;background:#f4eff7}.app[data-design="android"] .action-card .symbol{border-radius:50%}.app[data-design="android"] .week-card,.app[data-design="android"] .library-week,.app[data-design="android"] .profile-card{box-shadow:none;border-radius:24px}.app[data-design="android"] .tabbar{background:#f1ecf3;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}.app[data-design="android"] .tabbar button span{min-width:50px;height:29px;border-radius:99px;display:grid;place-items:center}.app[data-design="android"] .tabbar button.active span{background:rgba(var(--accent-rgb),.14)}.app[data-design="android"] .primary-button{font-weight:650}.app[data-design="android"] .modal{border-radius:28px 28px 0 0;background:#fffbff}.app[data-performance="lite"]{--blur:0px}.app[data-performance="lite"] .tabbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface)}.app[data-performance="lite"] .community-orb span,.app[data-performance="lite"] .loading-mark span{box-shadow:none}.app[data-performance="lite"] .loading-mark span{backdrop-filter:none}.app[data-accent="blue"]{--accent:#1778d4;--accent-rgb:23,120,212}.app[data-accent="violet"]{--accent:#7357d9;--accent-rgb:115,87,217}.app[data-accent="teal"]{--accent:#16877d;--accent-rgb:22,135,125}
@media(prefers-color-scheme:dark){:root{--bg:#0d1015;--surface:#191d24;--surface-2:#242932;--text:#f3f4f6;--muted:#9ba2ad;--line:rgba(255,255,255,.08);--shadow:0 16px 50px rgba(0,0,0,.24)}.tabbar{background:rgba(18,22,28,.88);border-top-color:rgba(255,255,255,.06)}.issue-card{background:#2d2518}.issue-card button{background:#4a3a1e;color:#f2d9a4}.app[data-design="android"]{--bg:#141217;--surface:#211f23;--surface-2:#2b272e}.app[data-design="android"] .action-card{background:#242127}.app[data-design="android"] .tabbar{background:#211e24}.app[data-design="android"] .modal{background:#1b191d}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:700px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}
.busy-overlay{position:fixed;z-index:70;inset:0;background:rgba(244,245,247,.84);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center}.busy-overlay strong{font-size:14px;transition:opacity .18s,transform .18s}.busy-overlay strong.swap{opacity:0;transform:translateY(3px)}.busy-overlay small{font-size:9.5px;color:var(--muted);margin-top:7px}.busy-spinner{width:52px;height:34px;position:relative;margin-bottom:18px}.busy-spinner i{position:absolute;top:8px;width:22px;height:22px;border-radius:9px;background:rgba(var(--accent-rgb),.18);animation:load-float 1.25s ease-in-out infinite}.busy-spinner i:nth-child(1){left:0}.busy-spinner i:nth-child(2){left:15px;top:0;background:rgba(var(--accent-rgb),.42);animation-delay:-.42s}.busy-spinner i:nth-child(3){right:0;background:var(--accent);animation-delay:-.84s}.setting-list{overflow:hidden;border-radius:18px;margin:12px 0}.switch-row{min-height:66px;padding:12px 14px;background:var(--surface);display:flex!important;align-items:center;gap:12px;margin:0!important;border-bottom:1px solid var(--line);color:var(--text)!important}.switch-row:last-child{border:0}.switch-row>span{flex:1}.switch-row strong,.switch-row small{display:block}.switch-row strong{font-size:11.5px}.switch-row small{font-size:9px;line-height:1.4;color:var(--muted);margin-top:4px}.switch-row input{position:absolute;opacity:0}.switch-row i{width:44px;height:26px;border-radius:99px;background:#aeb3bb;position:relative;transition:background .18s}.switch-row i:after{content:"";position:absolute;width:22px;height:22px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:transform .18s}.switch-row input:checked+i{background:var(--accent)}.switch-row input:checked+i:after{transform:translateX(18px)}.advanced-options{overflow:hidden;border-radius:18px;margin:0 0 14px}.field{display:block;margin:13px 0!important;color:var(--text)!important}.field>span{display:block;font-size:9.5px;color:var(--muted);font-weight:680;margin:0 3px 7px}.field input{width:100%;height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text);padding:0 12px;font:inherit;font-size:11px}.field input[type=file]{padding:10px}.stepper{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:0;margin:8px 0 18px}.stepper li{font-size:9px;color:var(--muted);padding-top:8px;border-top:3px solid var(--surface-2)}.stepper li.active{color:var(--accent);border-color:var(--accent);font-weight:730}.people-modal>p{font-size:10px!important}.people-list{display:grid;gap:7px;margin-top:12px}.person-row{min-height:56px;background:var(--surface);border-radius:16px;padding:10px 12px;display:flex;align-items:center;gap:10px}.person-avatar{width:35px;height:35px;border-radius:12px;background:rgba(var(--accent-rgb),.1);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:730}.person-main{flex:1;min-width:0}.person-main strong,.person-main small{display:block}.person-main strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-main small{font-size:9px;color:var(--muted);margin-top:3px}.identity-button{height:28px;border:0;border-radius:10px;padding:0 9px;background:var(--surface-2);color:var(--muted);font-size:9px}.identity-code{display:inline-flex;align-items:center;border-radius:8px;background:rgba(var(--accent-rgb),.1);color:var(--accent);font-size:9px;padding:5px 8px}.loading-inline,.empty-state{text-align:center;padding:28px 12px;color:var(--muted);font-size:10px}.app[data-performance="lite"] .busy-overlay{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg)}.app[data-performance="lite"] .busy-spinner i{animation-duration:1.8s}.app[data-design="android"] .admin-card{border-radius:24px;background:#f4eff7}.app[data-design="android"] .identity-button{border-radius:99px}.app[data-design="android"] .switch-row i{height:24px;width:42px}.app[data-design="android"] .switch-row i:after{width:20px;height:20px}.app[data-design="android"] .switch-row input:checked+i:after{transform:translateX(18px)}
.admin-heading h2{display:flex;align-items:center;gap:8px}.admin-heading em{font-style:normal;font-size:8px;letter-spacing:0;padding:5px 7px;border-radius:99px;background:rgba(88,86,214,.12);color:#5856d6}.admin-policy-row{margin-top:11px;border-radius:18px!important;background:rgba(88,86,214,.08)}.admin-policy-row strong{color:#4e4cc0}.app[data-design="android"] .admin-heading em{background:rgba(103,80,164,.13);color:var(--accent)}.app[data-design="android"] .admin-policy-row{background:rgba(var(--accent-rgb),.1)}.settings-modal>p{font-size:10px;line-height:1.5;color:var(--muted)}.app[data-reduce-transparency="true"] .tabbar,.app[data-reduce-transparency="true"] .scrim,.app[data-reduce-transparency="true"] .busy-overlay{backdrop-filter:none;-webkit-backdrop-filter:none}.app[data-reduce-transparency="true"] .tabbar{background:var(--surface)}
.app[data-community="false"] .tabbar{grid-template-columns:repeat(3,1fr)}
.icon-button,.close-button{width:44px;height:44px}.open-week,.secondary-button{min-height:44px}.room-picker button{height:44px}.segmented{height:48px;padding:2px}.segmented button{min-height:44px}.identity-button,.text-button,.color-picker button{position:relative}.identity-button:before,.text-button:before,.color-picker button:before{content:"";position:absolute;inset:-8px -5px}.issue-card button{min-height:44px}.quiet-button{min-height:44px}
[hidden]{display:none!important}

/* Performance and continuity guardrails. Keep persistent lists cheap to paint
   and avoid promoting every tappable row to its own compositor layer. */
.tactile{transform:none}
.tactile:active,.tactile.is-pressed{transform:scale(.975)}
.library-week,.week-card,.person-row,.admin-card{content-visibility:auto;contain-intrinsic-size:1px 76px}
.community-orb,.loading-mark,.busy-spinner{contain:layout paint}
button[aria-disabled="true"]{pointer-events:none;opacity:.72}
.icon-button,.close-button,.text-button,.room-picker button,.open-week,.identity-button{min-height:44px}
.identity-button{height:44px;padding:0 12px}
.room-picker button{height:44px}
.open-week{height:44px}
.native-note,.list-row small,.admin-card small,.material-row small,.library-week header small,.status-label,.week-card small{font-size:10px}
.app[data-performance="balanced"]{--blur:12px}
.app[data-performance="lite"] .view.active,
.app[data-performance="lite"] .modal,
.app[data-performance="lite"] .community-orb,
.app[data-performance="lite"] .update-art{animation:none!important}
.app[data-performance="lite"] .community-orb:before,
.app[data-performance="lite"] .update-art:before{box-shadow:none}
.app[data-performance="lite"] .scrim{backdrop-filter:none;-webkit-backdrop-filter:none}
@media(prefers-color-scheme:dark){.busy-overlay{background:rgba(13,16,21,.9)}}
.busy-progress,.task-progress{height:5px;overflow:hidden;border-radius:99px;background:var(--surface-2)}
.busy-progress{width:min(280px,78vw);margin-top:18px}.busy-progress i,.task-progress i{display:block;width:0;height:100%;border-radius:inherit;background:var(--accent);transition:width .45s cubic-bezier(.2,.75,.25,1)}
.busy-count{min-height:14px}.guard-task-card{margin-top:11px;padding:15px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}
.guard-task-card strong,.guard-task-card small{display:block}.guard-task-card strong{font-size:12px;margin-top:5px;transition:opacity .28s,transform .28s}.guard-task-card strong.swap,.guard-task-card small.swap{opacity:0;transform:translateY(3px)}.guard-task-card small{font-size:9.5px;color:var(--muted);margin-top:5px;transition:opacity .28s,transform .28s}.guard-task-card .task-progress{margin-top:13px}.guard-task-card>#guardTaskCount{margin-top:7px}.field select{width:100%;height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text);padding:0 12px;font:inherit;font-size:11px}.guard-modal>[data-guard-setting="mode"]{grid-template-columns:repeat(2,1fr);margin:2px 0 16px}.app[data-design="android"] .busy-progress,.app[data-design="android"] .task-progress{height:4px}.app[data-design="android"] .guard-task-card{border-radius:24px;box-shadow:none;background:#f4eff7}
.app[data-design="ios"][data-performance="full"] .update-modal{background:rgba(244,245,247,.78);backdrop-filter:blur(28px) saturate(1.35);-webkit-backdrop-filter:blur(28px) saturate(1.35);border:1px solid rgba(255,255,255,.34)}
.app[data-design="android"] .update-modal{padding-top:31px}.app[data-design="android"] .update-modal:before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);width:32px;height:4px;border-radius:99px;background:rgba(18,22,28,.24)}.app[data-design="android"] .update-modal ul{background:#f4eff7;border-radius:24px}.app[data-design="android"] .update-modal li{padding-block:14px}.app[data-performance="lite"] .update-modal{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--bg)}
.file-field input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-picker{min-height:48px;border:1px solid var(--line);border-radius:13px;background:var(--surface);display:flex;align-items:center;gap:11px;padding:6px}.file-picker b{flex:0 0 auto;min-height:34px;border-radius:10px;background:rgba(var(--accent-rgb),.11);color:var(--accent);display:flex;align-items:center;padding:0 12px;font-size:10px}.file-picker small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.app[data-design="android"] .file-picker b{border-radius:99px}
