*,:before,:after{box-sizing:border-box}body{color:#1c2733;background:#f6f8fa;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.layout{max-width:1100px;margin:0 auto;padding:0 16px 48px}.topnav{border-bottom:1px solid #dde3ea;align-items:center;gap:20px;margin-bottom:24px;padding:14px 0;display:flex}.topnav .brand{margin-right:8px;font-weight:600}.topnav a{color:#33526e;padding:4px 2px;text-decoration:none}.topnav a.active{color:#0d64c8;border-bottom:2px solid #0d64c8}.topnav .linklike{margin-left:auto}.linklike{color:#33526e;cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.linklike:hover{color:#0d64c8}main h2{margin:28px 0 12px;font-size:1.15rem}.card{background:#fff;border:1px solid #dde3ea;border-radius:8px;padding:16px}form input,form select,form textarea{font:inherit;border:1px solid #c3ccd6;border-radius:6px;padding:8px 10px}form button[type=submit]{color:#fff;font:inherit;cursor:pointer;background:#0d64c8;border:none;border-radius:6px;padding:8px 16px}form button[type=submit]:hover{background:#0a54a8}table{border-collapse:collapse;background:#fff;border:1px solid #dde3ea;border-radius:8px;width:100%}th,td{text-align:left;border-bottom:1px solid #e8edf2;padding:8px 12px}tbody tr:last-child td{border-bottom:none}.error{color:#c62828;margin:8px 0}.dashboard-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.period-switch{gap:4px;display:flex}.period{font:inherit;cursor:pointer;background:#fff;border:1px solid #c3ccd6;border-radius:6px;padding:6px 14px}.period.active{color:#fff;background:#0d64c8;border-color:#0d64c8}.export-buttons{gap:8px;display:flex}.button-secondary{color:#33526e;font:inherit;cursor:pointer;background:#fff;border:1px solid #c3ccd6;border-radius:6px;padding:6px 14px;text-decoration:none;display:inline-block}.button-secondary:disabled{opacity:.5;cursor:default}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:8px;display:grid}.stat-card{flex-direction:column;gap:4px;display:flex}.stat-label{color:#7a8794;font-size:.8rem}.stat-value{font-size:1.5rem;font-weight:600}.stat-unit{color:#7a8794;font-size:.8rem}.entry-form .entry-fields{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.entry-form label{color:#4a5866;flex-direction:column;gap:4px;font-size:.85rem;display:flex}.entry-form input[type=number]{width:110px}.table-filter{width:280px;font:inherit;border:1px solid #c3ccd6;border-radius:6px;margin-bottom:10px;padding:8px 10px}table .num{width:70px}td.actions{white-space:nowrap}td.actions .linklike{margin-right:10px}.footer{color:#7a8794;text-align:center;margin-top:40px;font-size:.8rem}.group-modal-backdrop{z-index:100;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.group-modal{background:#fff;border-radius:10px;width:90%;max-width:460px;max-height:80vh;padding:18px 20px;overflow-y:auto;box-shadow:0 8px 30px #00000040}.group-modal-head{justify-content:space-between;align-items:center;font-size:1.1rem;display:flex}.group-modal-sub{color:#7a8794;margin:6px 0 10px;font-size:.85rem}.group-modal-table{border:none}.group-modal-table td{border-bottom:1px solid #eef1f4;padding:6px 10px 6px 0}.chat-fab{color:#fff;font:inherit;cursor:pointer;background:#0d64c8;border:none;border-radius:999px;padding:10px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 2px 10px #0003}.chat-panel{background:#fff;border:1px solid #dde3ea;border-radius:10px;flex-direction:column;width:360px;height:480px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 6px 24px #0000002e}.chat-header{border-bottom:1px solid #e8edf2;justify-content:space-between;align-items:center;padding:10px 14px;font-weight:600;display:flex}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.chat-msg{white-space:pre-wrap;word-break:break-word;border-radius:10px;max-width:85%;padding:8px 12px}.chat-user{background:#d8e9fb;align-self:flex-end}.chat-assistant{background:#eef1f4;align-self:flex-start}.chat-input{border-top:1px solid #e8edf2;gap:8px;padding:10px;display:flex}.chat-input input{flex:1}.chat-input button{color:#fff;font:inherit;cursor:pointer;background:#0d64c8;border:none;border-radius:6px;padding:8px 14px}.chat-input button:disabled{opacity:.5}.login-card{text-align:center;background:#fff;border:1px solid #dde3ea;border-radius:8px;max-width:340px;margin:12vh auto 0;padding:28px}.login-card h1{margin:0 0 20px;font-size:1.3rem}.login-card form{flex-direction:column;gap:12px;display:flex}
