.belle-frame { overflow:visible; aspect-ratio:auto; }
.belle-frame .belle-art { position:static; width:100%;height:auto;max-width:100%;object-fit:contain;mix-blend-mode:normal; }
.profile-avatar { position:relative; border:2px solid white; padding:0;cursor:pointer;overflow:hidden; }
.profile-avatar > img { width:100%;height:100%;object-fit:cover;display:block; }
.profile-avatar > .journal-icon { width:44px;height:44px;margin-bottom:10px; }
.avatar-caption { position:absolute;bottom:0;left:0;right:0;background:var(--palette-fff0f3e8);color:var(--palette-803850);font-size:.65rem;padding:3px 0; }
.empty-progress span { display:block;background:var(--pink-300);height:100%;border-radius:inherit; }
.task-panel { min-width:0; }
#main:focus-visible { outline:none; }
.module-grid > .belle-panel { align-self:start; }
.task-count { font: .85rem var(--font);color:var(--muted); }
.session-note { font-size:.8rem;color:var(--muted);background:var(--palette-fff5e8);border:1px dashed var(--palette-e8d2c2);padding:12px;border-radius:12px; }
.task-list { display:grid;gap:12px;padding:0;list-style:none;margin:16px 0 0; }
.task-card { background:var(--palette-fff9fb);border:1px solid var(--border);padding:14px;border-radius:18px; }
.task-main { display:flex;align-items:center;gap:12px; }
.task-name { flex:1;min-width:0;overflow-wrap:anywhere; }.task-name strong { font-size:1rem; }.task-name small { display:block;color:var(--muted);font-size:.75rem; }
.task-reward { color:var(--pink-700);font-weight:600;white-space:nowrap; }
.task-complete,.small-button { width:44px;min-height:44px;flex-shrink:0;border:1px solid var(--palette-d9b9c6);border-radius:12px;background:white;color:var(--pink-700);font-size:1.4rem; }
.task-actions { display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;border-top:1px dashed var(--border);padding-top:10px; }
.task-actions button,.action-button { border:1px solid var(--palette-e9c4d1);border-radius:12px;background:white;min-height:44px;min-width:44px;padding:8px 12px;color:var(--palette-843c58);font-size:.875rem; }
.action-button.primary { background:linear-gradient(120deg,var(--palette-f5a4c5),var(--palette-f5bac1));width:auto; }
.is-complete { background:var(--palette-f0f8ee);border-color:var(--palette-b9d1bb); }.is-complete .task-complete { background:var(--palette-dceedd);color:var(--palette-3e6545);border-color:var(--palette-a3c4a7); }
.is-negative { background:var(--palette-fff1f0);border-color:var(--palette-e9c8c7); }.is-negative .task-reward { color:var(--palette-99454c); }
.is-disabled { border-style:dashed;background:var(--palette-f6f2f3); }.is-disabled .task-name strong { color:var(--muted); }
button:disabled { cursor:not-allowed;color:var(--palette-8c7e84);background:var(--palette-f0eaed);border-color:var(--palette-e1d9dc); }
.empty-task { text-align:center;padding:28px 12px;color:var(--muted); }
.modal-open { overflow:hidden; }
.modal-layer { position:fixed;z-index:100;inset:0;background:var(--palette-48394a55);display:flex;align-items:center;justify-content:center;padding:20px;overscroll-behavior:contain; }
.app-dialog { background:var(--palette-fffafb);border:1px solid var(--palette-e7c5d2);border-radius:24px;width:470px;max-width:100%;max-height:calc(100dvh - 40px);max-height:calc(100vh - 40px);overflow-y:auto;padding:24px;box-shadow:0 15px 50px var(--palette-6d40532b);overflow-wrap:anywhere; }
.dialog-heading { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px; }.dialog-heading h2 { font-size:1.2rem;color:var(--pink-700); }
.app-dialog p { font-size:.9rem;color:var(--muted); }.app-dialog label { display:block;font-size:.95rem;margin-top:16px; }
.app-dialog input:not([type=checkbox]),.app-dialog select { width:100%;min-height:44px;border:1px solid var(--palette-d5b7c3);background:white;border-radius:10px;padding:10px;margin-top:6px;font-size:1rem;color:var(--ink); }
.app-dialog .check-label { display:flex;align-items:center;gap:10px;min-height:44px; }.check-label input { width:24px;height:24px;accent-color:var(--pink-700); }
.dialog-actions,.avatar-dialog-actions { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px; }
.app-dialog .form-error { color:var(--palette-a2404e);margin:12px 0; }.confirm-copy { white-space:pre-line; }
.announcement { position:fixed;z-index:150;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--palette-fff6db);color:var(--palette-693349);box-shadow:var(--shadow);border-radius:12px;max-width:calc(100% - 28px);font-size:.875rem; }
.announcement:not(:empty) { padding:10px 16px;border:1px solid var(--palette-e8cebb); }
@media(max-width:767px) { .sidebar { padding-top:max(16px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right)); }footer { padding-bottom:max(24px,env(safe-area-inset-bottom)); }.modal-layer { padding:12px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom)); }.app-dialog { padding:18px; }.task-panel .section-heading { flex-wrap:wrap; }.task-card { padding:12px; }.task-actions { gap:5px; }.task-actions button { flex:1 0 auto; }.task-reward { font-size:.875rem; }.task-main { gap:8px; }.task-panel .section-heading .primary { min-width:120px; } }
