@charset "UTF-8";:root{--primary: #0f766e;--primary-600: #0d6a63;--primary-700: #115e59;--primary-50: #e9f5f2;--primary-100: #cfe9e4;--ink: #0f172a;--ink-2: #334155;--muted: #5b6b7f;--bg: #f1f6f3;--bg-deep: #e6eee9;--surface: #ffffff;--border: #d9e3dd;--border-strong: #b8c7be;--sand: #e9c46a;--sand-50: #fbf4e3;--sand-700: #8a5a0b;--success: #15803d;--success-50: #e7f5ec;--danger: #b42318;--danger-50: #fdeceb;--warn: #92560a;--warn-50: #fdf3dc;--info: #0b6aa2;--info-50: #e5f2fa;--side-bg: #0c2b29;--side-ink: #cfe3df;--side-ink-strong: #ffffff;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow: 0 6px 20px -8px rgba(15, 23, 42, .18), 0 1px 3px rgba(15, 23, 42, .06);--shadow-lg: 0 24px 60px -20px rgba(15, 23, 42, .45);--font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, "Times New Roman", serif;--focus: 0 0 0 3px rgba(15, 118, 110, .35);--side-width: 260px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;line-height:1.2;margin:0;color:var(--ink)}h1{font-size:1.85rem}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:0}a{color:var(--primary-700);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--primary)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:.75rem;top:-4rem;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:var(--radius-sm);z-index:200}.skip-link:focus{top:.75rem}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.text-right{text-align:right}.pos{color:var(--success)}.neg{color:var(--danger)}.nowrap{white-space:nowrap}.stack{display:flex;flex-direction:column;gap:1rem}.stack-lg{display:flex;flex-direction:column;gap:1.5rem}.row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.grow{flex:1 1 auto}.grid-2,.grid-3,.grid-4{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.page{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-header .titles{display:flex;flex-direction:column;gap:.25rem;min-width:0}.page-header .subtitle{color:var(--muted);max-width:62ch}.page-header .actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.back-link{display:inline-flex;align-items:center;gap:.2rem;font-size:.85rem;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--primary-700)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel-pad{padding:1.25rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-wrap:wrap}.panel-head h2,.panel-head h3{font-size:1.05rem}.panel-body{padding:1.25rem}.section-title{font-family:var(--font-body);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.alert{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem 1rem;border-radius:var(--radius-sm);border:1px solid;font-size:.92rem}.alert.alert-error{background:var(--danger-50);color:#7a1a12;border-color:#f1c0bc}.alert.alert-info{background:var(--info-50);color:#0a4a72;border-color:#b6d9ee}.alert.alert-success{background:var(--success-50);color:#14532d;border-color:#b7e1c5}.alert.alert-warn{background:var(--sand-50);color:#6b4309;border-color:#efd9a0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font:inherit;font-weight:600;font-size:.92rem;line-height:1.2;padding:.62rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .05s;min-height:40px;white-space:nowrap}.btn:hover:not(:disabled){background:var(--bg);border-color:var(--primary);color:var(--ink)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px #ffffff26 inset}.btn.btn-primary:hover:not(:disabled){background:var(--primary-700);border-color:var(--primary-700);color:#fff}.btn.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.btn-danger:hover:not(:disabled){background:#8f1b12;border-color:#8f1b12;color:#fff}.btn.btn-ghost{background:transparent;border-color:transparent;color:var(--primary-700)}.btn.btn-ghost:hover:not(:disabled){background:var(--primary-50);border-color:transparent;color:var(--primary-700)}.btn.btn-sm{padding:.35rem .7rem;min-height:32px;font-size:.85rem}.btn.btn-block{width:100%}.spinner{width:1em;height:1em;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:0;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--bg-deep);color:var(--ink)}.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.label{font-size:.85rem;font-weight:600;color:var(--ink-2)}.label .req{color:var(--danger);margin-left:.15rem}.label .opt{font-weight:400;color:var(--muted);margin-left:.25rem}.input,select.input,textarea.input{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.6rem .8rem;min-height:42px;transition:border-color .15s,box-shadow .15s}.input::placeholder,select.input::placeholder,textarea.input::placeholder{color:#8696a8}.input:hover:not(:disabled),select.input:hover:not(:disabled),textarea.input:hover:not(:disabled){border-color:var(--primary)}.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus)}.input:disabled,select.input:disabled,textarea.input:disabled{background:var(--bg);color:var(--muted)}.input.ng-invalid.ng-touched,select.input.ng-invalid.ng-touched,textarea.input.ng-invalid.ng-touched{border-color:var(--danger)}.input.ng-invalid.ng-touched:focus,select.input.ng-invalid.ng-touched:focus,textarea.input.ng-invalid.ng-touched:focus{box-shadow:0 0 0 3px #b4231840}.input.input-sm,select.input.input-sm,textarea.input.input-sm{min-height:34px;padding:.3rem .6rem;font-size:.88rem}textarea.input{min-height:84px;resize:vertical}select.input{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235b6b7f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2.2rem}.hint{font-size:.8rem;color:var(--muted)}.error-text{font-size:.82rem;color:var(--danger);font-weight:500}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .span-2{grid-column:span 2}@media(max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .span-2{grid-column:auto}}.checkbox{display:flex;align-items:center;gap:.55rem;font-weight:500;cursor:pointer}.checkbox input{width:18px;height:18px;accent-color:var(--primary)}.segmented{display:inline-flex;padding:3px;background:var(--bg-deep);border-radius:10px;gap:2px}.segmented button{font:inherit;font-weight:600;font-size:.88rem;border:0;background:transparent;padding:.4rem .9rem;border-radius:8px;color:var(--muted);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.toolbar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}.toolbar .field{min-width:150px}.toolbar .search{flex:1 1 220px}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{font:inherit;font-size:.85rem;font-weight:600;padding:.35rem .8rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);cursor:pointer}.chip:hover{border-color:var(--primary)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.period-filter{display:flex;gap:.75rem 1.25rem;flex-wrap:wrap;align-items:center}.period-filter .dates{display:flex;gap:.5rem;align-items:center;color:var(--muted);font-size:.85rem}.table-wrap{overflow-x:auto;border-radius:var(--radius)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;background:#f7faf8;white-space:nowrap}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#f9fbfa}.table .row-actions{display:flex;gap:.25rem;justify-content:flex-end;flex-wrap:nowrap}.table .cell-main{font-weight:600;color:var(--ink);text-decoration:none}.table .cell-main:hover{color:var(--primary);text-decoration:underline}.table .cell-sub{display:block;font-size:.8rem;color:var(--muted);font-weight:400}.pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;border-top:1px solid var(--border);flex-wrap:wrap}.pagination .page-num{font-size:.85rem;color:var(--muted)}.badge{display:inline-flex;align-items:center;font-size:.76rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;white-space:nowrap}.badge.badge-success{background:var(--success-50);color:#14532d}.badge.badge-danger{background:var(--danger-50);color:#8f1b12}.badge.badge-warn{background:var(--warn-50);color:var(--warn)}.badge.badge-info{background:var(--info-50);color:#0a4a72}.badge.badge-neutral{background:#e8edf0;color:#3c4a5a}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.kpis .kpi{border-left:1px solid var(--border)}.kpis .kpi:first-child{border-left:0}@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis .kpi:nth-child(odd){border-left:0}.kpis .kpi:nth-child(n+3){border-top:1px solid var(--border)}}@media(max-width:560px){.kpis{grid-template-columns:minmax(0,1fr)}.kpis .kpi{border-left:0}.kpis .kpi+.kpi{border-top:1px solid var(--border)}}.kpi{display:flex;flex-direction:column;gap:.2rem;padding:1.15rem 1.25rem;color:var(--ink);text-decoration:none;min-width:0}.kpi.kpi-link:hover{background:#f8fbf9}.kpi .kpi-label{font-size:.8rem;font-weight:700;color:var(--muted);letter-spacing:.02em}.kpi .kpi-value{font-family:var(--font-display);font-size:1.65rem;font-weight:600;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}.kpi .kpi-delta{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--muted)}.kpi .kpi-delta.good{color:var(--success)}.kpi .kpi-delta.bad{color:var(--danger)}.kpi .kpi-hint{font-size:.8rem;color:var(--muted)}.kpi.tone-positive .kpi-value{color:var(--success)}.kpi.tone-negative .kpi-value{color:var(--danger)}.kpi.tone-warn .kpi-value{color:var(--sand-700)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;padding:2.5rem 1.5rem}.empty .empty-icon{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:var(--primary-50);color:var(--primary);margin-bottom:.25rem}.empty p{color:var(--muted);max-width:46ch}.empty .btn{margin-top:.5rem}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#e6eee9 25%,#f2f7f4 37%,#e6eee9 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton-wrap{display:flex;flex-direction:column;gap:.6rem;padding:1rem}.skeleton-row{height:44px}.skeleton-block{width:100%}.skeleton-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.skeleton-kpis .skeleton-kpi{height:96px}@media(max-width:800px){.skeleton-kpis{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){.skeleton,.spinner{animation-duration:3s}}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#0819188c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade .15s ease}.modal{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);width:min(520px,100%);max-height:calc(100dvh - 2rem);display:flex;flex-direction:column;animation:rise .18s ease}.modal.modal-lg{width:min(720px,100%)}.modal:focus{outline:none}.modal .modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .9rem;border-bottom:1px solid var(--border)}.modal .modal-header h2{font-size:1.2rem}.modal .modal-body{padding:1.25rem;overflow-y:auto}.modal .modal-footer{padding:.9rem 1.25rem;border-top:1px solid var(--border);background:#f8fbf9;border-radius:0 0 16px 16px}.modal .modal-footer:empty{display:none}.confirm-msg{color:var(--ink-2)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toast-region{position:fixed;right:1rem;bottom:1rem;z-index:300;display:flex;flex-direction:column;gap:.5rem;width:min(380px,100vw - 2rem)}.toast{display:flex;gap:.6rem;align-items:flex-start;padding:.75rem .75rem .75rem 1rem;border-radius:var(--radius-sm);background:var(--ink);color:#fff;box-shadow:var(--shadow-lg);animation:rise .2s ease}.toast .toast-msg{flex:1;font-size:.9rem;padding-top:1px}.toast .icon-btn{color:#ffffffbf;width:26px;height:26px}.toast .icon-btn:hover{background:#ffffff1f;color:#fff}.toast.toast-success{background:#0b4f3c}.toast.toast-error{background:#7a1a12}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);overflow-x:auto}.tabs button{font:inherit;font-weight:600;font-size:.9rem;background:transparent;border:0;padding:.7rem 1rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{color:var(--primary-700);border-bottom-color:var(--primary)}.dl{display:grid;grid-template-columns:max-content 1fr;gap:.55rem 1.5rem;margin:0}.dl dt{color:var(--muted);font-size:.88rem}.dl dd{margin:0;font-weight:500;overflow-wrap:anywhere}@media(max-width:520px){.dl{grid-template-columns:1fr;gap:.1rem}.dl dd{margin-bottom:.5rem}}.progress{height:10px;border-radius:999px;background:var(--bg-deep);overflow:hidden;position:relative}.progress .bar{height:100%;border-radius:999px;background:var(--primary);transition:width .4s ease}.progress .bar.warn{background:var(--sand)}.progress .bar.danger{background:var(--danger)}.hero-number{font-family:var(--font-display);font-size:2.2rem;font-weight:600;letter-spacing:-.02em}.list-plain{list-style:none;margin:0;padding:0}.list-plain li{padding:.7rem 1.25rem;border-bottom:1px solid var(--border)}.list-plain li:last-child{border-bottom:0}.item-line{display:flex;justify-content:space-between;align-items:center;gap:1rem}.item-line .item-title{font-weight:600;color:var(--ink);text-decoration:none}.item-line .item-title:hover{color:var(--primary);text-decoration:underline}.item-line .item-sub{font-size:.8rem;color:var(--muted)}.kpis.kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:800px){.kpis.kpis-3{grid-template-columns:minmax(0,1fr)}.kpis.kpis-3 .kpi{border-left:0}.kpis.kpis-3 .kpi+.kpi{border-top:1px solid var(--border)}}.kpis.kpis-2{grid-template-columns:repeat(2,minmax(0,1fr))}
