*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif}button,input,select{font:inherit}:root{--primary:#4f46e5;--primary-dark:#4338ca;--primary-light:#e0e7ff;--secondary:#7c3aed;--accent:#06b6d4;--bg:#f8fafc;--surface:#fff;--surface-hover:#f1f5f9;--text:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius:12px;--radius-sm:8px;--success:#10b981;--danger:#ef4444}body{background:var(--bg);color:var(--text)}body,button,input,select{-webkit-tap-highlight-color:transparent}.app-loading{min-height:100vh;color:var(--text-secondary);text-align:center;place-items:center;padding:24px;font-size:1.125rem;display:grid}.app-loading-error h1{color:var(--text);margin:0 0 12px;font-size:1.75rem}.app-loading-error p{max-width:420px;margin:0 0 18px}.login-screen{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card,.card,.section-card,.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.login-card{width:100%;max-width:440px;padding:40px}.login-logo{text-align:center;margin-bottom:8px}.login-logo h1,.brand{background:linear-gradient(90deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.login-logo h1{font-size:2rem;font-weight:800}.login-desc,.page-subtitle,.help-text,.muted,.user-login{color:var(--text-secondary)}.login-desc{text-align:center;margin-bottom:24px}.form-group{margin-bottom:16px}.form-group label{margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-control{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font:inherit;background:#fff;padding:12px 14px}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.btn,.text-button,.radio-option{font:inherit}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 18px;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:8px 12px;font-size:.875rem}.text-button{color:var(--primary);cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:700}.alert{border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 14px;font-size:.875rem}.alert.error,.app-error-banner{color:#991b1b;background:#fee2e2}.login-footer{text-align:center;margin-top:20px}.app-header{z-index:5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.brand{font-size:1.5rem;font-weight:800}.brand-button{cursor:pointer;background:0 0;border:0;padding:0}.brand-button:hover{opacity:.85}.brand-button:focus-visible{outline:3px solid var(--primary-light);outline-offset:4px;border-radius:6px}.user{align-items:center;gap:12px;min-width:0;display:flex}.avatar{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-radius:999px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.avatar-sm{width:32px;height:32px;font-size:.75rem}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-weight:700;overflow:hidden}.user-login-row{align-items:center;gap:6px;min-height:22px;display:flex}.user-login{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.copy-login-button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;transition:all .2s;display:inline-grid}.copy-login-button:hover{color:var(--primary);background:var(--primary-light)}.copy-login-button.copied{color:var(--success);background:#d1fae5}.copy-login-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.app-error-banner{border-radius:var(--radius-sm);max-width:960px;margin:20px auto 0;padding:12px 16px}.main-screen,.topic-screen{max-width:960px;margin:0 auto;padding:24px}.page-header,.topic-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-title,.topic-header h2{margin:0 0 6px;font-size:1.75rem;font-weight:800}.topics-grid,.balance-grid{gap:16px;display:grid}.topics-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.balance-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.topic-card,.balance-card,.debt-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.topic-card{cursor:pointer;padding:20px;transition:all .2s}.topic-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary);transform:translateY(-2px)}.topic-card .title,.section-title{overflow-wrap:anywhere;font-size:1rem;font-weight:800}.topic-card .meta,.topic-card .summary{color:var(--text-secondary);margin-top:8px}.my-position{border-top:1px solid var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;display:flex}.my-position strong{color:var(--text);text-align:right}.my-position strong.positive{color:var(--success)}.my-position strong.negative{color:var(--danger)}.topic-card .actions{margin-top:16px}.section-card{box-shadow:var(--shadow);margin-bottom:20px;padding:20px}.members-list{flex-wrap:wrap;gap:12px;display:flex}.member-chip{background:var(--bg);border:1px solid var(--border);border-radius:999px;align-items:center;gap:10px;min-width:0;padding:8px 14px 8px 8px;display:flex}.member-chip .name{overflow-wrap:anywhere;font-weight:700}.balance-card{padding:16px}.balance-card .who{color:var(--text-secondary);margin-bottom:6px}.amount{font-size:1.25rem;font-weight:800}.amount.positive{color:var(--success)}.amount.negative{color:var(--danger)}.debts-list{flex-direction:column;gap:10px;display:flex}.debt-item{justify-content:space-between;gap:16px;padding:14px 16px;display:flex}.debt-text{color:var(--text-secondary)}.debt-amount{font-weight:800}.debt-amount.owe{color:var(--danger)}.expenses-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.expenses-table{border-collapse:collapse;width:100%;min-width:700px}.expenses-table th,.expenses-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px}.expenses-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.expense-comment,.expense-amount{font-weight:700}.expense-date,.expense-payer,.expense-split{color:var(--text-secondary)}.expense-actions{gap:8px;display:flex}.empty-state{text-align:center;padding:48px 24px}.empty-state.inline{text-align:left;padding:12px 0 0}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#0f172a80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 40px);display:flex;overflow:hidden}.modal-wide{max-width:760px}.modal-header,.modal-footer{justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.modal-header{border-bottom:1px solid var(--border)}.modal-body{-webkit-overflow-scrolling:touch;padding:22px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end}.modal-close{cursor:pointer;background:0 0;border:0;font-size:1.5rem}.checkbox-list,.split-rows{flex-direction:column;gap:10px;display:flex}.checkbox-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);align-items:center;gap:10px;padding:10px 12px;display:flex}.radio-group{gap:10px;display:flex}.radio-option{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:#fff;min-height:42px;padding:10px 14px}.radio-option.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark);font-weight:700}.split-row{grid-template-columns:1fr 140px;align-items:center;gap:12px;display:grid}@media (width<=760px){.app-header{align-items:flex-start;padding:12px 16px}.brand{font-size:1.25rem}.user{grid-template-columns:36px minmax(0,1fr) auto;gap:10px;width:100%;display:grid}.avatar{width:36px;height:36px;font-size:.875rem}.user-name,.user-login{max-width:100%}.page-header,.topic-header{flex-direction:column;align-items:stretch}.topic-header h2{order:-1}.topic-actions{grid-template-columns:1fr;gap:10px;display:grid}.main-screen,.topic-screen{padding:16px}.page-title,.topic-header h2{font-size:1.5rem}.page-header .btn,.topic-header .btn,.topic-actions .btn,.modal-footer .btn{width:100%}.topics-grid,.balance-grid{grid-template-columns:1fr}.topic-card,.section-card{border-radius:var(--radius-sm)}.login-card{padding:28px 20px}.form-grid{grid-template-columns:1fr}.members-list{flex-direction:column}.member-chip{width:100%}.debt-item{flex-direction:column;gap:6px}.expenses-table-wrap{overflow-x:visible}.expenses-table,.expenses-table thead,.expenses-table tbody,.expenses-table tr,.expenses-table th,.expenses-table td{display:block}.expenses-table{min-width:0}.expenses-table thead{display:none}.expenses-table tr{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-top:12px;padding:14px}.expenses-table td{border-bottom:0;grid-template-columns:minmax(92px,36%) minmax(0,1fr);gap:10px;padding:8px 0;display:grid}.expenses-table td:before{color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;font-weight:700}.expenses-table td:first-child:before{content:"Дата"}.expenses-table td:nth-child(2):before{content:"Комментарий"}.expenses-table td:nth-child(3):before{content:"Сумма"}.expenses-table td:nth-child(4):before{content:"Оплатил"}.expenses-table td:nth-child(5):before{content:"Участники"}.expenses-table td:nth-child(6){padding-top:12px;display:block}.expenses-table td:nth-child(6):before{content:none}.expense-actions{grid-template-columns:1fr 1fr;display:grid}.expense-actions .btn{width:100%}.modal-overlay{align-items:flex-end;padding:0}.modal{border-bottom:0;border-left:0;border-right:0;border-radius:16px 16px 0 0;max-width:none;max-height:92vh}.modal-header,.modal-footer,.modal-body{padding:16px}.modal-footer{grid-template-columns:1fr;display:grid}.radio-group{grid-template-columns:1fr 1fr;display:grid}.split-row{grid-template-columns:1fr}}@media (width<=420px){.app-header{gap:10px}.user{grid-template-columns:32px minmax(0,1fr)}.user>.btn{grid-column:1/-1}.avatar{width:32px;height:32px}.main-screen,.topic-screen{padding:12px}.section-card,.topic-card{padding:16px}.expenses-table td{grid-template-columns:1fr;gap:4px}.expense-actions{grid-template-columns:1fr}}
