:root{--surface: #ffffff;--surface-soft: #f7faf7;--surface-muted: #eef3ef;--line: #dce5df;--line-strong: #b9c9bf;--text: #1e2428;--text-muted: #66746d;--brand: #243a32;--brand-soft: #e8f2ee;--brand-mid: #52675d;color:#1e2428;background:#f5f7f4;font-family:Inter,Segoe UI,Microsoft YaHei,PingFang SC,Noto Sans SC,system-ui,sans-serif;font-synthesis:none;font-size:16px;line-height:1.5}html,#root{min-height:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,textarea,select{font:inherit}svg{flex-shrink:0}button{border:0;cursor:pointer}button,input,textarea,select{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease,color .18s ease}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(15,118,110,.18);outline-offset:2px}h1,h2,p{margin:0}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e8f3eef5,#f4f7f4e0 46%,#eef4f7f5)}.auth-panel{width:min(920px,100%);display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:center;animation:page-enter .52s cubic-bezier(.16,1,.3,1) both}.auth-copy{display:grid;gap:14px}.brand-mark{width:54px;height:54px;display:grid;place-items:center;border:1px solid #cfe0d7;border-radius:8px;color:#0f5f59;background:#fffc;box-shadow:0 12px 28px #1c332b14}.auth-panel h1{font-size:42px;line-height:1.05}.sidebar h1{margin:0;font-size:24px;line-height:1.1}.sidebar h1,.icon-line,.section-title,.status-pill,.auth-badges span{display:inline-flex;align-items:center;gap:8px}.auth-form,.panel,.sidebar,.board{background:#fff;border:1px solid #dce3dc;border-radius:8px;box-shadow:0 18px 48px #1b272214}.auth-form{display:grid;gap:16px;padding:24px;animation:panel-enter .46s 80ms cubic-bezier(.16,1,.3,1) both}.biometric-lock-panel{width:min(760px,100%)}.biometric-unlock-card{align-content:start}.auth-badges{display:flex;flex-wrap:wrap;gap:8px}.auth-badges span{min-height:32px;padding:0 10px;border:1px solid #dce7df;border-radius:999px;color:#314039;background:#ffffffb8}.auth-form label,.inline-form{display:grid;gap:8px}input,textarea,select{width:100%;min-height:48px;border:1px solid #cdd8d0;border-radius:6px;padding:12px 13px;background:#fbfcfb;color:#1e2428}input:hover,input:focus,textarea:hover,textarea:focus,select:hover,select:focus{border-color:#8fb5a7;box-shadow:0 0 0 4px #0f766e14}textarea{min-height:108px;resize:vertical}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:#edf2ee;border-radius:8px}.tabs button,.session-list button,.module-nav button,.ghost{min-height:40px;border-radius:6px;color:#314039;background:transparent}.tabs button,.session-list button,.module-nav button,.ghost,.primary,.inline-form button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.tabs .active,.session-list .active,.module-nav .active{background:#243a32;color:#fff}.primary{min-height:48px;border-radius:6px;padding:0 18px;color:#fff;background:#0f766e}.primary:hover:not(:disabled){background:#0d6861;box-shadow:0 12px 28px #0f766e33}.mobile-back-button{display:none}.pressable:active{transform:translateY(1px) scale(.99)}.error{color:#b42318}.muted,.member p,.eyebrow{color:#66746d}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:0}.app-shell{height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);gap:10px;padding:calc(10px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom)) 10px;background:linear-gradient(135deg,#f5f7f4,#eef5f5 52%,#f7f4ed);animation:page-enter .42s cubic-bezier(.16,1,.3,1) both}.sidebar,.board{min-height:0;display:flex;flex-direction:column;gap:12px;padding:12px;overflow:auto;animation:panel-enter .42s cubic-bezier(.16,1,.3,1) both}.section-title{margin-bottom:10px;font-size:15px;font-weight:700;color:#54615b}.member-list,.session-list,.module-nav,.check-list,.compact-list{display:grid;gap:8px}.module-nav{gap:10px}.mobile-more-trigger,.mobile-more-overlay{display:none}.in-app-notifications{position:fixed;top:calc(16px + env(safe-area-inset-top));right:16px;z-index:80;width:min(360px,calc(100vw - 32px));display:grid;gap:8px}.in-app-notification{min-height:64px;display:grid;gap:4px;padding:12px 14px;border:1px solid #d6e4dd;border-radius:8px;color:#16221d;text-align:left;background:#fff;box-shadow:0 14px 32px #1c2f2829}.in-app-notification span{color:#5d6a63;font-size:14px;line-height:1.35}.module-nav-group{display:grid;gap:7px}.module-nav-group-title{padding:0 4px;font-size:13px;font-weight:800;color:#69766f}.module-nav button{position:relative;width:100%;min-height:38px;justify-content:flex-start;padding:0 9px;background:#f2f6f3}.unread-badge,.chat-unread-badge{min-width:18px;height:18px;display:inline-grid;place-items:center;padding:0 5px;border-radius:999px;color:#fff;background:#d92d20;font-size:11px;font-weight:800;line-height:1;box-shadow:0 0 0 2px #fff}.unread-badge{position:absolute;top:3px;right:5px}.chat-unread-badge{position:absolute;top:8px;right:8px}.member,.group-entry{position:relative;width:100%;display:grid;text-align:left;color:inherit}.member{grid-template-columns:10px 1fr;gap:8px;align-items:start;padding:8px 38px 8px 8px;border-radius:8px;background:#f7faf7}.group-entry{min-height:40px;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:0 38px 0 12px;border-radius:8px;background:#f2f6f3}.transfer-chat-entry{margin-bottom:6px}.chat-rail-error{margin:0 0 6px;padding:8px 10px;font-size:13px}.member.active,.group-entry.active{color:#fff;background:#243a32}.member.active p{color:#d8e4de}.member.needs-key:not(.active){color:#5f4b2a;background:#fff8eb}.member.needs-key:not(.active) p{color:#8a641f}.card-lift{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.card-lift:hover{transform:translateY(-2px);box-shadow:0 12px 24px #1b272214}.dot{width:10px;height:10px;margin-top:7px;border-radius:50%;background:#8a9490}.dot.online{background:#0f9f6e;box-shadow:0 0 0 5px #0f9f6e1f;animation:pulse-dot 1.9s ease-in-out infinite}.dot.busy{background:#d97706}.session-list button{width:100%;text-align:left;padding:0 12px;justify-content:flex-start;background:#f2f6f3}.session-list button:hover:not(.active),.group-entry:hover:not(.active),.module-nav button:hover:not(.active),.ghost:hover{background:#e7eee9}.ghost{margin-top:0;background:#eef2ef}.sidebar>.ghost{margin-top:auto}.conversation-builder{display:grid;gap:8px;margin-top:10px}.compact-action{width:100%}.compact-note{font-size:12px}.conversation-builder .ghost{margin-top:0}.chat-app{min-height:0;flex:1;display:flex;flex-direction:column;gap:8px}.chat-main-header .compact-action{display:none}.chat-shell{min-height:0;flex:1;display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid #dce5df;border-radius:8px;background:#f7faf7;animation:panel-enter .46s 60ms cubic-bezier(.16,1,.3,1) both}.chat-rail{min-height:0;display:flex;flex-direction:column;gap:8px;padding:10px;border-right:1px solid #e2e8e2;overflow:auto;background:#fff}.chat-panel{min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-panel .message-list{order:10}.chat-panel .pending-attachments{order:20;flex:0 0 auto;max-height:64px;overflow:auto;background:#fff}.chat-panel .chat-composer{order:30;flex:0 0 auto;background:#fff}.transfer-app{min-height:0;flex:1;display:flex;flex-direction:column;gap:14px}.transfer-shell{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden;border:1px solid #dce5df;border-radius:8px;background:#f7faf7}.transfer-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-bottom:1px solid #dce5df;background:#fff}.transfer-intro div{display:grid;gap:3px}.transfer-intro span,.transfer-empty span{color:#66746d}.transfer-message-list{min-height:0;flex:1;background:#f5f7f4}.transfer-support,.transfer-selected-files,.transfer-status,.transfer-composer{flex:0 0 auto}.transfer-support{padding:0 14px}.transfer-status{order:20}.transfer-selected-files{order:30;max-height:92px;overflow:auto}.transfer-composer{order:40;background:#fff}.transfer-item{display:flex;justify-content:flex-end}.transfer-item-main{width:min(720px,100%);display:grid;gap:8px;padding:12px;border:1px solid #d7e2da;border-radius:8px;background:#fff;box-shadow:0 10px 22px #1b27220f;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.transfer-item-main time{color:#66746d;font-size:12px}.transfer-item-main p{white-space:pre-wrap;word-break:break-word}.transfer-empty{min-height:280px;display:grid;place-items:center;align-content:center;gap:8px;color:#53635b;text-align:center}.workspace{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:14px;background:#fff;border:1px solid #dce3dc;border-radius:8px;box-shadow:0 18px 48px #1b272214;animation:panel-enter .46s 60ms cubic-bezier(.16,1,.3,1) both}.workspace-chatlike{overflow:hidden;gap:8px;padding:10px}.workspace-chatlike .workspace-header{align-items:center;padding-bottom:8px}.workspace-chatlike .workspace-header h2{margin:0;font-size:24px}.workspace-chatlike .workspace-header p{display:none}.workspace-header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #e2e8e2}.workspace-header h2{margin:2px 0 4px;font-size:28px;line-height:1.15}.board-workspace-header{align-items:center}.board-header-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.board-type-button{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 13px;border:1px solid #cfe0d7;border-radius:6px;color:#314039;background:#f7faf7}.board-type-button:hover,.board-type-button.active{color:#fff;background:#52675d}.stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.stat-strip div{min-height:74px;display:grid;align-content:center;gap:4px;padding:12px;border:1px solid #dce5df;border-radius:8px;background:#f7faf7;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.stat-strip strong{font-size:26px;line-height:1;color:#17483f}.stat-strip span{color:#66746d;font-size:13px}.module-band{display:grid;gap:12px;padding:16px;border:1px solid #dce5df;border-radius:8px;background:#fbfcfb}.module-actions{display:flex;flex-wrap:wrap;gap:8px}.schedule-workspace{display:grid;gap:14px}.schedule-workspace .module-band{grid-template-columns:minmax(0,1fr) auto;align-items:center}.schedule-workspace .module-band h2{display:inline-flex;align-items:center;gap:8px;font-size:24px;line-height:1.2}.schedule-workspace .module-actions{justify-content:flex-end}.schedule-workspace .module-actions .primary,.schedule-workspace .module-actions .ghost{width:auto;min-width:112px;padding:0 16px}.schedule-pill{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 13px;border-radius:999px;color:#0f5f59;background:#e2f5ef;font-weight:800}.schedule-tabs{width:fit-content;display:inline-grid;grid-template-columns:repeat(4,auto);gap:4px;padding:4px;border:1px solid #dce5df;border-radius:8px;background:#eef3ef}.schedule-tabs .tab{min-height:40px;padding:0 16px;border-radius:6px;color:#40534a;background:transparent;font-weight:800}.schedule-tabs .tab.active{color:#fff;background:#243a32}.schedule-list{display:grid;gap:10px}.schedule-empty{min-height:260px;display:grid;place-items:center;align-content:center;gap:8px;padding:24px;border:1px dashed #bdcbc2;border-radius:8px;color:#52675d;background:#f9fbf9;text-align:center}.schedule-empty strong{color:#243a32;font-size:20px}.schedule-empty span{max-width:360px;color:#66746d}.schedule-card{padding:14px;border:1px solid #dce5df;border-radius:8px;background:#fff;box-shadow:0 8px 18px #1b27220a;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.schedule-card.done{background:#f3f5f2}.schedule-card.done .schedule-info strong{color:#7a8a82;text-decoration:line-through}.schedule-card-main{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center}.toggle-done{width:34px;height:34px;display:grid;place-items:center;border:1px solid #b9c9bf;border-radius:999px;color:#13795b;background:#fff}.schedule-info{min-width:0;display:grid;gap:5px}.schedule-info strong{overflow-wrap:anywhere;color:#243a32;font-size:18px}.schedule-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;color:#66746d;font-size:13px}.schedule-actions{display:flex;gap:8px;align-items:center}.schedule-actions .ghost{min-height:36px;padding:0 10px;white-space:nowrap}.schedule-calendar{display:grid;gap:12px;padding:12px;border:1px solid #dce5df;border-radius:8px;background:#fff}.schedule-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-calendar-toolbar strong{color:#243a32;font-size:22px}.schedule-calendar-toolbar div{display:flex;gap:8px}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid #e1e9e3;border-radius:8px}.schedule-weekday{min-height:42px;display:grid;place-items:center;color:#40534a;background:#eef3ef;font-weight:800}.schedule-day{min-height:126px;display:grid;align-content:start;gap:8px;padding:9px;border-top:1px solid #e1e9e3;border-right:1px solid #e1e9e3;background:#fff}.schedule-day:nth-child(7n+7){border-right:0}.schedule-day.muted-month{background:#f7faf7}.schedule-day.today{background:#ecf8f4}.schedule-day-number{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;color:#243a32;font-weight:800}.schedule-day.today .schedule-day-number{color:#fff;background:#0f766e}.schedule-day-events{min-width:0;display:grid;gap:5px}.schedule-day-events button{min-width:0;min-height:28px;justify-content:flex-start;padding:4px 7px;border-radius:6px;color:#243a32;background:#e8f2ee;font-size:12px;line-height:1.35;text-align:left;overflow-wrap:anywhere}.schedule-day-events button span{margin-right:5px;color:#0f766e;font-weight:800}.schedule-day-events small{color:#66746d}.module-band-title{display:inline-flex;align-items:center;gap:8px}.record-form,.record-list,.business-form,.form-grid-2,.form-grid-3,.summary-grid,.board-focus-grid,.board-manage-grid{display:grid;gap:10px}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3,.summary-grid,.board-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.board-manage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.field-label{display:grid;gap:6px;color:#40534a;font-weight:700}.record-form-row{display:grid;grid-template-columns:minmax(180px,1fr) 170px 132px auto;align-items:end;gap:10px}.record-card{display:flex;justify-content:space-between;gap:16px;padding:14px;border:1px solid #dce5df;border-radius:8px;background:#f7faf7;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.record-card strong,.record-card p,.record-card span,.record-card time{overflow-wrap:anywhere}.record-card p{margin-top:6px;color:#52675d}.record-card span,.record-card time{display:block;margin-top:6px;color:#66746d;font-size:13px}.summary-grid div,.board-focus-card{min-height:110px;display:grid;gap:10px;align-content:start;padding:16px;border:2px solid #dce5df;border-radius:12px;background:#f7faf7;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.board-focus-todo,.board-focus-event,.board-focus-alert{border-color:var(--line);background:var(--surface)}.board-focus-card .module-band-title svg{color:var(--brand-mid)}.board-focus-card .module-band-title{font-size:18px;gap:8px}.board-focus-card .module-band-title strong{font-size:18px}.board-focus-card p{font-size:16px;color:var(--text);overflow-wrap:anywhere;line-height:1.5}.board-focus-card .empty{color:#66746d;font-size:15px}.summary-grid strong{font-size:24px;line-height:1;color:#17483f}.summary-grid span{color:#66746d}.today-calendar-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:10px}.today-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.today-card-head .ghost{min-height:36px;padding:0 10px;white-space:nowrap}.mini-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid #e1e9e3;border-radius:8px;background:#fff}.mini-weekday{min-height:34px;display:grid;place-items:center;color:#40534a;background:#eef3ef;font-size:13px;font-weight:800}.mini-day{min-height:72px;position:relative;display:grid;align-content:start;padding:8px;border-top:1px solid #e1e9e3;border-right:1px solid #e1e9e3;background:#fff}.mini-day:nth-child(7n+7){border-right:0}.mini-day.outside{color:#9aa59f;background:#f7faf7}.mini-day.today{background:var(--brand-soft);border:2px solid var(--brand-mid)}.mini-day span{width:30px;height:30px;display:grid;place-items:center;border-radius:999px;font-weight:800;font-size:15px}.mini-day.today span{color:#fff;background:var(--brand-mid)}.mini-day i{position:absolute;right:6px;bottom:6px;min-width:28px;height:28px;display:grid;place-items:center;border-radius:999px;color:#fff;background:var(--brand-mid);font-size:14px;font-style:normal;font-weight:800}.mini-day.has-event{background:var(--surface-muted)}.today-agenda-card p{display:flex;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid #e8eee9;font-size:16px;color:var(--text);line-height:1.5}.today-agenda-card p span{color:var(--brand-mid);font-weight:700;font-size:15px;white-space:nowrap}.today-agenda-card .empty{color:#66746d;font-size:15px}.today-agenda-card p:last-child{border-bottom:0}.today-agenda-card p span{flex:0 0 auto;color:#0f5f59;font-weight:800}.board-focus-item{display:flex;gap:8px;align-items:baseline}.board-focus-item span{color:#40534a;font-weight:800}.family-location-panel{display:grid;gap:14px}.location-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.location-layout{display:grid;grid-template-columns:minmax(360px,1.3fr) minmax(280px,.7fr);gap:12px}.masked-map{min-height:360px;position:relative;overflow:hidden;border:1px solid #dce5df;border-radius:8px;background:#eef3ef;box-shadow:inset 0 0 0 999px #ffffff14}.masked-map:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#f7faf740,#f7faf78c),radial-gradient(circle at center,transparent 0 28%,rgba(255,255,255,.42) 78%)}.masked-map-tiles{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);filter:saturate(.62) contrast(.92) blur(.45px)}.masked-map-tiles img{position:absolute;width:256px;height:256px}.person-marker,.place-marker{position:absolute;z-index:2;transform:translate(-50%,-100%);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border-radius:999px;box-shadow:0 12px 24px #1b27222e}.person-marker{min-width:42px;min-height:42px;padding:6px 10px 6px 6px;color:#fff;background:#17483f;font-weight:900}.person-marker.me{background:#0f7f75}.person-marker>strong{font-size:13px}.place-marker{padding:6px 10px;color:#17483f;background:#ffffffeb;border:1px solid #cbd9d0;font-size:13px;font-weight:800}.map-empty{position:absolute;inset:0;z-index:3;display:grid;place-items:center;color:#66746d;font-weight:800}.map-attribution{position:absolute;right:8px;bottom:8px;z-index:4;padding:3px 6px;border-radius:4px;color:#40534a;background:#ffffffe0;font-size:11px;text-decoration:none}.location-side{display:grid;gap:12px;align-content:start}.location-member-list,.location-event-list,.location-chip-list{display:grid;gap:8px}.location-person{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #dce5df;border-radius:8px;background:#fff}.location-person.me{border-color:#0f7f75;background:#eefaf7}.location-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#17483f;font-weight:900}.location-person p,.location-event-list p{color:#66746d;font-size:13px}.location-place-form{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:8px}.location-place-form button{grid-column:1 / -1;min-height:42px}.location-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.location-chip{min-height:34px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid #dce5df;border-radius:999px;color:#40534a;background:#f7faf7;font-weight:800}.location-event-list p{display:flex;gap:4px;align-items:baseline;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #e8eee9}.location-event-list p span{margin-left:auto}.board-table-panel{min-width:0}.board-create-panel{display:grid;gap:12px}.board-section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.board-section-head .ghost{min-height:36px;padding:0 10px;white-space:nowrap}.board-add-form{display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px 96px;align-items:end;gap:10px;margin-bottom:12px}.calendar-add-form{grid-template-columns:minmax(220px,1fr) 170px 150px 150px 96px}.board-add-form button,.board-edit-row button{min-height:48px;border-radius:6px;background:#52675d;color:#fff}.board-add-form button:hover:not(:disabled),.board-edit-row button:hover:not(:disabled){background:#40534a}.board-add-form button:disabled,.board-edit-row button:disabled{opacity:.55}.board-table{display:grid;gap:8px}.board-row{min-height:58px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #e3ebe5;border-radius:8px;background:#f7faf7;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.board-row.done{background:#f3f5f2}.board-row.done .board-row-main strong{color:#7a8a82;text-decoration:line-through}.board-check{width:30px;height:30px;display:grid;place-items:center;border:1px solid #b9c9bf;border-radius:999px;color:#fff;background:#fff}.board-check.checked{border-color:#13795b;background:#13795b}.board-row-main{min-width:0;display:grid;gap:3px}.board-row-main strong,.board-row-main span{overflow-wrap:anywhere}.board-row-main span{color:#66746d;font-size:13px}.board-date-text{font-weight:800;color:#314039}.board-meta-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.board-row-main .board-meta-row span{display:inline-flex;width:auto;min-height:24px;align-items:center;padding:2px 8px;border:1px solid #d8e5dc;border-radius:999px;color:#40534a;background:#eef5f0;font-size:12px}.board-row-actions{display:flex;gap:6px;align-items:center}.board-row-actions .ghost,.board-edit-row .ghost{min-height:34px;padding:0 9px}.ghost.danger{color:#8a271f;background:#fff2f0}.ghost.danger:hover:not(:disabled){background:#f9d8d3}.calendar-row{grid-template-columns:34px minmax(0,1fr) auto}.board-completed-list{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e3ebe5}.board-subtitle{color:#40534a;font-size:14px;font-weight:800}.board-edit-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px auto auto;gap:8px;align-items:end}.calendar-edit-row{grid-template-columns:minmax(220px,1fr) 170px 150px 150px auto auto}.board-empty{padding:14px;border:1px dashed #bdcbc2;border-radius:8px;color:#66746d;background:#fbfcfb;text-align:center}.meta-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.meta-row span{margin-top:0;padding:4px 8px;border-radius:999px;color:#40534a;background:#edf3ef}.record-actions{display:flex;gap:8px;align-items:flex-start}.record-actions .ghost{min-width:64px;margin-top:0}.empty-workbench{min-height:260px;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;border:1px dashed #bdcbc2;border-radius:8px;color:#52675d;background:#f9fbf9;text-align:center}.empty-workbench h3{margin:0;color:#243a32}.empty-workbench p{max-width:520px;color:#66746d}.butler-chat-app{min-height:0;flex:1;display:flex;flex-direction:column;gap:8px}.butler-main-header .compact-action,.workspace-chatlike .butler-main-header p{display:none}.butler-chat-shell{min-height:0;flex:1;display:grid;grid-template-columns:210px minmax(0,1fr);overflow:hidden;border:1px solid #dce5df;border-radius:8px;background:#f7faf7}.butler-history{min-height:0;display:flex;flex-direction:column;gap:6px;padding:10px;border-right:1px solid #dce5df;background:#fbfcfb;overflow:auto}.butler-new-thread{width:100%;min-height:38px}.butler-history>.section-title+.butler-thread-button{display:none}.butler-thread-row{display:flex;align-items:center;gap:6px}.butler-thread-button{flex:1;min-width:0;display:grid;gap:2px;padding:8px;border-radius:8px;color:#314039;text-align:left;background:#f2f6f3}.butler-thread-delete{flex-shrink:0;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:#8a271f;background:#fff2f0}.butler-thread-delete:hover:not(:disabled){background:#f9d8d3}.butler-thread-button.active{color:#fff;background:#243a32}.butler-thread-button small{color:#66746d}.butler-thread-button.active small{color:#d8e4de}.butler-conversation{min-height:0;display:flex;flex-direction:column;background:#f3f5f2}.butler-conversation-title{min-height:42px;display:flex;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid #dce5df;background:#fff}.butler-message-list{min-height:0;flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:12px}.butler-turn{display:grid;gap:8px}.butler-message-list .message-stack{max-width:min(76%,780px)}.butler-message-list .message-bubble{padding:8px 11px}.butler-message-list .message-bubble p{white-space:pre-wrap;word-break:break-word;line-height:1.62}.assistant-bubble{background:#fff}.markdown-message{display:grid;gap:8px}.markdown-message p{margin:0}.markdown-message strong{font-weight:800}.markdown-message code{padding:2px 5px;border-radius:5px;background:#edf3ef;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92em}.markdown-list{margin:0;padding-left:22px;line-height:1.75}.butler-action-stack{display:grid;gap:8px;margin-top:8px}.butler-action-center{display:grid;gap:8px;max-height:26vh;padding:8px 10px;border-bottom:1px solid #dce5df;background:#fff;overflow:auto}.butler-action-center-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.butler-action-center-head p{margin:1px 0 0;color:#66746d;font-size:13px}.butler-action-center-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.butler-action-grid{display:grid;gap:6px}.butler-action-card{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid #cddbd3;border-radius:8px;background:#fff;box-shadow:0 8px 18px #1b27220f}.butler-action-card.accepted{background:#eef8f1;border-color:#b8dac2}.butler-action-card.dismissed{background:#f7f8f6;border-color:#d9dfdb}.butler-action-card.failed{background:#fff6f4;border-color:#efc7bf}.butler-action-card.undone{background:#f7f8f6;border-color:#d9dfdb}.butler-action-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:#0f766e;background:#e2f5ef}.butler-action-body{min-width:0;display:grid;gap:3px}.butler-action-body strong,.butler-action-body span,.butler-action-body small{overflow-wrap:anywhere}.butler-action-body small{color:#69766f}.butler-preview-box{display:grid;gap:3px;padding:6px 8px;border-radius:8px;color:#3c4b43;background:#f5f8f6;font-size:13px;line-height:1.55}.butler-preview-box strong{color:#9b3b2f;font-size:13px}.butler-impact-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}.butler-impact-list span,.butler-action-chip{max-width:100%;padding:4px 8px;border-radius:999px;color:#43534a;background:#edf3ef;font-size:12px;overflow-wrap:anywhere}.butler-action-buttons{display:flex;gap:6px;align-items:center}.butler-action-buttons button{min-height:30px;padding:0 8px;white-space:nowrap}.butler-action-summary{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.butler-action-chip.accepted{color:#15542d;background:#e5f5e8}.butler-action-chip.dismissed{color:#69766f;background:#eef1ee}.butler-action-chip.failed{color:#8a271f;background:#fff0ed}.butler-execution-log{display:grid;gap:6px;padding-top:2px}.butler-result-line{display:flex;align-items:center;gap:7px;color:#4c5d54;font-size:13px}.butler-result-line span{flex:1}.butler-result-line button{min-height:28px;padding:0 8px;font-size:12px}.butler-result-line.accepted svg{color:#138a43}.butler-result-line.dismissed svg,.butler-result-line.undone svg,.butler-result-line.failed svg{color:#9b3b2f}.butler-error-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid #efd0c8;color:#7d2a21;background:#fff7f5}.butler-error-bar span{flex:1}.chat-composer{border-top:1px solid #dce5df;background:#fff}.butler-thread{min-height:360px;display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #dce5df;border-radius:8px;background:#f7faf7;overflow:auto}.butler-card{width:min(82%,620px);display:grid;gap:10px;align-self:flex-end;padding:12px 14px;border-radius:8px;color:#fff;background:#176b5e;box-shadow:0 10px 22px #1b272214;animation:message-enter .26s cubic-bezier(.16,1,.3,1) both}.butler-card.assistant{grid-template-columns:auto 1fr;align-self:flex-start;color:#243a32;background:#fff}.butler-card .record-actions{justify-content:flex-end}.butler-card .ghost{background:#ffffff24;color:inherit}.butler-card.assistant .ghost{background:#eef2ef}.butler-composer{display:grid;grid-template-columns:1fr auto;gap:6px}.caution-band{border-color:#ead2a1;background:#fff9eb}.admin-band{background:#f7faf7}.admin-member-list{display:grid;gap:8px}.admin-create-form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.4fr) minmax(150px,1fr) 140px auto;gap:10px;align-items:end}.admin-create-form .primary{min-height:48px;white-space:nowrap}.admin-notice{padding:9px 10px;border:1px solid #d6e6dc;border-radius:8px;color:#15542d;background:#eef8f1}.admin-member-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid #dce5df;border-radius:8px;background:#fff}.admin-member-actions{display:flex;gap:8px;align-items:center}.admin-member-actions .ghost{min-height:38px;padding:0 10px;white-space:nowrap}.admin-recovery-list{display:grid;gap:10px}.chat-conversation-title{min-height:42px;display:flex;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid #dce5df;background:#fff;justify-content:space-between}.chat-conversation-title .icon-line{display:inline-flex;align-items:center;gap:6px;color:#243a32}.chat-conversation-title .status-pill{padding:4px 8px;border-radius:999px;color:#0f5f59;background:#e2f5ef;white-space:nowrap}.chat-filter-bar{flex:0 0 auto;display:grid;grid-template-columns:minmax(160px,1fr) 138px auto;gap:6px;align-items:center;padding:6px 8px;border-bottom:1px solid #dce5df;background:#fff}.chat-search{min-width:0;height:36px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #d7e2da;border-radius:8px;background:#f8fbf8;color:#53635b}.chat-search input{min-width:0;flex:1;border:0;outline:0;background:transparent}.chat-date-filter{min-height:36px;height:36px;min-width:0;padding:6px 8px}.chat-filter-bar .ghost.active{color:#fff;background:#176b5e}.chat-file-drawer{flex:0 0 auto;max-height:190px;display:grid;gap:6px;padding:8px;border-bottom:1px solid #dce5df;background:#f8fbf8;overflow:auto}.chat-file-drawer-head{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#243a32}.chat-file-drawer-head span{color:#66746d;font-size:12px}.chat-file-list{display:grid;gap:6px}.chat-file-row{width:100%;min-height:46px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border:1px solid #d7e2da;border-radius:8px;color:#243a32;background:#fff;text-align:left}.chat-file-row>span{min-width:0;display:grid;gap:2px}.chat-file-row strong,.chat-file-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-file-row small{color:#66746d;font-size:12px;font-weight:500}.chat-empty-state{min-height:220px;display:grid;place-items:center;align-content:center;gap:8px;color:#66746d;text-align:center}.chat-empty-state strong{color:#243a32}.message-list{min-height:0;flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:12px;background:#f3f5f2}.message-row{width:100%;display:flex;gap:10px;align-items:flex-start;animation:message-enter .26s cubic-bezier(.16,1,.3,1) both}.message-row.mine{justify-content:flex-end}.message-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;color:#fff;background:#7a8a82;font-weight:700}.mine-avatar{background:#176b5e}.message-stack{max-width:min(62%,520px);display:grid;gap:4px}.message-row.mine .message-stack{justify-items:end}.message-time{display:block;font-size:12px;color:#8a9690}.message-bubble{position:relative;padding:8px 11px;border-radius:6px;color:#1e2428;background:#fff;box-shadow:0 6px 16px #1b27220f}.message-row.mine .message-bubble{color:#10251f;background:#95ec69}.message-bubble p{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.62}.message-bubble:before{content:"";position:absolute;top:13px;left:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:6px solid #ffffff}.message-row.mine .message-bubble:before{right:-5px;left:auto;border-right:0;border-left:6px solid #95ec69}.composer{display:flex;gap:6px;padding:8px;border-top:1px solid #e2e8e2;align-items:center}.composer>input:not([type=file]){flex:1;min-width:0;min-height:40px;padding:8px 10px}.chat-filter-bar .compact-action{width:auto;min-height:36px;padding:0 10px;white-space:nowrap}.modal-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:#0e18145c}.modal-card{width:min(640px,100%);max-height:min(760px,calc(100dvh - 40px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #dce5df;border-radius:8px;background:#fff;box-shadow:0 18px 46px #1827202e}.modal-header,.modal-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid #e5ece7}.modal-footer{justify-content:flex-end;border-top:1px solid #e5ece7;border-bottom:0}.modal-body{display:grid;gap:10px;padding:16px;overflow:auto}.inline-error{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid #e0b4b4;border-radius:8px;color:#7b2020;background:#fff3f3}.device-list{display:grid;gap:8px}.device-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid #dce5df;border-radius:8px;background:#fff}.device-row span{color:#6a756f;font-size:13px;white-space:nowrap}.device-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.device-row-actions .ghost{min-height:34px;padding:0 10px}.board{overflow:auto;animation-delay:.1s}.panel{padding:14px;animation:item-enter .36s cubic-bezier(.16,1,.3,1) both}.inline-form{grid-template-columns:1fr auto;align-items:end;margin-bottom:10px}.mini-field{display:grid;gap:6px;color:#40534a;font-size:13px;font-weight:700}.panel .inline-form:has(input[type=date]){grid-template-columns:1fr 150px 86px;align-items:end}.inline-form input[type=date]{min-width:150px}.inline-form button{min-width:86px;min-height:48px;height:48px;border-radius:6px;color:#fff;background:#52675d}.inline-form button:hover{background:#40534a}.check-list label,.compact-list div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 10px;border-radius:6px;background:#f7faf7;animation:item-enter .26s cubic-bezier(.16,1,.3,1) both}.check-list input{width:16px}.check-list label{justify-content:flex-start}.check-list span{flex:1}.member-list>*,.session-list>*,.check-list>*,.compact-list>*{animation:item-enter .3s cubic-bezier(.16,1,.3,1) both}.member-list>*:nth-child(2),.session-list>*:nth-child(2),.check-list>*:nth-child(2),.compact-list>*:nth-child(2){animation-delay:45ms}.member-list>*:nth-child(3),.session-list>*:nth-child(3),.check-list>*:nth-child(3),.compact-list>*:nth-child(3){animation-delay:90ms}.banner-error{margin:12px 20px 0;padding:10px 12px;border:1px solid #f3b7ad;border-radius:8px;color:#9f2417;background:#fff2f0}.workspace-error{margin:0}.banner-warning{margin:12px 20px 0;padding:10px 12px;border:1px solid #ead2a1;border-radius:8px;color:#7a4a07;background:#fff9eb}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-enter{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes item-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes message-enter{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 5px #0f9f6e1f}50%{box-shadow:0 0 0 8px #0f9f6e0d}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}@media(max-width:1100px){.app-shell{height:auto;grid-template-columns:240px 1fr}.board{grid-column:1 / -1}.chat-shell{grid-template-columns:220px minmax(0,1fr)}.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.board-manage-grid,.location-layout{grid-template-columns:1fr}}@media(max-width:760px){:root,body{background:#fff}html,body,#root{width:100%;height:var(--app-viewport-height, 100dvh);min-height:var(--app-viewport-height, 100dvh);overflow:hidden}body{position:fixed;inset:0}.auth-panel,.app-shell{grid-template-columns:1fr}.auth-shell{min-height:100dvh;display:block;padding:calc(env(safe-area-inset-top) + 18px) 12px 18px;background:#fff}.auth-panel{gap:14px;align-items:start}.auth-form{padding:18px}.app-shell{height:var(--app-viewport-height, 100dvh);min-height:var(--app-viewport-height, 100dvh);display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 0;gap:0;background:#fff;overflow:hidden}.in-app-notifications{top:calc(10px + env(safe-area-inset-top));right:10px;left:10px;width:auto}.auth-panel h1{font-size:30px;line-height:1.08}.auth-copy{gap:10px}.auth-copy p,.auth-badges{display:none}.brand-mark{width:48px;height:48px}.sidebar h1{font-size:22px}.sidebar,.board{gap:12px;padding:12px;overflow:visible}.sidebar{order:2;flex:0 0 auto;height:calc(72px + env(safe-area-inset-bottom));display:block;padding:6px 6px calc(6px + env(safe-area-inset-bottom));overflow:visible;border-right:0;border-bottom:0;border-left:0;border-radius:0;box-shadow:0 -8px 24px #1b272214}.keyboard-open .sidebar{display:none}.sidebar>div,.sidebar>.ghost{display:none}.sidebar section{min-width:100%;width:100%}.module-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow:visible}.module-nav.no-mobile-more{grid-template-columns:repeat(4,minmax(0,1fr))}.module-nav-group{display:contents;gap:0;grid-template-columns:none}.module-nav-group-title{display:none}.module-nav button{min-width:0;min-height:56px;flex-direction:column;justify-content:center;padding:0 4px;font-size:11px;text-align:center}.module-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-nav button .unread-badge{max-width:none;overflow:visible}.module-nav .mobile-secondary-tab{display:none}.module-nav button[data-module-id=overview]{order:1}.module-nav button[data-module-id=chat]{order:2}.module-nav button[data-module-id=board]{order:3}.module-nav button[data-module-id=butler]{order:4}.mobile-more-trigger{display:inline-flex;order:5}.mobile-more-overlay{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;padding:0 10px calc(10px + env(safe-area-inset-bottom));background:#0f181447}.mobile-more-sheet{width:100%;max-height:min(70dvh,540px);display:grid;gap:12px;padding:12px;overflow:auto;border:1px solid #dce5df;border-radius:16px 16px 8px 8px;background:#fff;box-shadow:0 -18px 42px #1b27222e}.mobile-more-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-more-group{display:grid;gap:8px}.mobile-more-group>span{color:#69766f;font-size:13px;font-weight:800}.mobile-more-group>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-more-group button{min-height:56px;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 12px;border-radius:8px;color:#314039;background:#f2f6f3}.mobile-more-group button.active{color:#fff;background:#243a32}.mobile-more-logout{min-height:52px;justify-content:center;gap:8px;border:1px solid #efd0c8;color:#8a3428;background:#fff7f5}.sidebar>.ghost{margin-top:0;min-height:44px}.workspace,.board{order:1;flex:1;min-height:0;border-radius:8px}.workspace{padding:0;overflow:auto;border:0;border-radius:0;box-shadow:none}.workspace:not(.workspace-chatlike){padding:12px;background:#f6f8f6}.workspace:not(.workspace-chatlike) .workspace-header{padding:6px 2px 10px}.workspace:not(.workspace-chatlike) .board-focus-card,.workspace:not(.workspace-chatlike) .module-band,.workspace:not(.workspace-chatlike) .schedule-card,.workspace:not(.workspace-chatlike) .schedule-calendar{border-radius:8px}.workspace-chatlike{overflow:hidden}.chat-app,.transfer-app,.butler-chat-app{height:100%;gap:0}.message-stack{max-width:calc(100% - 52px)}.chat-shell{grid-template-columns:1fr;display:flex;flex:1;min-height:0;border:0;border-radius:0}.chat-app.chat-detail-mode .chat-main-header{display:none}.chat-app.chat-list-mode .chat-rail{flex:1;max-height:none;border-bottom:0}.chat-app.chat-list-mode .chat-panel,.chat-shell.picker-hidden .chat-rail{display:none}.chat-rail{max-height:42dvh;padding:12px;border-right:0;border-bottom:1px solid #e2e8e2;overflow:auto}.chat-rail .member-list{grid-template-columns:repeat(2,minmax(0,1fr))}.member{min-height:58px}.chat-panel{flex:1;height:100%;min-height:0}.chat-conversation-title,.workspace-header{align-items:flex-start;flex-direction:column;padding:10px 12px;gap:8px}.chat-app.chat-detail-mode .chat-conversation-title{min-height:48px;align-items:center;flex-direction:row;padding:0 10px}.chat-app.chat-detail-mode .chat-conversation-title .icon-line{flex:1;min-width:0}.chat-app.chat-detail-mode .chat-conversation-title .status-pill{display:none}.mobile-back-button{display:inline-flex;flex-shrink:0;min-height:36px;padding:0 8px}.chat-main-header{flex:0 0 auto}.chat-main-header .compact-action{display:inline-flex}.chat-main-header p,.transfer-header p,.transfer-intro{display:none}.transfer-shell{flex:1;border:0;border-radius:0}.board-header-actions,.board-type-button{width:100%}.board-header-actions{justify-content:stretch}.board-type-button{justify-content:center}.board-section-head{flex-direction:column}.location-actions,.location-actions .ghost,.location-actions .primary{width:100%}.location-actions .ghost,.location-actions .primary{justify-content:center}.masked-map{min-height:300px}.location-bottom-grid,.location-place-form{grid-template-columns:1fr}.chat-conversation-title strong,.workspace-header h2{font-size:20px}.chat-filter-bar{grid-template-columns:1fr auto;padding:8px}.chat-search{grid-column:1 / -1;height:40px}.chat-date-filter{height:40px}.chat-file-drawer{max-height:170px;padding:8px}.chat-file-row{min-height:48px;grid-template-columns:24px minmax(0,1fr) auto;padding:8px}.message-list{flex:1;min-height:0;padding:12px}.message-avatar{width:34px;height:34px}.composer{flex-direction:row;align-items:stretch;gap:6px;padding:8px}.keyboard-open .composer{padding-bottom:8px}.composer button{width:auto}.composer .ghost{width:44px;min-width:44px;padding:0}.composer .primary{min-width:72px;padding:0 12px;white-space:nowrap}.transfer-support{margin:0;padding:7px 10px;font-size:12px;background:#fff}.transfer-selected-files{max-height:70px;margin:0;overflow:auto;border-right:0;border-left:0;border-radius:0}.transfer-status{padding:4px 10px}.modal-overlay{align-items:end;padding:10px}.modal-card{max-height:calc(100dvh - 20px)}.modal-footer,.device-row{flex-direction:column;align-items:stretch}.device-row-actions{justify-content:flex-start}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-workspace .module-band{grid-template-columns:1fr}.schedule-workspace .module-actions,.schedule-workspace .module-actions .primary,.schedule-workspace .module-actions .ghost,.schedule-pill{width:100%}.schedule-workspace .module-actions .primary,.schedule-workspace .module-actions .ghost,.schedule-pill{justify-content:center}.schedule-tabs{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-tabs .tab{padding:0 8px}.schedule-card-main{grid-template-columns:34px minmax(0,1fr);align-items:start}.schedule-actions{grid-column:1 / -1;justify-content:stretch}.schedule-actions .ghost{flex:1}.schedule-calendar{padding:8px}.schedule-calendar-toolbar{align-items:stretch;flex-direction:column}.schedule-calendar-toolbar div{display:grid;grid-template-columns:1fr 1fr}.schedule-calendar-toolbar .ghost{min-height:42px}.schedule-weekday{min-height:34px;font-size:13px}.schedule-day{min-height:92px;padding:5px;gap:5px}.schedule-day-number{width:24px;height:24px;font-size:13px}.schedule-day-events button{min-height:24px;padding:3px 5px;font-size:11px}.panel .inline-form:has(input[type=date]){grid-template-columns:1fr}.board-add-form,.calendar-add-form,.board-edit-row,.calendar-edit-row{grid-template-columns:1fr}.board-row,.calendar-row{grid-template-columns:34px minmax(0,1fr);align-items:start}.board-row-actions{grid-column:1 / -1;justify-content:stretch}.board-row-actions .ghost,.board-edit-row .ghost{flex:1}.inline-form,.record-form-row,.record-card,.record-actions,.admin-create-form,.form-grid-2,.form-grid-3,.summary-grid,.today-calendar-grid,.board-focus-grid,.board-manage-grid,.butler-composer{grid-template-columns:1fr}.mini-day{min-height:48px;padding:5px}.mini-day span{width:23px;height:23px;font-size:13px}.mini-day i{right:4px;bottom:4px;min-width:18px;height:18px;font-size:10px}.record-card,.record-actions,.admin-member-row,.admin-member-actions{flex-direction:column;align-items:stretch}.butler-card{width:100%}.butler-chat-shell{grid-template-columns:1fr;display:flex;flex:1;min-height:0;border:0;border-radius:0}.butler-history{border-right:0;border-bottom:0}.butler-chat-shell.history-open .butler-history{flex:1;max-height:none;display:flex}.butler-chat-shell.history-open .butler-conversation,.butler-chat-shell.history-closed .butler-history{display:none}.butler-chat-shell.history-closed .butler-conversation{flex:1;min-height:0;display:flex}.butler-conversation-title{min-height:48px;padding:0 10px}.butler-conversation-title strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.butler-message-list{min-height:0;flex:1;padding:12px}.butler-message-list .message-stack{max-width:calc(100% - 50px)}.butler-action-card{grid-template-columns:32px minmax(0,1fr)}.butler-action-center{max-height:min(26dvh,220px);padding:10px;overflow:auto}.butler-action-center-head,.butler-error-bar{align-items:stretch;flex-direction:column}.butler-action-center-tools{justify-content:stretch}.butler-action-center-tools button,.butler-error-bar button{flex:1}.butler-action-buttons{grid-column:1 / -1;justify-content:stretch}.butler-action-buttons button{flex:1}.inline-form input[type=date],.inline-form button{width:100%}.butler-composer{grid-template-columns:minmax(0,1fr) auto}.butler-composer .primary{min-width:72px;padding:0 12px;white-space:nowrap}}.file-input-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.transfer-support{margin:0 0 10px;color:#53635b;font-size:13px}.pending-attachments{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px;border-top:1px solid #e3ebe5}.pending-attachment-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;color:#314039;background:#eef5f0}.pending-attachment-chip button{padding:0;min-height:auto;color:#66746d}.pending-attachment-chip small{color:#66746d}.transfer-selected-files{margin:10px 0 0;border:1px solid #d7e3dc;border-radius:10px;background:#fbfdfb}.transfer-status{margin:0;padding:0 14px 12px;color:#53635b;font-size:13px}.message-attachments{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.06)}.attachment-image{max-width:280px;max-height:200px;border-radius:8px;cursor:pointer;object-fit:cover}.attachment-image-wrap{display:grid;gap:8px}.attachment-download{justify-self:start;border:0;background:#ffffffc7;color:#234239;display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:8px;font-size:13px}.attachment-file{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;color:#314039;background:#0000000a;text-align:left}.attachment-file span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-file small{color:#66746d;font-size:11px}@media(max-width:760px){.transfer-selected-files{max-height:70px;margin:0;overflow:auto;border-right:0;border-left:0;border-radius:0}.transfer-status{padding:4px 10px}}
