:root{--bg:#edf3fb;--card:#fff;--text:#13213c;--muted:#71809a;--line:#dce6f2;--primary:#2457d6;--primary2:#173d8f;--accent:#18a67d;--violet:#7457d9;--orange:#f28b45;--danger:#c43737;--good:#087f5b;--warn:#bd6514;--radius:20px;--shadow:0 12px 34px rgba(32,61,112,.11)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:radial-gradient(circle at 7% 0,#dce8ff 0,transparent 27%),radial-gradient(circle at 94% 12%,#dff8ef 0,transparent 25%),linear-gradient(180deg,#f2f6fd,#eaf1fa);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.layout{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#173d8f,#10285f);color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;margin:0 6px 24px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#fff;color:#2457d6;font-weight:900}.brand small,.sidebar-user small{display:block;color:#b8c9ee;font-size:12px}.nav{display:grid;gap:4px}.nav button{display:flex;align-items:center;gap:11px;width:100%;background:transparent;color:#c0cff0;border:0;padding:11px 12px;border-radius:12px;font-weight:650}.nav button.active,.nav button:hover{background:rgba(255,255,255,.14);color:#fff}.main{padding:30px 34px 50px;min-width:0;max-width:1500px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:16px}.page-heading h1{margin:2px 0 0;font-size:30px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#6e7f9c;font-weight:850}.top-actions{display:flex;gap:10px;align-items:center}.top-actions input,.badge{border:1px solid #d5e0ef;background:rgba(255,255,255,.9);box-shadow:0 5px 16px rgba(40,69,120,.07)}.top-actions input{border-radius:13px;padding:9px 12px}.badge{padding:8px 12px;border-radius:999px;font-size:13px}.card,.utility-card,.report-card,.report-hero,.chat-shell,.member-clean-card{background:rgba(255,255,255,.96);border:1px solid rgba(207,220,237,.95);border-radius:var(--radius);box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{display:flex;align-items:center;gap:14px;min-height:118px;padding:18px}.kpi-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:14px;background:#eaf0ff;color:#2457d6;font-weight:900}.kpi .label{color:var(--muted);font-size:13px}.kpi .value{font-size:27px;font-weight:850}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:28px 0 12px}.section-head h2{margin:2px 0 0;font-size:22px}.btn{border:1px solid transparent;border-radius:12px;padding:10px 14px;background:#eaf0f7;color:#344765;font-weight:750}.btn.primary{background:linear-gradient(135deg,#2e67e7,#173d8f);color:#fff;box-shadow:0 7px 18px rgba(36,87,214,.22)}.btn.danger{background:#fff0f0;color:var(--danger)}.btn.good{background:#eafaf4;color:var(--good)}.btn:disabled{opacity:.45}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}th,td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);background:#f3f7fc}.pill{padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}.pill.advance{background:#e9faf4;color:#087f5b}.pill.due{background:#fff1e8;color:#b95b18}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field label,.field legend{display:block;font-size:12px;font-weight:750;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea,.select-button{width:100%;padding:11px 12px;border:1px solid #d8e1ee;border-radius:12px;background:#fff;color:var(--text)}.actions{display:flex;gap:8px;flex-wrap:wrap}.modal-wrap{position:fixed;inset:0;background:rgba(17,34,68,.54);display:grid;place-items:center;padding:22px;z-index:40;backdrop-filter:blur(6px)}.modal{background:#fff;width:min(760px,100%);max-height:90vh;overflow:auto;border-radius:24px;padding:22px;box-shadow:0 28px 90px rgba(17,34,68,.28)}.modal-title{display:flex;align-items:center;justify-content:space-between}.icon-btn{width:38px;height:38px;border:0;border-radius:12px;background:#edf2f8;font-size:22px}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:26px}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(420px,100%);padding:22px}.notice{background:#fff5e9;color:#985111;padding:11px 13px;border-radius:12px}.mobilebar{display:none}.sidebar-foot{position:absolute;bottom:20px;left:16px;right:16px}.sidebar-foot>.btn{width:100%;margin-top:10px;background:rgba(255,255,255,.12);color:#fff}.avatar,.chat-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#dfe9ff,#dff8ef);color:#2457d6;font-weight:900}.full{width:100%}.gap-top{margin-top:14px}.table-wrap{overflow:auto}.toast{position:fixed;right:18px;bottom:18px;padding:12px 16px;border-radius:13px;background:#8e2b2b;color:#fff;z-index:70}.toast.success{background:#087f5b}.mobile-summary{display:none}.member-summary-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:var(--shadow)}.member-summary-head{display:flex;align-items:center;gap:10px}.member-summary-head>div:nth-child(2){flex:1}.member-summary-head small{display:block;color:var(--muted)}.member-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.member-summary-grid span,.member-summary-grid b{display:block}.member-summary-grid span{font-size:11px;color:var(--muted)}.bazar-entry-list,.utility-list,.report-list,.member-clean-list{display:grid;gap:14px}.bazar-entry{padding:0;overflow:hidden}.bazar-entry-head,.utility-top{display:flex;justify-content:space-between;align-items:center;padding:17px 18px}.entry-total,.utility-amount{text-align:right}.entry-total span,.utility-amount span{font-size:12px;color:var(--muted)}.entry-total b,.utility-amount b{display:block;font-size:21px}.bazar-read-list{padding:4px 18px}.bazar-read-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid #edf1f6;gap:12px}.bazar-read-row>div:first-child b{font-size:16px}.price-breakdown{display:grid;grid-template-columns:auto auto;gap:2px 10px;text-align:right;align-items:baseline}.price-breakdown small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8491a6}.price-breakdown span{font-size:13px;color:#536681}.price-breakdown strong{font-size:18px;color:#173d8f}.entry-actions{display:flex;gap:8px;padding:13px 18px;background:#f5f8fc;border-top:1px solid var(--line)}.utility-card{overflow:hidden}.utility-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#eaf0ff;font-size:21px;margin-right:12px}.utility-title{flex:1}.split-banner{margin:0 18px 14px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#e7efff,#e2f8ef);display:flex;justify-content:space-between}.member-chip-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 16px}.member-chip{display:flex;align-items:center;gap:7px;border:1px solid #dfe7f1;border-radius:999px;padding:6px 9px;background:#fff;font-size:12px}.report-hero{padding:20px;background:linear-gradient(135deg,#173d8f,#2e67e7);color:#fff;display:flex;justify-content:space-between}.report-card{padding:17px}.report-person{display:flex;align-items:center;gap:11px}.report-person>div:nth-child(2){flex:1}.report-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.report-mini span{background:#eef4fb;padding:10px;border-radius:13px}.report-actions{display:flex;gap:8px;flex-wrap:wrap}.chat-shell{overflow:hidden}.chat-head{padding:20px;background:linear-gradient(135deg,#e4edff,#e2f9f0)}.chat-messages{height:min(58vh,560px);overflow:auto;padding:18px;display:grid;align-content:start;gap:12px}.chat-row{display:flex;gap:9px;max-width:82%}.chat-row.mine{margin-left:auto;flex-direction:row-reverse}.chat-bubble{background:#eef3f9;border-radius:5px 17px 17px 17px;padding:10px 12px}.chat-row.mine .chat-bubble{background:#dce8ff}.chat-compose{display:flex;gap:9px;padding:12px;border-top:1px solid var(--line);background:#fff}.chat-compose textarea{flex:1;border:1px solid #d9e2ef;border-radius:14px;padding:11px}.sheet-backdrop{position:fixed;inset:0;background:rgba(17,34,68,.5);z-index:60;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(5px)}.action-sheet{background:#fff;width:min(560px,100%);border-radius:26px 26px 0 0;padding:10px 18px calc(18px + env(safe-area-inset-bottom));max-height:78vh;overflow:auto}.sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.sheet-grid button,.choice-chip{border:1px solid var(--line);background:#f8fbff;border-radius:15px;padding:14px 8px;color:var(--text)}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.choice-chip.selected{border-color:#2457d6;background:#e8efff;color:#173d8f}.bazar-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pro-item{border:1px solid var(--line);border-radius:18px;padding:15px;margin-bottom:12px;background:linear-gradient(180deg,#fbfdff,#f3f7fc)}.item-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.item-card-head .item-no{display:none}.item-money-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr 1fr;gap:10px;align-items:end;margin-top:11px}.line-total{background:linear-gradient(135deg,#e6eeff,#e2f8ef);border-radius:12px;padding:9px 11px;min-height:62px}.line-total span,.line-total b{display:block}.line-total b{font-size:18px;color:#173d8f}.hidden{display:none!important}.bazar-footer{position:sticky;bottom:-22px;margin:20px -22px -22px;padding:15px 22px calc(15px + env(safe-area-inset-bottom));background:#f7faff;border-top:1px solid var(--line);display:flex;justify-content:space-between}.member-clean-card{padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.member-identity{display:flex;align-items:center;gap:12px;flex:1;border:0;background:transparent;text-align:left;color:var(--text);padding:3px}.member-identity b,.member-identity small{display:block}.member-identity b{font-size:17px}.member-identity small{font-size:11px;color:var(--muted);margin-top:3px}.member-photo{width:48px;height:48px;border-radius:16px;object-fit:cover;display:grid;place-items:center}.member-photo.fallback{background:linear-gradient(135deg,#dbe7ff,#dff8ef);color:#2457d6;font-weight:900}.member-admin-actions{display:flex;gap:7px}.profile-popup{display:grid;grid-template-columns:100px 1fr;gap:20px;margin-top:20px}.profile-photo .member-photo{width:96px;height:96px;border-radius:26px}.profile-info{display:grid;gap:9px}.profile-info>div{padding:10px 12px;border-radius:12px;background:#f2f6fb}.profile-info span,.profile-info b{display:block}.profile-info span{font-size:10px;color:var(--muted);text-transform:uppercase}.photo-picker{display:flex;align-items:center;gap:10px;padding:13px;background:linear-gradient(135deg,#edf3ff,#eafaf5);border-radius:16px;margin:15px 0}.photo-picker small{color:var(--muted)}.meal-legend{display:flex;gap:12px;font-size:11px;color:var(--muted)}.meal-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.meal-dot.eating{background:#18a67d}.meal-dot.skip{background:#a8b4c5}.meal-choice{min-width:78px;border:1px solid transparent;border-radius:14px;padding:8px 9px;display:grid;gap:2px;place-items:center;font-size:11px;font-weight:800}.meal-choice span{font-size:17px}.meal-choice.eating{background:linear-gradient(135deg,#e0f8ef,#d5f2e7);color:#087f5b;border-color:#c7ebde}.meal-choice.skip{background:#edf1f6;color:#71809a;border-color:#e0e6ee}.meal-choice:disabled{opacity:.8}.meal-table th{text-align:center}.meal-table th:first-child,.meal-table td:first-child{text-align:left;position:sticky;left:0;background:#f8fbff;z-index:1}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:none}.main{padding:18px 16px calc(96px + env(safe-area-inset-bottom));max-width:760px}.topbar{align-items:flex-start}.page-heading h1{font-size:27px}.top-actions{display:grid;justify-items:end}.top-actions input{width:142px}.kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi{min-height:104px;padding:14px}.mobilebar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));background:linear-gradient(135deg,#19469f,#102e70);padding:7px;border-radius:20px;z-index:30;box-shadow:0 16px 40px rgba(20,55,125,.32)}.mobilebar button{display:grid;place-items:center;gap:3px;background:transparent;border:0;color:#b8c9ee;padding:8px 4px;border-radius:13px;font-size:10px;font-weight:750}.mobilebar button.active{color:#fff;background:rgba(255,255,255,.16)}.form-grid{grid-template-columns:1fr}.desktop-summary{display:none}.mobile-summary{display:grid;gap:10px}.modal-wrap{align-items:end;padding:0}.modal{width:100%;max-height:92vh;border-radius:26px 26px 0 0;padding:20px 16px calc(18px + env(safe-area-inset-bottom))}.item-money-grid{grid-template-columns:1fr 1fr}.member-clean-card{padding:12px}.member-admin-actions{display:grid}.toast{bottom:calc(96px + env(safe-area-inset-bottom));left:10px;right:10px}.profile-popup{grid-template-columns:76px 1fr}.profile-photo .member-photo{width:72px;height:72px;border-radius:20px}.meal-head{align-items:flex-start}.meal-legend{display:grid;gap:4px}.meal-table-wrap{border-radius:18px;box-shadow:var(--shadow)}}
@media(max-width:520px){.main{padding-left:12px;padding-right:12px}.page-heading h1{font-size:25px}.kpi .value{font-size:22px}.section-head h2{font-size:21px}.member-summary-grid{grid-template-columns:1fr 1fr}.report-mini{grid-template-columns:1fr 1fr 1fr}.report-actions{display:grid;grid-template-columns:repeat(3,1fr)}.report-actions .btn{padding:10px 5px}.bazar-read-row{align-items:center}.member-clean-card{border-radius:18px}.member-identity .member-photo{width:44px;height:44px;border-radius:14px}.member-admin-actions .btn{padding:8px 10px;font-size:11px}}
