:root{--bg: #f4f6f9;--surface: #ffffff;--border: #e2e8f0;--text: #1e293b;--muted: #64748b;--primary: #0d9488;--primary-dark: #0f766e;--primary-light: #ccfbf1;--danger: #dc2626;--warn: #d97706;--ok: #16a34a;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button{font-family:inherit;cursor:pointer}.btn{border:1px solid transparent;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover{background:var(--primary-dark)}.btn--ghost{background:#fff;border-color:var(--border);color:var(--text)}.btn--ghost:hover{background:#f8fafc}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover{filter:brightness(.93)}.btn--block{width:100%}.btn--sm{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.layout{display:flex;min-height:100vh}.content{flex:1;min-width:0;padding:28px 32px;max-width:1040px}.mobile-topbar,.sidebar-backdrop{display:none}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.sidebar{width:240px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px}.sidebar__brand{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 4px 18px;text-align:center}.sidebar__logo{width:52px;height:auto;flex-shrink:0}.sidebar__brand strong{display:block;font-size:12.5px;line-height:1.3;color:var(--primary-dark)}.sidebar__sub{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.3}.sidebar__nav{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto}.sidebar__section{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:14px 12px 6px}.navitem{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:10px 12px;font-size:14px;font-weight:500;color:var(--text)}.navitem:hover{background:#f1f5f9}.navitem--active{background:var(--primary-light);color:var(--primary-dark);font-weight:600}.navitem__icon{font-size:17px}.navitem--form{padding:8px 12px;font-size:13px;font-weight:500}.navitem__status{font-size:13px;flex-shrink:0}.navitem__formlabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__footer{border-top:1px solid var(--border);padding-top:14px}.sidebar__email{display:block;color:var(--muted);font-size:12px;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list__head{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.list__search input{width:320px;max-width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px}.list__actions{display:flex;gap:10px}.list__count{color:var(--muted);font-size:13px;margin-top:12px}.table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--border)}.table td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px}.table__row{cursor:pointer}.table__row:hover{background:#f8fafc}.table tr:last-child td{border-bottom:none}.table__rowactions{display:flex;gap:6px;justify-content:flex-end}.table__creator{color:var(--muted);font-size:13px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{background:none;border:1px solid var(--border);border-radius:7px;width:30px;height:30px;font-size:14px}.icon-btn:hover{background:#f1f5f9}.icon-btn--danger:hover{background:#fef2f2;border-color:var(--danger)}.pill{font-size:12px;padding:3px 9px;border-radius:999px;font-weight:600}.pill--ok{background:#dcfce7;color:var(--ok)}.pill--warn{background:#fef3c7;color:var(--warn)}.empty,.loading{text-align:center;color:var(--muted);padding:48px 24px;background:var(--surface);border-radius:var(--radius)}.loading--full{margin:80px auto;max-width:300px}.record__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.record__head h2{margin:0;font-size:20px}.record__sub{margin:4px 0 0;color:var(--muted);font-size:13px}.record__actions{display:flex;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:16px}.tab{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:13px;color:var(--muted);font-weight:500}.tab--active{background:var(--primary);border-color:var(--primary);color:#fff}.tab__num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#00000014;font-size:11px;font-weight:700}.tab--active .tab__num{background:#ffffff40}.tab__badge{background:var(--warn);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;font-weight:700}.form-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.form-panel__title{margin:0 0 20px;font-size:17px;color:var(--primary-dark);border-bottom:2px solid var(--primary-light);padding-bottom:10px}.section-head{margin:24px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:1px dashed var(--border);padding-top:16px}.field{margin-bottom:18px}.field__label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}.field__req{color:var(--danger);margin-left:3px}.field__input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.field__input:focus{outline:2px solid var(--primary-light);border-color:var(--primary)}.field__input--calc{background:#f1f5f9;color:var(--primary-dark);font-weight:600}textarea.field__input{resize:vertical}.field__withunit{display:flex;align-items:center;gap:8px}.field__withunit .field__input{width:130px;flex:0 0 auto}.field__unit{color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap}.field__note{display:block;color:var(--muted);font-size:12px;margin-top:4px}.field__error{display:block;color:var(--danger);font-size:12px;margin-top:4px}.field--error .field__input{border-color:var(--danger)}.field--nolabel{margin-bottom:8px}.field--descriptive{background:#f8fafc;border-left:3px solid var(--primary-light);padding:10px 14px;border-radius:6px;font-size:13px;color:var(--muted)}.field--descriptive p{margin:0}.field__options{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.field__options--col{flex-direction:column;align-items:flex-start;gap:8px}.opt{display:inline-flex;align-items:center;gap:7px;font-size:14px;cursor:pointer}.opt input{width:16px;height:16px;accent-color:var(--primary)}.opt__clear{background:none;border:none;color:var(--muted);font-size:12px;text-decoration:underline}.record__nav{display:flex;align-items:center;justify-content:space-between;margin-top:20px}.record__nav-pos{color:var(--muted);font-size:13px}.alert{padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:16px}.alert--error{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}.alert--ok{background:#f0fdf4;color:var(--ok);border:1px solid #bbf7d0}.user-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.user-form .filter{flex:1 1 220px}.user-form .btn{flex:0 0 auto}.role-select{padding:6px 10px;border:1px solid var(--border);border-radius:7px;font-size:13px;background:#fff}.role-select:disabled{background:#f1f5f9;color:var(--muted)}.tag-you{color:var(--muted);font-size:12px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login__card{background:var(--surface);border-radius:16px;box-shadow:0 10px 40px #0f172a1f;padding:36px;width:360px;max-width:100%}.login__brand{text-align:center;margin-bottom:24px}.login__logo{display:block;margin:0 auto;width:104px;height:auto}.login__brand h1{margin:14px 0 4px;font-size:16px;line-height:1.35;color:var(--primary-dark)}.login__brand p{margin:0;color:var(--muted);font-size:13px}.login__card .field__label{margin-top:12px}.login__card .btn{margin-top:20px}.setup{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.setup__card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:36px;max-width:600px}.setup__card h1{font-size:20px;color:var(--primary-dark);margin-top:0}.setup__card ol{line-height:1.9}.setup__card code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:13px}.setup__card pre{background:#0f172a;color:#e2e8f0;padding:12px;border-radius:8px;overflow-x:auto;font-size:13px}.setup__hint{color:var(--muted);font-size:13px}.page-title{font-size:22px;margin:0 0 18px}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);margin-bottom:18px}.filters__title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:12px}.filters__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.filter label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}.filter select,.filter input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.filter__range{display:flex;align-items:center;gap:6px}.filter__range span{color:var(--muted)}.kpis{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:22px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 28px;box-shadow:var(--shadow);text-align:center;flex:0 1 220px}.kpi__num{display:block;font-size:34px;font-weight:700;color:var(--primary-dark);line-height:1.1}.kpi__label{color:var(--muted);font-size:13px}.cards{columns:3 300px;column-gap:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-bottom:18px;break-inside:avoid}.card__title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:15px;border-bottom:1px solid var(--border);padding-bottom:10px}.card__empty{color:var(--muted);font-size:13px;text-align:center;padding:12px}.barlist{display:flex;flex-direction:column;gap:8px}.barrow{display:grid;grid-template-columns:38% 1fr;align-items:center;gap:8px}.barrow__label{font-size:12px;color:var(--text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barrow__track{background:#f1f5f9;border-radius:999px;overflow:hidden;height:22px}.barrow__fill{height:100%;border-radius:999px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;min-width:28px;transition:width .3s}.barrow__val{color:#fff;font-size:11px;font-weight:700;white-space:nowrap}.donut-wrap{display:flex;flex-direction:column;gap:14px}.donut{width:120px;height:120px;border-radius:50%;margin:0 auto;position:relative}.donut__hole{position:absolute;top:26px;right:26px;bottom:26px;left:26px;background:var(--surface);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut__hole strong{font-size:20px;color:var(--primary-dark)}.donut__hole span{font-size:11px;color:var(--muted)}.donut__legend{display:flex;flex-direction:column;gap:6px}.legend-row{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;font-size:12px}.legend-dot{width:10px;height:10px;border-radius:3px}.legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-val{color:var(--muted);font-weight:600}.legend-val em{font-style:normal;color:var(--muted);font-weight:400}.yesno{display:grid;grid-template-columns:1fr 1fr;gap:12px}.yesno__box{border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center;display:flex;flex-direction:column;gap:2px}.yesno__box--si{background:#f0fdf4;border-color:#bbf7d0}.yesno__pct{font-size:26px;font-weight:700;color:var(--primary-dark)}.yesno__cap{font-size:13px;font-weight:600}.yesno__n{font-size:11px;color:var(--muted)}.rep-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow);margin-bottom:18px}.rep-toolbar select,.rep-name{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.rep-name{flex:1;min-width:160px}.rep-msg{font-size:13px;color:var(--primary-dark);font-weight:600}.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.rep-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.rep-panel__title{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:8px}.rep-count{background:var(--primary-light);color:var(--primary-dark);border-radius:999px;font-size:12px;font-weight:700;padding:1px 9px}.rep-search{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin-bottom:12px}.rep-fields{max-height:320px;overflow-y:auto;padding-right:6px}.rep-fieldgroup{margin-bottom:14px}.rep-fieldgroup__title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:6px}.rep-checkitem{display:flex;align-items:center;gap:8px;font-size:13px;padding:3px 0;cursor:pointer}.rep-checkitem input{accent-color:var(--primary)}.rep-hint{color:var(--muted);font-size:13px;margin:0 0 12px}.rep-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}.rep-filter--num{grid-template-columns:1fr auto 1fr auto}.rep-filter--date{grid-template-columns:1fr auto auto}.rep-daterange{display:flex;align-items:center;gap:6px}.rep-daterange span{color:var(--muted)}.rep-op{text-align:center}.rep-filter--multi{display:block;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fafbfc}.rep-filter__top{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin-bottom:8px}.rep-andor{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.rep-andor__btn{background:#fff;border:none;padding:6px 10px;font-size:12px;font-weight:600;color:var(--muted)}.rep-andor__btn.is-on{background:var(--primary);color:#fff}.rep-chips{display:flex;flex-wrap:wrap;gap:6px}.rep-chip{background:#fff;border:1px solid var(--border);border-radius:999px;padding:4px 11px;font-size:12px;color:var(--text)}.rep-chip:hover{border-color:var(--primary)}.rep-chip.is-on{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark);font-weight:600}.rep-filter select,.rep-filter input{padding:7px 9px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:#fff;min-width:0}.rep-results__head{display:flex;align-items:center;gap:14px;margin-bottom:10px;font-size:14px;color:var(--muted)}.rep-results__head .btn{margin-left:auto}.rep-tablewrap{overflow-x:auto}.rep-tablewrap .table{min-width:100%}.rep-tablewrap .table th,.rep-tablewrap .table td{white-space:nowrap}.tnm__subtitle{font-size:16px;color:var(--primary-dark);margin:0 0 14px}.tnm__table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.tnm__table th{width:70px;text-align:left;vertical-align:top;padding:11px 14px;background:#f1f5f9;color:var(--primary-dark);font-weight:700;font-size:14px;border-bottom:1px solid var(--border)}.tnm__table td{padding:11px 14px;font-size:14px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.5}.tnm__table tr:last-child th,.tnm__table tr:last-child td{border-bottom:none}.tnm__row--sub th{background:var(--surface);font-weight:600;padding-left:28px;color:var(--muted)}.tnm__row--sub td{color:var(--muted)}.tnm__row--sub2 th{padding-left:44px}.tnm__bullets{margin:6px 0 0;padding-left:18px}.tnm__bullets li{margin-bottom:3px}.tnm__notes{margin-top:22px;background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px}.tnm__notes h4{margin:0 0 10px;font-size:14px}.tnm__notes ol{margin:0;padding-left:20px}.tnm__notes li{font-size:13px;line-height:1.6;color:var(--text);margin-bottom:5px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal__box{background:#fff;border-radius:var(--radius);padding:28px;max-width:420px;width:100%}.modal__box h3{margin:0 0 10px}.modal__box p{color:var(--muted);font-size:14px;line-height:1.6}.modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media (max-width: 820px){.mobile-topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 14px}.hamburger{font-size:24px;background:none;border:none;line-height:1;padding:2px 8px;color:var(--text)}.mobile-topbar__logo{width:32px;height:auto;flex-shrink:0}.mobile-topbar__title{font-weight:700;color:var(--primary-dark);font-size:11.5px;line-height:1.25;min-width:0}.mobile-topbar__sub{display:block;font-weight:500;color:var(--muted);font-size:10.5px}.layout{flex-direction:column}.sidebar{position:fixed;top:0;left:0;height:100vh;width:272px;max-width:84vw;transform:translate(-100%);transition:transform .25s ease;z-index:50;box-shadow:0 0 30px #0f172a40}.sidebar.sidebar--open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:45}.navitem,.navitem--form{padding:12px;font-size:15px}.content{padding:16px 14px;max-width:100%}.page-title{font-size:19px}.rep-grid,.rep-filter,.rep-filter--num,.rep-filter--date{grid-template-columns:1fr}.rep-filter__top{grid-template-columns:1fr auto}.rep-daterange,.rep-results__head{flex-wrap:wrap}.record__head{flex-direction:column;align-items:stretch}.record__actions{display:flex}.record__actions .btn{flex:1}.form-panel{padding:16px}.cards{columns:1}.kpi{flex:1 1 140px}.list__head{flex-direction:column;align-items:stretch}.list__search input{width:100%}.list__actions{display:flex}.list__actions .btn{flex:1}.field__input,.filter select,.filter input{font-size:16px}.filter__range{flex-wrap:wrap}.filter__range input,.rep-daterange input{flex:1 1 120px;min-width:0}}
