:root{--bg: #f6f7f9;--bg-elevated: #ffffff;--ink: #0f172a;--ink-soft: #475569;--ink-faint: #94a3b8;--line: #e6e8ec;--brand: #4f46e5;--brand-ink: #ffffff;--brand-soft: #eef2ff;--danger: #dc2626;--ok: #16a34a;--radius: 16px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 10px 30px rgba(15, 23, 42, .12);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .28);--maxw: 1240px;--topbar-h: 54px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .05s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:hover{box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn-primary:hover{background:#4338ca}.btn-ghost{background:transparent;border-color:transparent}.btn-danger{color:var(--danger);border-color:#f3c6c6;background:#fff5f5}.btn-sm{padding:6px 12px;font-size:13px}.btn-icon{width:40px;height:40px;padding:0;border-radius:999px}.btn-share{display:inline-flex;align-items:center;gap:6px}.btn-share svg{display:block}.btn-share .spinner{width:14px;height:14px}.input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:15px;background:var(--bg-elevated);color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.field{margin-bottom:16px}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.topbar{position:sticky;top:0;z-index:30;background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);transition:transform .28s ease;will-change:transform}.topbar.topbar-hidden{transform:translateY(-100%)}.topbar-inner{display:flex;align-items:center;gap:12px;height:var(--topbar-h)}.topbar-actions{display:inline-flex;align-items:center;gap:8px}.icon-btn{width:38px;height:38px;padding:0;border-radius:999px;flex-shrink:0}.icon-btn svg{display:block}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:var(--ink);letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand-dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#6366f1,#8b5cf6 60%,#ec4899);box-shadow:var(--shadow-sm)}.spacer{flex:1}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.center-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 100% -10%,#eef2ff 0%,transparent 55%),radial-gradient(1000px 600px at -10% 10%,#fdf2f8 0%,transparent 50%),var(--bg)}.panel{width:100%;max-width:460px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-md);padding:32px}.panel-wide{max-width:760px}.panel h1{font-size:26px;letter-spacing:-.02em;margin:0 0 6px}.panel p.sub{margin:0 0 22px;color:var(--ink-soft);line-height:1.5}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--brand);background:var(--brand-soft);padding:6px 12px;border-radius:999px;margin-bottom:18px}.error-box{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}.ok-box{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px;word-break:break-all}.space-head{padding:16px 0 4px}.space-head-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.space-title{font-size:clamp(22px,4vw,32px);font-weight:800;letter-spacing:-.025em;margin:0}.space-count{color:var(--ink-faint);font-size:13px;font-weight:500;white-space:nowrap}.space-meta{color:var(--ink-soft);font-size:14px;margin-top:6px}.install-wrap{margin-top:12px}.install-hint{margin-top:8px;max-width:420px;font-size:13px;line-height:1.5;color:var(--ink-soft);background:var(--brand-soft);border:1px solid #dfe3ff;border-radius:var(--radius-sm);padding:10px 12px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;position:sticky;top:var(--topbar-h);z-index:20;background:linear-gradient(var(--bg) 70%,rgba(246,247,249,0));transition:transform .28s ease,opacity .28s ease;will-change:transform}.toolbar.toolbar-hidden{transform:translateY(calc(-100% - 80px));opacity:0;pointer-events:none}.segmented{display:inline-flex;background:#eef0f3;border-radius:999px;padding:4px;gap:2px}.segmented button{border:none;background:transparent;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer}.segmented button.active{background:var(--bg-elevated);color:var(--ink);box-shadow:var(--shadow-sm)}.dropdown{position:relative;display:inline-flex}.view-trigger{gap:6px}.toolbar .btn-primary,.toolbar .view-trigger{width:150px;flex:0 0 auto}.view-trigger .chevron{color:var(--ink-faint);font-size:12px;transition:none}.view-trigger[aria-expanded=true] .chevron{color:var(--brand)}.dropdown-menu{position:absolute;top:calc(100% + 6px);min-width:190px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:6px;z-index:50;display:grid;gap:2px;animation:dropdown-in .12s ease}.dropdown-start{left:0}.dropdown-end{right:0}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}}.dropdown-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:8px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}.dropdown-item:hover{background:#eef0f3}.dropdown-item.active{color:var(--brand);background:var(--brand-soft)}.dropdown-label{padding:6px 12px 2px;font-size:12px;font-weight:600;color:var(--ink-faint)}.dropdown-name,.dropdown-current-space{display:flex;align-items:center;gap:8px;padding:4px 12px 6px;font-size:14px}.dropdown-space-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);flex:0 0 auto}.dropdown-item-text{overflow:hidden;text-overflow:ellipsis}.dropdown-space-row{display:flex;align-items:center;gap:2px}.dropdown-space-row .dropdown-space-link{flex:1 1 auto;min-width:0}.dropdown-space-remove{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:8px;color:var(--ink-faint);font-size:12px;cursor:pointer}.dropdown-space-remove:hover{background:#eef0f3;color:var(--ink)}.dropdown-divider{height:1px;background:var(--line);margin:4px 2px}@media(max-width:640px){.toolbar{gap:8px}.segmented{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.segmented button{padding:7px 12px;font-size:12.5px;white-space:nowrap;flex-shrink:0}.toolbar .btn-sm{padding:6px 10px;font-size:12.5px}.group-select-btn{padding:5px 10px;font-size:12px}.toolbar .btn-primary,.toolbar .view-trigger{width:132px;padding:8px 12px;font-size:13px}.select-enter-btn{display:none}.dropdown-menu{min-width:200px}.dropdown-item{padding:12px}}.group-heading{display:flex;align-items:center;gap:12px;margin:26px 0 14px}.group-heading h2{font-size:17px;font-weight:700;margin:0;letter-spacing:-.01em}.group-heading .count{font-size:13px;color:var(--ink-faint);background:#eef0f3;padding:2px 10px;border-radius:999px}.group-heading-btn{display:flex;align-items:center;gap:12px;border:none;background:transparent;flex:1;min-width:0;text-align:left;font:inherit;color:inherit;padding:6px 4px;margin:0;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease}.group-heading-btn:hover{background:#eef0f3}.group-heading-btn h2{transition:color .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-heading-btn:hover h2{color:var(--brand)}.group-heading-btn .chevron{margin-left:auto}.group-select-btn{flex-shrink:0}.group-select-btn.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}@media(max-width:640px){.grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}}.collage{display:grid;grid-auto-flow:dense;margin-top:4px}.collage-cell{min-width:0;min-height:0}.collage-cell .tile{aspect-ratio:auto;width:100%;height:100%}.tile{position:relative;aspect-ratio:1 / 1;border-radius:14px;overflow:hidden;background:#e9ebef;cursor:pointer;box-shadow:var(--shadow-sm);border:1px solid rgba(15,23,42,.04);-webkit-user-select:none;user-select:none}.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.tile:hover img{transform:scale(1.05)}.tile-badge{position:absolute;top:8px;left:8px;background:#0f172ab3;color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tile-check{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:999px;background:#ffffffd9;border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:14px;box-shadow:var(--shadow-sm)}.tile.selected{outline:3px solid var(--brand);outline-offset:-3px}.tile-fav{position:absolute;top:8px;left:8px;width:26px;height:26px;border-radius:999px;background:#0f172a8c;color:#ffd23f;display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow-sm)}.tile .play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.tile .play span{width:44px;height:44px;border-radius:999px;background:#0f172a8c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tile .dur{position:absolute;bottom:8px;right:8px;background:#0f172ab3;color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px}.tile.processing{display:flex;align-items:center;justify-content:center}.tile-failed{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px;text-align:center;background:linear-gradient(135deg,#eef0f3,#e3e6eb);color:var(--ink-soft)}.tile-failed-icon{font-size:30px;opacity:.8}.tile-failed-text{font-size:12px;font-weight:600}.tile-failed-hint{font-size:11px;color:var(--brand);font-weight:600}.empty{text-align:center;padding:80px 20px;color:var(--ink-soft)}.empty .big{font-size:48px;margin-bottom:12px}.spinner{width:22px;height:22px;border-radius:999px;border:3px solid rgba(79,70,229,.25);border-top-color:var(--brand);animation:spin .8s linear infinite}.spinner.lg{width:38px;height:38px;border-width:4px}.spinner.white{border-color:#ffffff59;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.tray{position:fixed;right:18px;bottom:18px;width:min(380px,calc(100vw - 36px));background:var(--bg-elevated);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);z-index:40;overflow:hidden}.tray-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px}.tray-summary{padding:12px 14px;border-bottom:1px solid var(--line);background:#fafbfc}.tray-summary-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:7px}.bar-lg{height:9px}.tray-body{max-height:46vh;overflow-y:auto}.tray-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #f1f3f5}.tray-row:last-child{border-bottom:none}.tray-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tray-sub{font-size:12px;color:var(--ink-faint)}.bar{height:6px;border-radius:999px;background:#eef0f3;overflow:hidden;margin-top:5px}.bar>i{display:block;height:100%;background:var(--brand);border-radius:999px;transition:width .2s ease}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#080a1480;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{width:100%;max-width:560px;max-height:calc(100vh - 40px);background:var(--bg-elevated);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:18px;font-weight:700;flex:1}.modal-body{padding:16px 18px;overflow-y:auto}.modal-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:#fafbfc}.link-btn{border:none;background:none;padding:0;color:var(--brand);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.upload-progress{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fafbfc}.upload-progress-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:7px}.upload-file-list{margin-top:12px;display:grid;gap:8px}.upload-file{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm)}.upload-file-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-page{padding-bottom:80px;min-height:100vh}.dropzone-xl{padding:44px 28px;margin-top:8px}.upload-summary-card{margin-top:18px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.upload-pct{font-size:20px;font-weight:800;color:var(--brand);letter-spacing:-.02em}.bar-xl{height:14px;margin-top:4px}.upload-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:16px}.upload-stat{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fafbfc}.upload-stat-label{font-size:12px;font-weight:600;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.upload-stat-value{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.upload-summary-foot{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.upload-live{display:inline-flex;align-items:center;gap:8px;font-size:14px}.upload-file-icon{font-size:22px;flex-shrink:0}.upload-fab{position:fixed;right:18px;bottom:18px;z-index:40;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid var(--line);border-radius:999px;background:var(--bg-elevated);color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-md)}.upload-fab:hover{box-shadow:var(--shadow-lg)}.drag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#4f46e51f;border:3px dashed var(--brand);display:flex;align-items:center;justify-content:center;pointer-events:none}.drag-overlay-inner{background:var(--bg-elevated);border-radius:18px;padding:28px 40px;box-shadow:var(--shadow-lg);text-align:center;color:var(--ink);display:grid;gap:8px;justify-items:center}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#080a14f0;display:flex;flex-direction:column}.lb-top{display:flex;align-items:center;gap:12px;padding:14px 18px;color:#fff}.lb-top .name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-meta{font-size:12px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;min-height:0;padding:0 8px 12px}.lb-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;max-width:440px;padding:24px;text-align:center;color:#fff}.lb-fallback-icon{font-size:56px;line-height:1}.lb-fallback-title{font-size:18px;font-weight:700}.lb-fallback-sub{font-size:14px;line-height:1.5;color:#ffffffb8}.lb-stage img,.lb-stage video{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:999px;border:none;background:#ffffff24;color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}.lb-nav:hover{background:#ffffff40}.lb-prev{left:16px}.lb-next{right:16px}.lb-btn{border:none;background:#ffffff24;color:#fff;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.lb-btn:hover{background:#ffffff40}.lb-icon{width:42px;height:42px;padding:0;justify-content:center}.lb-danger{background:#dc262638}.lb-danger:hover{background:#dc262666}.lb-fav{font-size:18px;line-height:1;padding:9px 14px}.lb-fav.on{background:#ffd23f38;color:#ffd23f}.lb-fav.on:hover{background:#ffd23f59}.lb-crop{font-size:19px;line-height:1}.te-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#080a14fa}.thumb-editor{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;color:#fff}.te-top{display:flex;align-items:center;gap:12px;padding:14px 18px}.te-title{flex:1;font-weight:700;font-size:16px}.te-stage{position:relative;flex:1;min-height:0;background:#000}.te-msg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ffffffd9;font-size:14px}.te-controls{padding:14px 18px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;background:#080a14e6;border-top:1px solid rgba(255,255,255,.1)}.te-row{display:flex;align-items:center;gap:12px}.te-label{font-size:13px;color:#ffffffb3;min-width:44px}.te-slider{flex:1;accent-color:var(--brand);min-width:0}.te-presets{display:flex;flex-wrap:wrap;gap:8px}.te-chip{border:1px solid rgba(255,255,255,.22);background:#ffffff14;color:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer}.te-chip.active{background:var(--brand);border-color:var(--brand)}.te-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.te-foot .btn-ghost{color:#fff}@media(max-width:640px){.te-foot .btn-sm{padding:8px 12px}}@media(max-width:640px){.lb-top{padding:10px;gap:6px}.lb-top .name{font-size:13px}.lb-btn{padding:8px 10px;font-size:13px}.lb-icon{width:38px;height:38px}.lb-fav{padding:8px 10px}.lb-btn-label{display:none}}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.hint{font-size:13px;color:var(--ink-soft);line-height:1.5}.divider{height:1px;background:var(--line);margin:20px 0}.banner{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;margin:12px 0;line-height:1.5}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);padding:28px;text-align:center;color:var(--ink-soft);transition:border-color .15s ease,background .15s ease;cursor:pointer}.dropzone.over{border-color:var(--brand);background:var(--brand-soft)}.kpi{display:flex;gap:18px;flex-wrap:wrap;color:var(--ink-soft);font-size:14px}.list-spaces{display:grid;gap:10px}.space-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elevated)}.space-row .grow{flex:1;min-width:0}.space-row .nm{font-weight:700}.tag{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;background:#eef0f3;color:var(--ink-soft)}.tag-danger{background:#fee2e2;color:#b91c1c}.admin-accordion{display:grid;gap:12px}.admin-space{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);overflow:hidden}.admin-space.open{box-shadow:var(--shadow-sm)}.admin-space-head{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit}.admin-space-head:hover{background:#fafbfc}.admin-space-head .grow{flex:1;min-width:0}.admin-space-head .nm{font-weight:700}.chevron{display:inline-block;transition:transform .2s ease;color:var(--ink-faint);font-size:13px}.chevron.open{transform:rotate(90deg)}.admin-space-body{padding:4px 16px 18px;border-top:1px solid var(--line)}.admin-group{margin-top:16px}.admin-group-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.admin-group-head h3{margin:0;font-size:15px;font-weight:700}.admin-group-head .count{font-size:12px;color:var(--ink-faint);background:#eef0f3;padding:2px 9px;border-radius:999px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.admin-tile{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-elevated);display:flex;flex-direction:column}.admin-tile.selected{outline:3px solid var(--brand);outline-offset:-1px}.admin-thumb{position:relative;display:block;width:100%;aspect-ratio:1 / 1;background:#e9ebef;border:none;padding:0;cursor:pointer}.admin-check{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:999px;background:#ffffffe6;border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:14px;font-weight:700;box-shadow:var(--shadow-sm)}.admin-check.on{background:var(--brand);color:#fff}.admin-thumb img{width:100%;height:100%;object-fit:cover;display:block}.admin-thumb-ph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:34px}.admin-dur{position:absolute;bottom:6px;right:6px;background:#0f172ab3;color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px}.admin-tile-meta{padding:8px 10px 4px}.admin-tile-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-tile-actions{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 10px;margin-top:auto}.admin-tile-actions .btn{flex:1;min-width:0}.access-panel{margin-top:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fafbfc;overflow:hidden}.access-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:transparent;cursor:pointer;font:inherit;font-weight:600;color:inherit;text-align:left}.access-toggle:hover{background:#f2f4f7}.access-toggle .grow{flex:1}.access-body{padding:4px 14px 14px;border-top:1px solid var(--line)}.access-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:12px}.access-stat{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.access-stat .n{font-size:20px;font-weight:800;line-height:1.1}.access-stat .l{font-size:12px;color:var(--ink-faint);margin-top:2px}.segmented.sm{padding:3px;flex-wrap:wrap}.segmented.sm button{padding:5px 10px;font-size:12px}.access-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elevated)}.access-table{width:100%;border-collapse:collapse;font-size:13px}.access-table th,.access-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.access-table th{position:sticky;top:0;background:#f2f4f7;cursor:pointer;font-weight:700;-webkit-user-select:none;user-select:none}.access-table th:hover{background:#e9edf2}.access-table tbody tr:last-child td{border-bottom:none}.access-table tbody tr:hover{background:#f7f9fb}.access-table td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.access-groups{display:grid;gap:6px}.access-group-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 3fr auto;align-items:center;gap:10px;font-size:13px}.access-group-row .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-group-row .bar-wrap{background:#eef0f3;border-radius:999px;height:10px;overflow:hidden}.access-group-row .bar{height:100%;background:var(--brand);border-radius:999px;min-width:2px}.access-group-row .cnt{font-weight:700;font-variant-numeric:tabular-nums}.identity-list{display:grid;gap:8px}.identity-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elevated);overflow:hidden}.identity-card.open{box-shadow:0 1px 4px #0000000d}.identity-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;text-align:left}.identity-head:hover{background:#f7f9fb}.identity-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.identity-last{font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.identity-body{padding:4px 12px 12px;border-top:1px solid var(--line)}.identity-substats{font-size:12px;margin:8px 0 10px}.chevron.sm{display:inline-block;margin-right:6px;font-size:10px}.access-table tr.ip-row{cursor:pointer}.access-table tr.ip-row:hover{background:#eef2f6}.access-table tr.ip-detail-row td{background:#f7f9fb;white-space:normal;padding:6px 10px 6px 26px}.access-detail-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.access-detail-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}.access-detail-list .dt{font-variant-numeric:tabular-nums;min-width:148px}.kind-tag{font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#eef0f3;color:var(--ink-soft)}.kind-tag.enter{background:#e6f4ea;color:#1a7f37}.menu-btn{display:inline-flex}.menu-btn-bars{position:relative;width:18px;height:13px;display:inline-block}.menu-btn-bars span{position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease,top .2s ease}.menu-btn-bars span:nth-child(1){top:0}.menu-btn-bars span:nth-child(2){top:5.5px}.menu-btn-bars span:nth-child(3){top:11px}.menu-btn-bars.open span:nth-child(1){top:5.5px;transform:rotate(45deg)}.menu-btn-bars.open span:nth-child(2){opacity:0}.menu-btn-bars.open span:nth-child(3){top:5.5px;transform:rotate(-45deg)}.module-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a14;z-index:40;opacity:0;pointer-events:none;transition:opacity .22s ease}.module-nav-backdrop.visible{opacity:1;pointer-events:auto}.module-nav{display:flex;flex-direction:column;gap:3px;background:var(--bg-elevated);z-index:45;overflow-y:auto}.module-nav-heading{display:none}.module-nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:var(--ink-soft);font-weight:600;font-size:15px;text-decoration:none;transition:background .15s ease,color .15s ease}.module-nav-item:hover{background:var(--bg);text-decoration:none}.module-nav-item.active{background:var(--brand-soft);color:var(--brand)}.module-nav-icon{font-size:20px;line-height:1;width:24px;text-align:center}@media(min-width:901px){.module-nav{position:fixed;top:calc(var(--topbar-h) + 8px);left:max(20px,calc(50vw - var(--maxw) / 2 + 20px));width:234px;max-height:calc(100vh - var(--topbar-h) - 24px);padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffdb;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);box-shadow:var(--shadow-md);transform-origin:top left;opacity:0;transform:translateY(-8px) scale(.97);visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .2s cubic-bezier(.16,1,.3,1),visibility .2s}.module-nav.module-nav-open{opacity:1;transform:translateY(0) scale(1);visibility:visible;pointer-events:auto}.module-nav-heading{display:block;padding:4px 12px 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.module-nav-item{opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s ease,background .15s ease,color .15s ease}.module-nav.module-nav-open .module-nav-item{opacity:1;transform:translate(0)}.module-nav.module-nav-open .module-nav-item:nth-of-type(2){transition-delay:.03s}.module-nav.module-nav-open .module-nav-item:nth-of-type(3){transition-delay:.06s}.module-nav.module-nav-open .module-nav-item:nth-of-type(4){transition-delay:.09s}.module-nav.module-nav-open .module-nav-item:nth-of-type(5){transition-delay:.12s}}@media(prefers-reduced-motion:reduce){.module-nav,.module-nav-item{transition-duration:.01ms;transform:none}}@media(max-width:900px){.menu-btn,.module-nav-backdrop{display:none}.module-nav{position:fixed;top:auto;left:0;right:0;bottom:0;width:auto;flex-direction:row;justify-content:space-around;border-right:none;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));gap:2px;box-shadow:0 -2px 12px #0f172a0f;transform:none;transition:transform .28s ease;will-change:transform}.module-nav.module-nav-hidden{transform:translateY(120%)}.module-nav-item{flex-direction:column;gap:3px;flex:1;padding:6px 4px;border-radius:10px;font-size:11px;font-weight:600}.module-nav-icon{font-size:21px;width:auto}.space-shell.has-nav{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}}.module-page{padding-top:18px;padding-bottom:40px}.module-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.module-head .space-title{margin:0}.module-badge,.module-page .module-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:13px}.empty-hint{padding:40px 20px;text-align:center;color:var(--ink-soft);background:var(--bg-elevated);border:1px dashed var(--line);border-radius:var(--radius)}.module-page .card{padding:16px 18px;margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:flex-start;justify-content:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto;z-index:60}.modal{width:100%;max-width:520px;background:var(--bg-elevated);border-radius:18px;box-shadow:var(--shadow-lg);margin:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:19px}.modal-body{padding:18px 20px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.form-row{display:flex;gap:12px;flex-wrap:wrap}.duration-chips{margin-top:-6px}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.duration-chip{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink-soft);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease}.duration-chip:hover{border-color:var(--brand);color:var(--brand)}.checkbox-line{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-soft);margin-bottom:12px;cursor:pointer}.participant-gate{display:flex;justify-content:center;padding-top:12px}.participant-gate .panel{max-width:480px}.participant-choices{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.participant-choice{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elevated);font-weight:600;cursor:pointer}.participant-choice:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}.participant-choice-lock{font-size:12px}.finance-identity{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.finance-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.stat-label{font-size:13px;color:var(--ink-soft);font-weight:600}.stat-value{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.stat-sub{font-size:12px;color:var(--ink-faint)}.finance-actions{margin-bottom:16px}.balance-list,.expense-list,.transfer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.balance-row,.expense-row,.transfer-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.balance-row:last-child,.expense-row:last-child,.transfer-row:last-child{border-bottom:none}.balance-name{display:inline-flex;align-items:center;gap:8px;font-weight:600}.balance-amount{font-variant-numeric:tabular-nums;font-weight:700}.balance-amount.positive{color:var(--ok)}.balance-amount.negative{color:var(--danger)}.expense-main{display:flex;flex-direction:column;gap:2px;min-width:0}.expense-main .muted{font-size:12.5px}.expense-notes{font-size:13px;color:var(--ink-soft)}.expense-side{display:flex;align-items:center;gap:8px}.expense-amount{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.expense-row.settled{opacity:.7}.transfer-amount{font-weight:800;font-variant-numeric:tabular-nums}.transfer-check{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.transfer-row.paid{opacity:.55}.transfer-row.paid .transfer-check span{text-decoration:line-through}.settlement-batch{padding:12px 0;border-top:1px solid var(--line)}.settlement-batch:first-of-type{border-top:none}.settlement-batch.reopened{opacity:.6}.settlement-batch-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.split-toggle{display:flex;gap:8px;margin-bottom:10px}.split-list{display:flex;flex-direction:column;gap:6px}.split-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.split-row.off{opacity:.5}.split-name{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}.split-input{width:110px;text-align:right}.split-sum{margin-top:10px;font-weight:700;font-size:14px}.split-sum.ok{color:var(--ok)}.split-sum.bad{color:var(--danger)}.shopping-add{display:flex;gap:8px;margin-bottom:16px}.shopping-add .input{flex:1}.shopping-qty{flex:0 0 110px;max-width:110px}.shopping-list{list-style:none;margin:0 0 8px;padding:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--bg-elevated)}.shopping-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);min-height:52px;background:var(--bg-elevated)}.shopping-row:last-child{border-bottom:none}.shopping-row.editing{flex-wrap:wrap}.shopping-row.dragging{box-shadow:var(--shadow-md);border-radius:10px;position:relative}.shopping-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:40px;flex-shrink:0;color:var(--ink-faint);cursor:grab;touch-action:none;border-radius:8px;margin:-8px -4px -8px 0}.shopping-drag-handle:hover{color:var(--ink-soft);background:var(--bg)}.shopping-drag-handle:active{cursor:grabbing}.shopping-check{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer}.shopping-check input[type=checkbox]{width:22px;height:22px;flex-shrink:0}.shopping-text{font-size:15px;overflow:hidden;text-overflow:ellipsis}.shopping-row.checked .shopping-text{text-decoration:line-through;color:var(--ink-faint)}.shopping-qty-badge{margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--bg);font-size:12px;color:var(--ink-soft)}.shopping-row-side{display:flex;align-items:center;gap:10px;flex-shrink:0}.shopping-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--ink-faint);white-space:nowrap;line-height:1.3}.shopping-meta-line{display:inline-flex;gap:6px}.shopping-meta-name{font-weight:600;color:var(--ink-soft)}.shopping-meta-checked{color:var(--ok)}.shopping-actions{display:inline-flex;gap:2px}.shopping-sort-switch{flex-shrink:0}.shopping-done-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--ink-soft);font-weight:700;font-size:14px;cursor:pointer;padding:8px 0}@media(max-width:640px){.shopping-row{flex-wrap:wrap;padding:10px 12px}.shopping-row-side{flex:1 1 100%;justify-content:space-between;margin-top:2px}.shopping-row:has(.shopping-drag-handle) .shopping-row-side{padding-left:30px}.shopping-meta{align-items:flex-start}.shopping-meta-line{flex-wrap:wrap}}.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.note-card{text-align:left;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:8px;height:190px;overflow:hidden;transition:box-shadow .15s ease,transform .05s ease}.note-card:hover{box-shadow:var(--shadow-md)}.note-card.expanded{height:auto;overflow:visible;box-shadow:var(--shadow-md);grid-column:1 / -1}.note-card.expanded .note-card-preview{max-height:none}.note-card-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13.5px}.note-card-checklist li{display:flex;align-items:flex-start;gap:6px}.note-card-checklist li.checked span:last-child{text-decoration:line-through;color:var(--ink-soft)}.note-card-check{flex:none}.note-card-head{display:flex;align-items:center;gap:8px}.note-card-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card-preview{font-size:13.5px;color:var(--ink-soft);max-height:60px;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.note-card-preview a,.note-card-checklist a{text-decoration:underline;overflow-wrap:anywhere}.note-card-thumbs{display:flex;gap:6px;flex-wrap:wrap}.note-card-thumb{padding:0;border:none;background:none;cursor:zoom-in;line-height:0;border-radius:8px}.note-card-thumbs img{width:46px;height:46px;object-fit:cover;border-radius:8px;display:block}.note-card-foot{font-size:12px;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.note-title-input{font-size:20px;font-weight:800;margin-bottom:12px}.note-body-input{resize:vertical;min-height:200px;line-height:1.5}.note-save-state{font-size:13px}.note-checklist{display:flex;flex-direction:column;gap:6px}.checklist-row{display:flex;align-items:center;gap:10px}.checklist-row input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.checklist-text-input{flex:1;border:1px solid transparent;background:transparent;padding:8px 10px;border-radius:8px;font-size:15px;color:var(--ink)}.checklist-text-input:focus{outline:none;border-color:var(--line);background:var(--bg-elevated)}.checklist-row.checked .checklist-text-input{text-decoration:line-through;color:var(--ink-faint)}.checklist-add{display:flex;gap:8px;margin-top:8px}.checklist-add .input{flex:1}.note-attachments{margin-top:22px}.note-attachments-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.note-attachments-head h3{margin:0}.note-attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.note-attachment{position:relative}.note-attachment img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.note-attachment-remove{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:999px;border:none;background:#0f172a99;color:#fff;cursor:pointer;font-size:13px}.calendar-view-switch{flex-shrink:0}.calendar-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.calendar-toolbar-nav{display:inline-flex;align-items:center;gap:4px}.calendar-toolbar-label{font-size:16px;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekday{text-align:center;font-size:12px;font-weight:700;color:var(--ink-faint);padding-bottom:6px}.calendar-cell{position:relative;min-height:88px;border:1px solid var(--line);background:var(--bg);border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:stretch;padding:6px 5px;font-size:13px;font-weight:600;color:var(--ink);text-align:left;transition:border-color .15s ease,background .15s ease;overflow:hidden}.calendar-grid.view-week .calendar-cell{min-height:150px}.calendar-cell.dimmed{color:var(--ink-faint);background:transparent}.calendar-cell.dimmed .cal-chip{opacity:.6}.calendar-cell:hover{border-color:var(--brand)}.calendar-cell.today .calendar-cell-daynum{color:var(--brand)}.calendar-cell.today{border-color:var(--brand-soft)}.calendar-cell.selected{background:var(--brand-soft);border-color:var(--brand)}.calendar-cell-daynum{flex-shrink:0;margin-bottom:4px}.calendar-cell-chips{display:flex;flex-direction:column;gap:3px;min-width:0}.cal-chip{display:block;font-size:11px;font-weight:500;line-height:1.3;padding:2px 6px;border-radius:6px;background:var(--brand-soft);color:var(--brand);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-grid.view-week .cal-chip{font-size:12px;padding:3px 7px}.cal-chip.allday{background:#eef2ff;color:#4338ca;font-weight:600}.cal-chip-more{font-size:11px;color:var(--ink-faint);font-weight:600;padding:0 6px}.calendar-dot{position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:999px;background:var(--brand)}.calendar-daystrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-strip-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:1px solid transparent;background:var(--bg);border-radius:12px;cursor:pointer}.calendar-strip-cell:hover{border-color:var(--brand)}.calendar-strip-weekday{font-size:11px;font-weight:700;color:var(--ink-faint)}.calendar-strip-daynum{font-size:16px;font-weight:700}.calendar-strip-cell.today .calendar-strip-daynum{color:var(--brand)}.calendar-strip-cell.selected{background:var(--brand-soft);border-color:var(--brand)}.agenda-list{list-style:none;margin:0;padding:0}.agenda-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.agenda-row:last-child{border-bottom:none}.agenda-time{flex:0 0 84px;font-weight:700;font-size:13px;color:var(--brand)}.agenda-main{flex:1;min-width:0}.agenda-desc{font-size:13px;color:var(--ink-soft);margin-top:2px}.agenda-actions{display:inline-flex;gap:2px}@media(max-width:640px){.calendar-toolbar{justify-content:space-between}.calendar-toolbar-label{font-size:14px;order:3;flex:1 1 100%;text-align:center}.calendar-cell{min-height:64px;padding:4px;font-size:12px;border-radius:8px}.calendar-grid.view-week .calendar-cell{min-height:118px}.cal-chip,.calendar-grid.view-week .cal-chip{font-size:10.5px;padding:2px 4px}.calendar-grid{gap:4px}.calendar-strip-cell{padding:8px 2px}}.module-picker{display:flex;flex-direction:column;gap:8px}.module-option{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-elevated);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.module-option:hover{border-color:var(--brand)}.module-option.active{border-color:var(--brand);background:var(--brand-soft)}.module-option-icon{font-size:22px}.module-option-text{flex:1;display:flex;flex-direction:column}.module-option-text .hint{font-size:12.5px}.module-option-check{width:22px;text-align:center;color:var(--brand);font-weight:800}.admin-module-panel{padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:10px}.admin-module-title{font-weight:700;font-size:13px;color:var(--ink-soft);margin-bottom:8px}.admin-module-row{display:flex;flex-wrap:wrap;gap:8px}.tag-toggle{cursor:pointer;border:1px solid var(--line);background:var(--bg-elevated)}.tag-toggle.active{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}.admin-participant-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.admin-participant-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.admin-participant-row:last-child{border-bottom:none}.admin-participant-row .grow{flex:1}
