@charset "UTF-8";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #d9005e;--color-primary-dark: #b0004d;--color-secondary: #5e5a5c;--color-secondary-light: #8a8688;--color-bg: #f5f4f4;--color-surface: #ffffff;--color-text: #1a1919;--color-text-muted: #5e5a5c;--color-error: #c0392b;--color-border: #e0dcdd;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .08)}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg);color:var(--color-text);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.auth-container{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:400px;height:80dvh;display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 32px}.auth-card img{display:block;margin:0 auto 24px}.auth-card h1{font-size:28px;font-weight:800;color:var(--color-primary);letter-spacing:-.5px;margin-bottom:4px}.auth-card h2{font-size:18px;font-weight:500;color:var(--color-secondary);margin-bottom:28px}form{display:flex;flex-direction:column;gap:16px}.spacer{flex:1}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:500;color:var(--color-text)}.field .forgot{font-size:13px;color:var(--color-primary);text-decoration:none;align-self:flex-start}.field .forgot:hover{text-decoration:underline}.field .hint{font-weight:400;color:var(--color-text-muted);font-size:12px}.field input{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:16px;color:var(--color-text);background:var(--color-surface);transition:border-color .15s;outline:none}.field input:focus{border-color:var(--color-primary)}button[type=submit]{width:100%;padding:13px;margin-top:4px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:600;cursor:pointer;transition:background .15s}button[type=submit]:hover:not(:disabled){background:var(--color-primary-dark)}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error{font-size:14px;color:var(--color-error);background:#fdf0f0;border-radius:var(--radius-sm);padding:10px 12px}.switch{margin-top:20px;text-align:center;font-size:14px;color:var(--color-text-muted)}.switch a{color:var(--color-primary);font-weight:600;text-decoration:none}.switch a:hover{text-decoration:underline}.dashboard{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.dashboard-header{position:sticky;top:0;z-index:10;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 16px;height:56px;display:flex;align-items:center;justify-content:space-between}.dashboard-header .header-user{display:flex;align-items:center;gap:10px}.dashboard-header .header-user span{font-size:14px;color:var(--color-text-muted)}.dashboard-content{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px;max-width:480px;width:100%;margin:0 auto}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-header{padding:14px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.card-header h2{font-size:15px;font-weight:600}.household-info{padding:16px}.household-info .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:4px}.household-info h1{font-size:22px;font-weight:700;color:var(--color-text)}.member-item{padding:12px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--color-border)}.member-item:last-child{border-bottom:none}.avatar{width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.member-info{flex:1;min-width:0}.member-info .member-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-info .member-name .you{font-weight:400;color:var(--color-text-muted)}.member-info .member-email{font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}.role-badge.ADMIN{background:#fde8f0;color:var(--color-primary)}.role-badge.MEMBER{background:#e8f4fd;color:#0070c9}.role-badge.VIEWER{background:#f0f0f0;color:var(--color-secondary)}.role-select{font-size:12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 6px;background:var(--color-surface);color:var(--color-text);cursor:pointer;flex-shrink:0}.role-select:focus{outline:none;border-color:var(--color-primary)}.icon-btn{width:32px;height:32px;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-muted);font-size:15px;flex-shrink:0;transition:background .15s,color .15s}.icon-btn:hover{background:var(--color-border);color:var(--color-text)}.icon-btn.danger:hover{background:#fdf0f0;color:var(--color-error)}.inline-form{padding:12px 16px;display:flex;gap:8px;border-top:1px solid var(--color-border)}.inline-form input{flex:1;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text);background:var(--color-surface);outline:none;min-width:0}.inline-form input:focus{border-color:var(--color-primary)}.invite-action{padding:12px 16px;border-top:1px solid var(--color-border)}.btn-primary{width:100%;padding:11px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-inline{padding:10px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s}.btn-inline:hover:not(:disabled){background:var(--color-primary-dark)}.btn-inline:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.btn-ghost:hover{background:var(--color-border)}.btn-logout{padding:6px 12px;background:transparent;color:var(--color-text-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:all .15s}.btn-logout:hover{border-color:var(--color-secondary-light);color:var(--color-text)}.danger-zone{padding:12px 16px}.danger-zone button{width:100%;padding:11px;background:transparent;color:var(--color-error);border:1.5px solid var(--color-error);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.danger-zone button:hover{background:#fdf0f0}.feedback{padding:0 16px 12px;font-size:13px}.feedback.success{color:#27ae60}.feedback.error-text{color:var(--color-error)}.shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.shell-content{flex:1;padding-bottom:64px}.top-nav{display:none;align-items:center;gap:4px}.top-nav .top-nav-item{padding:8px 14px;font-size:14px;font-weight:500;color:var(--color-secondary-light);text-decoration:none;border-radius:var(--radius-sm);transition:color .15s,background .15s}.top-nav .top-nav-item:hover{color:var(--color-text);background:var(--color-bg)}.top-nav .top-nav-item.active{color:var(--color-primary);background:#d9005e0f}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;z-index:100}.bottom-nav .nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--color-secondary-light);font-size:11px;font-weight:500;transition:color .15s}.bottom-nav .nav-item svg{transition:stroke .15s}.bottom-nav .nav-item.active{color:var(--color-primary)}.bottom-nav .nav-item.active svg{stroke:var(--color-primary)}@media(min-width:768px){.top-nav{display:flex}.bottom-nav{display:none}.shell-content{padding-bottom:0}.dashboard-content{max-width:720px}}.loading-state{padding:32px 16px;text-align:center;color:var(--color-text-muted);font-size:14px}.page-actions{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.btn-back{font-size:14px;color:var(--color-primary);text-decoration:none;font-weight:500;padding:6px 0;display:inline-block}.btn-back:hover{text-decoration:underline}.btn-primary-sm{padding:7px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;transition:background .15s}.btn-ghost-sm{padding:7px 14px;background:transparent;color:var(--color-text-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;text-decoration:none;display:inline-block;cursor:pointer;transition:all .15s}.btn-ghost-sm:hover{border-color:var(--color-secondary-light);color:var(--color-text)}.list-empty{padding:32px 16px;text-align:center;color:var(--color-text-muted);font-size:14px}.list-item{padding:12px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--color-border);text-decoration:none;color:var(--color-text);transition:background .1s}.list-item:last-child{border-bottom:none}.list-item:hover{background:var(--color-bg)}.list-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.list-item-name{font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px}.list-item-sub{font-size:12px;color:var(--color-text-muted)}.list-item-amount{font-size:14px;font-weight:600;white-space:nowrap;flex-shrink:0}.list-item-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.chevron{font-size:18px;color:var(--color-secondary-light)}.nav-link{display:flex;align-items:center;justify-content:space-between}.badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px}.badge.danger{background:#fde8f0;color:var(--color-primary)}.badge.warning{background:#fef3c7;color:#d97706}.overdue-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--color-primary);color:#fff;border-radius:50%;font-size:10px;font-weight:700}.danger-text{color:var(--color-error)}.success-text{color:#27ae60}.status-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;background:#fde8f0;color:var(--color-primary)}.status-badge.settled{background:#e8fdf0;color:#27ae60}.finance-hero{padding:20px 16px}.finance-hero .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:4px}.hero-amount{font-size:28px;font-weight:800;color:var(--color-text);letter-spacing:-.5px}.detail-hero{padding:20px 16px 0}.detail-hero .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:4px}.detail-hero h1{font-size:22px;font-weight:700;margin-bottom:4px}.detail-hero .detail-notes{font-size:13px;color:var(--color-text-muted);margin-top:4px}.detail-meta{padding:12px 16px}.meta-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;border-bottom:1px solid var(--color-border)}.meta-row:last-child{border-bottom:none}.meta-row span:first-child{color:var(--color-text-muted)}.meta-row span:last-child{font-weight:500}.alert-row{padding:12px 16px;font-size:13px;font-weight:500;border-bottom:1px solid var(--color-border)}.alert-row.danger{color:var(--color-error);background:#fdf0f0}.alert-row.info{color:#2563eb;background:#eff6ff}.alert-row.success{color:#16a34a;background:#f0fdf4}.alert-row.accordion-toggle{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.chevron{flex-shrink:0;transition:transform .2s ease;transform:rotate(-90deg)}.chevron.open{transform:rotate(0)}.paid-status{display:flex;align-items:center;gap:8px}.paid-badge{font-size:13px;font-weight:500;color:#16a34a}.badge-extra{display:inline-block;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;border-radius:4px;background:#eff6ff;color:#2563eb;vertical-align:middle}.extra-payment-trigger{padding:12px 16px;border-top:1px solid var(--color-border)}.extra-form{padding:12px 16px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:10px}.extra-form .field{display:flex;flex-direction:column;gap:4px}.extra-form .field label{font-size:13px;color:var(--color-text-muted)}.extra-form .field input{padding:8px 10px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text);background:var(--color-surface);outline:none}.extra-form .field input:focus{border-color:var(--color-primary)}.extra-form-actions{display:flex;gap:8px;justify-content:flex-end}.btn-primary-sm{padding:7px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer}.btn-primary-sm:hover{background:var(--color-primary-dark)}.pay-action{display:flex;align-items:center;gap:6px;flex-shrink:0}.input-suffix.compact{display:flex;align-items:center;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;width:90px}.input-suffix.compact input{border:none;border-radius:0;padding:6px 8px;font-size:14px;width:100%;background:var(--color-surface);color:var(--color-text);outline:none}.input-suffix.compact .suffix{border:none;border-radius:0;background:var(--color-surface);padding:6px 8px 6px 2px;font-size:14px;color:var(--color-text-muted)}.pay-action .btn-inline-sm{align-self:stretch}.form-card .card-header{padding:14px 16px}.form-body{padding:16px;display:flex;flex-direction:column;gap:14px}.input-suffix{display:flex;align-items:stretch}.input-suffix input{flex:1;border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm)!important}.input-suffix .suffix{padding:0 12px;background:var(--color-bg);border:1.5px solid var(--color-border);border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;display:flex;align-items:center;font-size:14px;color:var(--color-text-muted);flex-shrink:0}.optional{font-weight:400;color:var(--color-text-muted);font-size:12px}.form-body select{width:100%;padding:12px 36px 12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:16px;color:var(--color-text);background:var(--color-surface);outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 7L11 1' stroke='%235e5a5c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.form-body select:focus{border-color:var(--color-primary)}.toggle-section{padding:2px 0}.toggle-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;cursor:pointer}.toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-label{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.radio-label input[type=radio]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.form-row{display:flex;align-items:stretch;gap:10px}.form-row .form-group{flex:1;min-width:0}.form-row .btn-primary{flex:1}.form-row .btn-ghost{flex:1;align-self:stretch}.form-row .btn-ghost{padding:11px;background:transparent;color:var(--color-text-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:all .15s;white-space:nowrap}.form-row .btn-ghost:hover{border-color:var(--color-secondary-light)}.btn-inline-sm{padding:6px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s}.btn-inline-sm:hover{background:var(--color-primary-dark)}.tab-bar{display:flex;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tab-bar button{flex:1;padding:12px;background:transparent;border:none;font-size:14px;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.tab-bar button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.schedule-table-wrap{overflow-x:auto}.schedule-table{width:100%;border-collapse:collapse;font-size:13px}.schedule-table th,.schedule-table td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--color-border)}.schedule-table th:first-child,.schedule-table td:first-child{text-align:left}.schedule-table th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-muted);background:var(--color-bg)}.schedule-table .schedule-more td{text-align:center;color:var(--color-text-muted);font-style:italic;padding:10px}.nav-tiles{display:grid;grid-template-columns:repeat(2,1fr);padding:0;overflow:hidden}.nav-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 12px;text-decoration:none;color:var(--color-text);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);transition:background .15s}.nav-tile:hover{background:var(--color-bg)}.nav-tile:nth-child(2n){border-right:none}.nav-tile:nth-last-child(-n+2){border-bottom:none}.nav-tile--empty{pointer-events:none;cursor:default}.nav-tile-icon{width:52px;height:52px;border-radius:14px;background:#d9005e14;color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-tile-label{font-size:13px;font-weight:600;color:var(--color-text)}@media(min-width:768px){.nav-tiles{grid-template-columns:repeat(3,1fr)}.nav-tile{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.nav-tile:nth-child(2n){border-right:1px solid var(--color-border)}.nav-tile:nth-last-child(-n+2){border-bottom:1px solid var(--color-border)}.nav-tile:nth-child(3n){border-right:none}.nav-tile:nth-last-child(-n+3){border-bottom:none}}.sub-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;overflow-x:auto;scrollbar-width:none}.sub-nav::-webkit-scrollbar{display:none}.sub-nav-item{padding:10px 16px;font-size:13px;font-weight:500;color:var(--color-text-muted);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;flex-shrink:0}.sub-nav-item:hover{color:var(--color-text)}.sub-nav-item.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.filter-tabs{display:flex;gap:4px}.filter-tab{padding:5px 10px;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;background:var(--color-bg);color:var(--color-text-muted);transition:all .15s}.filter-tab:hover{color:var(--color-text)}.filter-tab.active{background:#d9005e1a;color:var(--color-primary);font-weight:600}.task-check{width:28px;height:28px;border:none;border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.task-check:hover .check-circle{border-color:var(--color-primary)}.check-circle{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border);flex-shrink:0;transition:all .15s}.check-circle.check-circle-done{border-color:var(--color-primary);background:var(--color-primary);position:relative}.check-circle.check-circle-done:after{content:"";position:absolute;top:4px;left:3px;width:10px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg)}.task-done{opacity:.55}.task-done .list-item-name{text-decoration:line-through}.task-assignees{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.assignee-check{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 6px;border-radius:20px;font-size:12px;font-weight:500;transition:all .15s}.assignee-check:disabled{border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-muted);cursor:default}.assignee-check:disabled.assignee-check-done{border-color:var(--color-primary);background:#d9005e14;color:var(--color-primary)}.assignee-check:not(:disabled){border:1.5px dashed var(--color-primary);background:#d9005e0a;color:var(--color-primary);cursor:pointer}.assignee-check:not(:disabled):hover{background:#d9005e1f}.assignee-check:not(:disabled).assignee-check-done{border-style:solid;background:var(--color-primary);color:#fff}.assignee-check-icon{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;flex-shrink:0}.assignee-check-icon.assignee-check-icon-done{background:currentColor;position:relative}.assignee-check-icon.assignee-check-icon-done:after{content:"";position:absolute;top:1px;left:3px;width:5px;height:3px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg)}.assignee-check-name{font-weight:500}.pinboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}@media(min-width:768px){.pinboard-grid{grid-template-columns:repeat(3,1fr)}}.pinboard-note{border-radius:var(--radius-sm);padding:14px;background:#fff9c4;display:flex;flex-direction:column;gap:8px;position:relative}.pinboard-note:after{content:"";display:block;height:28px}.pinboard-note-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.pinboard-note-title{font-size:13px;font-weight:700;color:var(--color-text);line-height:1.3;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pinboard-note-actions{display:flex;gap:2px;justify-content:center;opacity:0;transition:opacity .15s}.pinboard-note:hover .pinboard-note-actions{opacity:1}.pinboard-note-content{font-size:13px;color:var(--color-text);line-height:1.5;flex:1;white-space:pre-wrap;word-break:break-word}.pinboard-note-author{font-size:11px;color:var(--color-text-muted)}.pinboard-note-pinned{outline:2px solid rgba(0,0,0,.3);box-shadow:0 6px 20px #00000026}.pinboard-note-pinned:before{content:"\1f4cc";position:absolute;top:8px;right:10px;font-size:14px;transform:rotate(15deg);pointer-events:none}.pin-active{opacity:1!important}.icon-btn.pin-active{opacity:1}.modal-backdrop{position:fixed;inset:0;background:#0000004d;z-index:200}.modal-card{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-radius:var(--radius) var(--radius) 0 0;z-index:201;padding:24px 20px;padding-bottom:max(24px,env(safe-area-inset-bottom));max-height:90dvh;overflow-y:auto}@media(min-width:768px){.modal-card{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(640px,90vw);border-radius:var(--radius);max-height:85dvh;padding:28px}}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .1s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--color-text)}.form{padding:16px;display:flex;flex-direction:column;gap:14px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:var(--color-text-muted)}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date],.form-group input[type=email],.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text);background:var(--color-surface);font-family:inherit;outline:none;resize:vertical;transition:border-color .15s}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group input[type=date]:focus,.form-group input[type=email]:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary)}.form-check label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--color-text);cursor:pointer}.form-check label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.form-actions.form-actions-split button{flex:1}.form-actions.form-actions-split .btn-ghost{border:1.5px solid var(--color-border);padding:11px;font-size:14px;font-weight:500}.member-checks{display:flex;flex-direction:column;gap:8px}.member-check-label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.member-check-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.error-text{font-size:13px;color:var(--color-error)}.card-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-secondary,.btn-secondary-sm{display:inline-flex;align-items:center;gap:5px;padding:8px 16px;border:1.5px solid var(--color-secondary);border-radius:var(--radius-sm);background:none;color:var(--color-secondary);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-secondary:hover,.btn-secondary-sm:hover{background:#0000000d}.btn-secondary:disabled,.btn-secondary-sm:disabled{opacity:.5;cursor:not-allowed}.btn-secondary-sm{padding:6px 12px;font-size:13px}.item-count{font-size:13px;color:var(--color-text-muted)}.btn-sm{padding:6px 12px;font-size:13px}.accordion{border-bottom:1px solid var(--color-border)}.accordion:last-of-type{border-bottom:none}.accordion-header{width:100%;display:flex;align-items:center;padding:12px 16px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--color-text);gap:8px;text-align:left}.accordion-header:hover{background:var(--color-bg)}.accordion-title{flex:1}.accordion-count{font-size:12px;color:var(--color-text-muted);background:var(--color-bg);padding:2px 7px;border-radius:10px}.accordion-arrow{font-size:18px;color:var(--color-text-muted);transition:transform .15s;transform:rotate(90deg)}.accordion-arrow.open{transform:rotate(270deg)}.accordion-body{padding:0 0 4px}.accordion-unused .accordion-title{color:var(--color-text-muted);font-weight:500}.unused-category-item{padding:8px 16px;font-size:14px;color:var(--color-text-muted)}.accordion-empty{padding:8px 16px;font-size:13px;color:var(--color-text-muted)}.shopping-item{display:flex;align-items:center;gap:10px;padding:10px 16px}.shopping-item:hover{background:var(--color-bg)}.shopping-item-done .shopping-item-name{text-decoration:line-through;opacity:.5}.shopping-item-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.shopping-item-name{font-size:15px}.shopping-item-note{font-size:12px;color:var(--color-text-muted)}.shopping-item-qty{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.shopping-items-flat{padding-bottom:4px}.empty-state{padding:16px;font-size:14px;color:var(--color-text-muted)}.btn-icon{background:none;border:none;cursor:pointer;font-size:18px;color:var(--color-text-muted);padding:4px 6px;line-height:1;border-radius:6px;flex-shrink:0}.btn-icon:hover{background:var(--color-bg)}.btn-icon:disabled{opacity:.3;cursor:default}.btn-icon-danger{color:var(--color-error)}.shopping-add-form{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.shopping-add-title{font-size:13px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.shopping-add-row{display:flex;gap:8px;align-items:stretch}.shopping-add-row input,.shopping-add-row select{flex:1;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;outline:none;background:var(--color-surface);min-width:0}.shopping-add-row input:focus,.shopping-add-row select:focus{border-color:var(--color-primary)}.shopping-add-row .col-1{flex:1}.shopping-add-row .col-2{flex:2}.shopping-add-row .btn-primary{white-space:nowrap;padding:10px 12px}.config-selected-list{display:flex;flex-direction:column;gap:4px;max-height:55dvh;overflow-y:auto;margin:0 -4px 16px}.config-selected-item{display:flex;align-items:center;padding:12px 14px;border-radius:var(--radius-sm);background:var(--color-bg)}.config-cat-name{flex:1;font-size:15px}.config-cat-actions{display:flex;gap:6px}.drag-handle{font-size:18px;color:var(--color-text-muted);cursor:grab;padding:0 10px 0 0;-webkit-user-select:none;user-select:none;touch-action:none}.drag-handle:active{cursor:grabbing}.cdk-drag-preview{background:var(--color-surface);border-radius:var(--radius-sm);box-shadow:0 4px 16px #00000026;display:flex;align-items:center;padding:12px 14px;font-size:15px}.cdk-drag-placeholder{background:var(--color-border);border-radius:var(--radius-sm);height:46px;opacity:.5}.cdk-drag-animating{transition:transform .2s ease}.config-selected-list.cdk-drop-list-dragging .config-selected-item:not(.cdk-drag-placeholder){transition:transform .2s ease}.config-empty{font-size:13px;color:var(--color-text-muted);margin-bottom:12px;text-align:center}.config-available{margin-top:8px}.config-available-label{font-size:12px;font-weight:600;color:var(--color-text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.config-available-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow-y:auto}.chip{padding:5px 10px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);font-size:13px;cursor:pointer;white-space:nowrap}.chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.modal-header{margin-bottom:20px}.modal-header h3{font-size:18px;font-weight:600}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions button{flex:1;padding:12px}.list-item-link{text-decoration:none;color:inherit;flex:1;min-width:0}.rec-table-header,.rec-table-row{display:grid;grid-template-columns:repeat(4,1fr) 32px;gap:6px;align-items:center}.rec-table-header span{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px}.rec-table-row{margin-top:4px}.rec-table-row input{width:100%;padding:7px 8px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;color:var(--color-text);background:var(--color-surface);outline:none}.rec-table-row input:focus{border-color:var(--color-primary)}.input-with-action{display:flex;gap:4px;align-items:center}.input-with-action input{flex:1;min-width:0}.input-with-action .icon-btn:disabled{opacity:.35;cursor:not-allowed}.input-with-action .icon-btn:disabled:hover{background:transparent;color:var(--color-text-muted)}.pet-emoji{font-size:26px;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#d9005e0f;border-radius:10px}.info-tooltip{position:relative;display:inline-flex;align-items:center;cursor:default;color:var(--color-secondary-light);font-size:14px;font-weight:400;margin-left:4px;vertical-align:middle}.info-tooltip .info-tooltip-text{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);width:260px;background:var(--color-text);color:#fff;font-size:12px;font-weight:400;line-height:1.5;padding:10px 12px;border-radius:var(--radius-sm);z-index:50;pointer-events:none}.info-tooltip .info-tooltip-text strong{color:#fff;font-weight:700}.info-tooltip:hover .info-tooltip-text{display:block}.form-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin:0}.pet-tabs{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-surface);overflow-x:auto;scrollbar-width:none}.pet-tabs::-webkit-scrollbar{display:none}.pet-tab{flex:1;padding:11px 8px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:500;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.pet-tab:hover{color:var(--color-text)}.pet-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.pet-tab-content{padding:0}.detail-rows{padding:4px 0}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-size:14px;border-bottom:1px solid var(--color-border)}.detail-row:last-child{border-bottom:none}.detail-row span:first-child{color:var(--color-text-muted)}.detail-row span:last-child{font-weight:500;text-align:right}.suggestion-box{margin:12px 16px;padding:14px;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:8px}.suggestion-title{font-size:13px;font-weight:700;color:#1d4ed8;margin:0}.suggestion-desc{font-size:13px;color:#1e40af;margin:0}.suggestion-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:4px 0;border-bottom:1px solid #bfdbfe}.suggestion-row:last-of-type{border-bottom:none}.suggestion-arrow{color:#1d4ed8}.suggestion-actions{display:flex;gap:8px;padding-top:4px}.overdue-item{background:#fdf0f0}.due-soon-item{background:#fffbeb}
