:root{color:#1d2733;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background:#f5f7fb;min-width:320px;margin:0}button,input,select{font:inherit}a{color:inherit;text-decoration:none}code{color:#283548;background:#eef2f7;border-radius:6px;padding:.2rem .45rem;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.85rem}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:#fff;border-right:1px solid #dce3ec;flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand-mark{color:#fff;background:#1f6f5b;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:800;display:inline-flex}.brand strong,.brand small{display:block}.brand small{color:#627182;font-size:.8rem}.sidebar-nav a{color:#344256;border-radius:8px;padding:.75rem .85rem;font-weight:700;display:block}.sidebar-nav a.active,.sidebar-nav a:hover{color:#16624e;background:#eef8f5}.sidebar-note{color:#607083;border:1px solid #dce3ec;border-radius:8px;gap:.35rem;margin-top:auto;padding:1rem;display:grid}.sidebar-note strong{color:#1d2733}.main-content{min-width:0;padding:2rem}.page-stack{gap:1.25rem;max-width:1180px;margin:0 auto;display:grid}.page-hero,.group-header{background:#fff;border:1px solid #dce3ec;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex}.page-hero h1,.group-header h1{max-width:820px;margin:.25rem 0 .65rem;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.1}.page-hero p,.group-header p{color:#607083;margin:0}.eyebrow{letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:800;color:#1f6f5b!important}.back-link{color:#1f6f5b;margin-bottom:.75rem;font-weight:700;display:inline-block}.dashboard-grid,.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.panel,.summary-card,.group-card,.expense-card,.item-editor{background:#fff;border:1px solid #dce3ec;border-radius:8px;box-shadow:0 8px 24px #2330460a}.panel{padding:1.25rem}.summary-card{gap:.35rem;padding:1.25rem;display:grid}.summary-card span{color:#607083;font-weight:700}.summary-card strong{font-size:1.7rem}.section-heading{margin-bottom:1rem}.section-heading.with-action{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-heading h2{margin:0;font-size:1.15rem}.section-heading p{color:#607083;margin:.25rem 0 0}.form-stack,.form-grid{gap:1rem;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}label,.field-label{color:#39485a;gap:.45rem;font-weight:700;display:grid}input,select{color:#1d2733;background:#fff;border:1px solid #cad4e0;border-radius:8px;width:100%;min-height:44px;padding:.65rem .75rem}input:focus,select:focus{border-color:#1f6f5b;outline:none;box-shadow:0 0 0 3px #1f6f5b24}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:.65rem 1rem;font-weight:800;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.55}.button.primary{color:#fff;background:#1f6f5b}.button.secondary{color:#16624e;background:#eef8f5;border-color:#b9ddd4}.button.ghost{color:#344256;background:#fff;border-color:#cad4e0}.button.danger{color:#b42318;background:#fff5f5;border-color:#f2c6c2}.button.danger:hover:not(:disabled){background:#ffe9e8;border-color:#e8a8a3}.button.large{min-height:48px;padding-inline:1.2rem}.status-message{border-radius:8px;padding:.85rem 1rem;font-weight:700}.status-message.success{color:#17613b;background:#eaf7ef;border:1px solid #bde6c9}.status-message.error{color:#a3261d;background:#fff0ef;border:1px solid #ffc9c5}.status-message.info{color:#244f8f;background:#edf4ff;border:1px solid #c7daf7}.loading-text{color:#607083;font-weight:700}.hint-text{color:#607083;margin:0;font-size:.95rem}.join-mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.empty-state{color:#607083;border:1px dashed #c8d2df;border-radius:8px;gap:.25rem;padding:1rem;display:grid}.empty-state strong{color:#344256}.list-stack,.expense-list,.balance-list,.settlement-list,.item-editor-list{gap:.85rem;display:grid}.list-row{border:1px solid #e4e9f0;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;display:flex}.list-row.hover-dismissible{padding-right:2.25rem}.list-row span{color:#607083;font-size:.9rem;display:block}.group-card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.group-card{gap:1rem;padding:1rem;display:grid}.group-card h3{margin:0 0 .5rem}.group-card span{color:#607083;margin-bottom:.35rem;font-size:.85rem;font-weight:700;display:block}.pill-list{flex-wrap:wrap;gap:.6rem;display:flex}.pill{color:#344256;background:#eef2f7;border-radius:999px;padding:.45rem .75rem;font-weight:700}.expense-card{padding:1rem}.expense-card-header,.expense-item-row,.balance-row,.settlement-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.expense-card-header{border-bottom:1px solid #e4e9f0;padding-bottom:.85rem}.expense-card-header h3{margin:0}.expense-card-header p{color:#607083;margin:.2rem 0 0}.expense-items{gap:.75rem;padding-top:.85rem;display:grid}.expense-item-row{background:#f8fafc;border-radius:8px;align-items:flex-start;padding:.85rem}.expense-item-row span,.item-money small{color:#607083;display:block}.item-money{text-align:right;justify-items:end;gap:.2rem;display:grid}.money{font-weight:900}.money.positive{color:#167346}.money.negative{color:#b42318}.money.neutral{color:#607083}.balance-row,.settlement-row{border-radius:8px;padding:.9rem}.balance-row.receive{background:#eaf7ef}.balance-row.owe{background:#fff0ef}.balance-row.settled{background:#f1f4f8}.settlement-panel{border-color:#9fd6ca;box-shadow:0 14px 34px #1f6f5b17}.settlement-row{background:#eef8f5}.settlement-row div{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.settlement-row span{color:#607083}.item-editor{padding:1rem}.item-editor-header,.form-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.item-editor-header h3{margin:0}.checkbox-group{gap:.6rem;margin-top:1rem;display:grid}.participant-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.65rem;display:grid}.checkbox-card{cursor:pointer;background:#f8fafc;border:1px solid #e4e9f0;border-radius:8px;flex-direction:row;align-items:center;gap:.55rem;padding:.7rem;display:flex}.checkbox-card input{width:auto;min-height:auto}.expense-form{gap:1.25rem}.group-header-actions{flex-direction:column;align-items:flex-end;gap:.75rem;display:flex}.invite-details{gap:.5rem;margin-top:.5rem;display:grid}.invite-link-row code{word-break:break-all}.member-list{gap:.75rem}.hover-dismissible{position:relative}.hover-dismissible--inline{align-items:center;gap:.2rem;display:inline-flex}.hover-remove-btn{color:#b42318;cursor:pointer;z-index:1;background:#fff5f5;border:1px solid #f2c6c2;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.65rem;height:1.65rem;padding:0;font-size:1.15rem;font-weight:700;line-height:1;transition:opacity .15s,visibility .15s;display:inline-flex}.hover-remove-btn:disabled{cursor:not-allowed;opacity:.45}.hover-dismissible .hover-remove-btn{position:absolute;top:.5rem;right:.5rem}.hover-dismissible--inline{padding-right:.35rem}.hover-dismissible--inline .hover-remove-btn{position:absolute;top:50%;right:.2rem;transform:translateY(-50%)}.hover-dismissible.expense-card{padding-right:2.5rem}.group-title-dismissible{max-width:820px;margin:.25rem 0 .65rem;padding-right:2rem;display:inline-block}.group-title-dismissible h1{margin:0}.expense-card-actions{flex-direction:column;align-items:flex-end;gap:.75rem;display:flex}.expense-card-editing .section-heading h3{margin:0;font-size:1.05rem}.expense-card-edit-meta{flex:1}.expense-card-edit-actions{justify-content:flex-end;gap:.75rem;display:flex}.participant-chip-list{flex-wrap:wrap;gap:.4rem;margin-top:.45rem;display:flex}.participant-chip{font-size:.85rem}@media (hover:hover){.hover-remove-btn{display:none}.hover-dismissible:hover .hover-remove-btn,.hover-dismissible:focus-within .hover-remove-btn,.hover-remove-btn:focus-visible{display:inline-flex}}@media (hover:none){.hover-remove-btn{display:inline-flex}}.narrow-panel{max-width:520px}.dialog-backdrop{z-index:1000;background:#11182773;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog-panel{background:#fff;border:1px solid #dce3ec;border-radius:12px;gap:1rem;width:100%;max-width:420px;padding:1.25rem;display:grid;box-shadow:0 18px 40px #1118272e}.dialog-panel h3{margin:0}.dialog-panel p{color:#607083;margin:0}.dialog-actions{justify-content:flex-end;gap:.75rem;display:flex}@media (width<=880px){.app-shell,.dashboard-grid,.details-grid,.summary-grid,.form-grid.two{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #dce3ec;border-right:0}.sidebar-note{margin-top:0}.main-content{padding:1rem}.page-hero,.group-header,.group-header-actions,.dialog-actions,.section-heading.with-action,.expense-card-header,.expense-item-row,.form-actions{flex-direction:column;align-items:stretch}.item-money{text-align:left;justify-items:start}}.sidebar-groups{border-top:1px solid #eef2f7;margin-top:1.5rem;padding-top:1.5rem}.sidebar-title{color:#8c9ba5;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.75rem;padding-left:.5rem;font-size:.75rem;font-weight:800}.sidebar-empty{color:#8c9ba5;padding-left:.5rem;font-size:.85rem;font-style:italic}.sidebar-links{gap:.35rem;display:grid}.sidebar-link{color:#4a5568;border-radius:8px;align-items:center;gap:.5rem;padding:.55rem .75rem;font-size:.9rem;font-weight:600;transition:all .15s;display:flex}.sidebar-link:hover{color:#1a202c;background:#f7fafc}.sidebar-link.active{color:#16624e;background:#eef8f5;font-weight:700}.sidebar-icon{font-size:1rem}.compact-hero{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex;padding:1.25rem 1.5rem!important}.page-hero-content h1{color:#1d2733;margin:0 0 .25rem!important;font-size:1.5rem!important}.page-hero-content p{color:#607083;margin:0;font-size:.9rem!important}.page-hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-bottom:.5rem;display:grid}.summary-card.stat-card{border-left:4px solid #1f6f5b;padding:1.25rem;position:relative;overflow:hidden}.dashboard-layout{grid-template-columns:2fr 1fr;align-items:start;gap:1.5rem;display:grid}.rich-group-card{flex-direction:column;justify-content:space-between;height:100%;transition:transform .2s,box-shadow .2s;display:flex;padding:1.5rem!important}.rich-group-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #23304614}.group-card-header h3{color:#1d2733;margin:0 0 .5rem;font-size:1.25rem}.group-card-body{border-top:1px solid #f0f4f8;border-bottom:1px solid #f0f4f8;grid-template-columns:repeat(2,1fr);gap:1rem;margin:.75rem 0 1.25rem;padding:1rem 0;display:grid}.group-card-stat{flex-direction:column;display:flex}.stat-label{color:#607083;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:700}.stat-value{color:#1d2733;margin-top:.15rem;font-size:1.2rem;font-weight:800}.group-card-actions .button{width:100%}.modal-panel{gap:1.25rem!important;max-width:480px!important}.modal-header{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.modal-header h3{color:#1d2733;margin:0;font-size:1.25rem}.close-button{color:#8c9ba5;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;font-weight:600;line-height:1;transition:color .15s}.close-button:hover{color:#b42318}.modal-footer{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}@media (width<=880px){.dashboard-layout{grid-template-columns:1fr}.compact-hero{flex-direction:column;align-items:stretch;gap:1rem}.page-hero-actions{flex-direction:column}.page-hero-actions .button{width:100%}.stats-grid{grid-template-columns:1fr}}
