*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f5f6f8;color:#17202a}aside{position:fixed;left:0;top:0;bottom:0;width:230px;background:#1F497D;color:#fff;padding:24px 16px}.brand{font-weight:800;font-size:19px;letter-spacing:.08em;padding:8px 10px 30px}.brand span{font-weight:400;color:#94a3b8}nav a{display:block;color:#cbd5e1;text-decoration:none;padding:11px 12px;border-radius:8px;margin:3px 0}nav a:hover{background:#476A94;color:#fff}main{margin-left:230px;padding:0 34px 50px}header{height:78px;display:flex;align-items:center;justify-content:space-between}header form{width:520px}header input{width:100%;padding:12px 15px;border:1px solid #d8dde5;border-radius:9px;background:#fff}.date{color:#64748b;font-size:13px}h1{font-size:28px;margin:8px 0 4px}h2{font-size:18px;margin:0 0 16px}.muted{color:#6b7280}.grid{display:grid;gap:14px}.cards{grid-template-columns:repeat(6,minmax(130px,1fr));margin:24px 0}.card{background:#fff;border:1px solid #e4e7ec;border-radius:12px;padding:18px;min-height:100px}.card small{display:block;color:#64748b;margin-bottom:12px}.card strong{font-size:22px}.card.warn{border-left:4px solid #d97706}.card.danger{border-left:4px solid #dc2626}.panel{background:#fff;border:1px solid #e4e7ec;border-radius:12px;padding:20px;margin:18px 0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:10px 0}.btn{display:inline-block;border:1px solid #d1d5db;background:#fff;color:#17202a;text-decoration:none;border-radius:8px;padding:10px 14px;cursor:pointer}.btn.primary{background:#1F497D;color:#fff;border-color:#1F497D}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #edf0f3;font-size:14px}th{color:#64748b;font-weight:600}a{color:#334e68}.pill{display:inline-block;padding:4px 8px;border-radius:99px;background:#eef2f7;font-size:12px}.form label{display:block;font-size:13px;font-weight:600;color:#374151}.form input,.form select,.form textarea,.inline-search input{width:100%;margin-top:7px;padding:10px 11px;border:1px solid #d1d5db;border-radius:7px;background:#fff;font:inherit}.form textarea{min-height:90px}.form button{margin-top:8px}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two .full,.form>label:has(textarea){grid-column:1/-1}.inline-search{display:flex;gap:8px;margin:16px 0}.inline-search input{max-width:420px;margin:0}.inline-search button{padding:10px 16px;border:1px solid #d1d5db;background:#fff;border-radius:7px}.flash{padding:12px 14px;border-radius:8px;margin:10px 0}.flash.ok{background:#e8f7ee;color:#17633a}.flash.error{background:#fdecec;color:#8b1e1e}.empty{text-align:center;color:#9ca3af;padding:30px}.overdue{background:#fff4f4}.linkbtn{border:0;background:none;color:#2563eb;cursor:pointer;padding:0}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;color:#374151}.detail-grid b{color:#64748b;font-size:12px}.detail-grid br+*{line-height:1.6}@media(max-width:1000px){aside{width:190px}main{margin-left:190px}.cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){aside{position:static;width:auto}main{margin-left:0;padding:0 16px}.cards,.two,.detail-grid{grid-template-columns:1fr}header form{width:70%}table{display:block;overflow:auto}}
.actions{display:flex;gap:10px;align-items:center}.danger-link{color:#b91c1c}.actions form{display:inline;margin:0}.actions .linkbtn{font:inherit}
.user-box{display:flex;align-items:center;gap:14px}.user-box .logout-form{margin:0}.user-name{color:#334e68;font-weight:600;font-size:14px}
.party-row{border:1px solid #e4e7ec;border-radius:8px;padding:14px 14px 4px;margin-bottom:12px}.party-row .remove-party-row{margin-top:7px;font-size:12px;display:inline-block}
.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;background:#eef2f7;border-radius:99px;padding:6px 6px 6px 12px;font-size:13px;color:#334155}.chip form{margin:0;display:inline-flex}.chip-remove{border:0;background:#dbe2ea;color:#475569;border-radius:50%;width:20px;height:20px;line-height:1;cursor:pointer;font-size:14px;padding:0}.chip-remove:hover{background:#fecaca;color:#991b1b}
details.collapsible summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;user-select:none}details.collapsible summary::-webkit-details-marker{display:none}details.collapsible summary h2{margin:0;display:inline}details.collapsible summary::before{content:'▸';color:#1F497D;font-size:13px;transition:transform .15s}details.collapsible[open] summary::before{transform:rotate(90deg)}details.collapsible .count-badge{font-size:12px;background:#eef2f7;border-radius:99px;padding:3px 10px}details.collapsible[open]{padding-bottom:18px}details.collapsible>p{margin-top:10px}
.inline-add{display:flex;gap:8px;margin:10px 0 14px;max-width:420px}.inline-add input{flex:1}
.chip-edit{border:0;background:transparent;color:#1F497D;cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.chip-edit:hover{color:#476A94}
.party-stack{display:flex;flex-direction:column;gap:8px;margin-top:6px}.party-row-compact{display:flex;align-items:center;justify-content:space-between;border:1px solid #e4e7ec;border-radius:8px;padding:10px 14px}.party-link{color:#111827;text-decoration:none;display:flex;align-items:center;gap:10px}.party-link:hover b{text-decoration:underline}
.alert-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fef3c7;border:1px solid #f59e0b;border-left:5px solid #f59e0b;border-radius:8px;padding:12px 16px;margin:0 0 18px;color:#78350f}.alert-banner a{color:#78350f;font-weight:700}.alert-banner form{margin:0}.alert-dismiss{border:0;background:transparent;color:#92400e;font-size:20px;cursor:pointer;line-height:1;padding:0 4px}.alert-dismiss:hover{color:#451a03}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f6f8;padding:20px}.auth-card{width:100%;max-width:380px}.auth-card .brand{font-weight:800;font-size:20px;letter-spacing:.06em;text-align:center;margin-bottom:22px;color:#1F497D}.auth-card .muted-small{color:#6b7280;font-size:13px;text-align:center;margin-top:14px}.auth-card .muted-small a{color:#1F497D;font-weight:600}
.tabs{display:flex;gap:6px;border-bottom:1px solid #ddd;margin:0 0 18px;flex-wrap:wrap}.tab{padding:10px 14px;text-decoration:none;border-radius:7px 7px 0 0;color:#555}.tab:hover{background:#e2e8f0}.tab.active{background:#fff;border:1px solid #ddd;border-bottom-color:#fff;color:#111;font-weight:600;margin-bottom:-1px}
