.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:1000;max-width:min(380px,calc(100vw - 32px))}.toast{padding:10px 14px;border-radius:6px;background:var(--sidebar);color:#fff;box-shadow:0 6px 20px #0003;font-size:13px}.toast.error{background:var(--danger)}.icon{flex-shrink:0}.layout{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:18px 16px 16px}.brand-name{color:#fff;font-weight:700;font-size:15px}.brand-sub{font-size:11px;color:#8994a3}.sidebar nav{display:flex;flex-direction:column;gap:2px;padding:4px 8px 16px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--sidebar-text);font-size:13.5px}.nav-item:hover{background:var(--sidebar-active);color:#fff;text-decoration:none}.nav-item.active{background:var(--sidebar-active);color:#fff;box-shadow:inset 3px 0 0 var(--primary)}.soon{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#8994a3;border:1px solid #3a4350;border-radius:4px;padding:0 4px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:56px;display:flex;align-items:center;gap:8px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.content{padding:20px 24px 40px;max-width:1400px;width:100%}.content.wide{max-width:none}.user-menu{position:relative}.current-guard{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:4px 10px;border-radius:16px;margin-right:8px}.current-guard.guard-A{background:var(--guard-a-soft);color:var(--guard-a-text)}.current-guard.guard-B{background:var(--guard-b-soft);color:var(--guard-b-text)}.current-guard .guard-tag{font-size:11px;font-weight:700;padding:0 6px;border-radius:8px;line-height:18px}.current-guard.guard-A .guard-tag{background:var(--guard-a-strong)}.current-guard.guard-B .guard-tag{background:var(--guard-b-strong)}.user-btn{display:flex;align-items:center;gap:10px;border:none;background:none;cursor:pointer;padding:4px 6px;border-radius:6px;color:var(--text);font:inherit}.user-btn:hover{background:var(--surface-2)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:700;font-size:12px}.user-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.user-name{font-weight:600;font-size:13px}.user-role{font-size:12px;color:var(--muted)}.dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 30px #0000001f;min-width:220px;padding:4px}.dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;font:inherit;color:var(--text);cursor:pointer;border-radius:5px;text-align:left}.dropdown-item:hover{background:var(--surface-2);text-decoration:none}.btn.mobile-only,.scrim{display:none}@media(max-width:900px){.sidebar{position:fixed;left:0;top:0;z-index:200;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:none}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:150}.btn.mobile-only{display:inline-flex}.content{padding:16px}.topbar{padding:0 12px}.user-meta{display:none}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(160deg,var(--sidebar) 0 38%,var(--bg) 38%)}.auth-card{width:100%;max-width:400px;padding:28px 28px 24px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.auth-app{font-weight:700;font-size:16px}.auth-sub{margin:4px 0 0}.auth-card form{display:flex;flex-direction:column;gap:14px;margin-top:18px}.auth-card .btn.primary{justify-content:center;height:38px}.auth-footer{margin-top:16px;text-align:center;font-size:13px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi{padding:16px;color:var(--text)}.kpi.link:hover{border-color:var(--primary);text-decoration:none}.kpi-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.kpi-label{color:var(--muted);font-size:13px}.kpi.alert .kpi-value{color:var(--danger)}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span-2{grid-column:1 / -1}.status-row{display:grid;grid-template-columns:110px 1fr 32px;align-items:center;gap:10px;color:var(--text)}.status-row:hover{text-decoration:none}.status-row:hover .status-name{color:var(--primary)}.status-bar{height:10px;background:var(--surface-2);border-radius:5px;overflow:hidden}.status-bar span{display:block;height:100%;border-radius:5px;background:currentColor}.status-count{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.list-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);color:var(--text)}.list-row:last-child{border-bottom:none}.list-row:not(.static):hover{background:var(--surface-2);text-decoration:none}.overdue{color:var(--danger);white-space:nowrap}@media(max-width:900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.home-grid{grid-template-columns:1fr}}.tree-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;cursor:pointer;color:var(--text)}.tree-item:hover{background:var(--surface-2)}.tree-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.tree-item.archived .tree-label{text-decoration:line-through;color:var(--muted)}.tree-toggle{width:18px;height:18px;display:grid;place-items:center;border:none;background:none;padding:0;color:var(--muted);cursor:pointer}.tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1473;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;z-index:500;overflow-y:auto}.modal{width:100%;background:var(--surface);border-radius:10px;box-shadow:0 20px 50px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px 20px}.modal-body{padding:6px 20px 18px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}.portfolio{display:grid;grid-template-columns:270px minmax(0,1fr);gap:16px;align-items:start}.folders-panel{position:sticky;top:76px}.tree{padding:8px;max-height:60vh;overflow-y:auto}.archived-toggle{padding:10px 16px;border-top:1px solid var(--border)}.card-header.wrap{flex-wrap:wrap}.filters{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.search{position:relative;flex:1;min-width:200px}.search .icon{position:absolute;left:10px;top:9px;color:var(--muted)}.search input{padding-left:34px}@media(max-width:900px){.portfolio{grid-template-columns:1fr}.folders-panel{position:static}.tree{max-height:240px}}.ss{position:relative;min-width:0;width:100%}.ss-field{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:6px 10px;text-align:left;font:inherit;font-weight:400;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;cursor:pointer}.ss-field:focus-visible,.ss-field.open{outline:none;border-color:var(--primary);box-shadow:var(--focus)}.ss-field:disabled{background:var(--surface-2);color:var(--muted);cursor:default}.ss-field.placeholder .ss-value{color:var(--muted)}.ss-field svg{flex-shrink:0;color:var(--muted)}.ss-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-field .ss-sub{flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss.compact .ss-field{min-height:34px}.ss-required{position:absolute;left:50%;bottom:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.ss-pop{position:fixed;z-index:1000;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #0000002e;overflow:hidden;font-size:13.5px;color:var(--text)}.ss-search{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);color:var(--muted)}.ss-search input{border:none;box-shadow:none;padding:4px 0;min-height:28px;background:transparent}.ss-search input:focus{box-shadow:none}.ss-count{font-size:11px;font-variant-numeric:tabular-nums}.ss-list{overflow-y:auto;padding:4px}.ss-group{padding:8px 8px 3px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.ss-opt{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:5px;cursor:pointer}.ss-opt.active{background:var(--surface-2)}.ss-opt.selected{color:var(--primary);font-weight:600}.ss-opt.disabled{opacity:.45;cursor:default}.ss-opt.none{color:var(--muted);font-style:italic}.ss-label{flex:1;min-width:0}.ss-sub{color:var(--muted);font-size:12px;font-weight:400}.ss-tag{font-size:11px;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 4px;white-space:nowrap}.ss-pop mark{background:var(--primary-soft);color:var(--primary);border-radius:2px;padding:0 1px}.ss-empty{padding:10px 8px;color:var(--muted);font-size:12px}fieldset.plain{border:none;padding:0;margin:0;min-width:0}.history{border-top:1px solid var(--border);padding-top:12px}.history h3{margin-bottom:6px}.history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:3px 0}.dep-add{margin:6px 0}.tasks td{padding-top:6px;padding-bottom:6px}.group-row td{background:var(--surface-2);font-weight:600;font-size:13px;padding-top:8px;padding-bottom:8px}.group-row.sub td{background:var(--primary-soft);color:var(--primary);text-transform:uppercase;font-size:12px;letter-spacing:.04em}.task-title{display:flex;align-items:center;gap:4px}.task-title a{color:var(--text)}.task-title a.parent{font-weight:600}.task-title a:hover{color:var(--primary)}.milestone{color:var(--primary);font-size:12px}tr.closed .task-title a{text-decoration:line-through;color:var(--muted)}.status-select{width:auto;min-height:26px;height:26px;padding:0 6px;border-radius:13px;border:none;font-size:12px;font-weight:500;cursor:pointer}.gantt{overflow:auto;max-height:calc(100vh - 260px);min-height:240px;position:relative;-webkit-user-select:none;user-select:none}.gantt.dragging{cursor:grabbing}.g-inner{position:relative}.g-header{position:sticky;top:0;z-index:4;display:flex;height:68px;background:var(--surface-2);border-bottom:1px solid var(--border)}.g-corner{position:sticky;left:0;z-index:5;flex-shrink:0;background:var(--surface-2);border-right:1px solid var(--border);display:flex;align-items:flex-end;padding:0 12px 8px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.g-scale{position:relative;flex-shrink:0}.g-tick{position:absolute;font-size:11px;color:var(--muted);border-left:1px solid var(--border);padding-left:4px;overflow:hidden;white-space:nowrap}.g-tick.top{top:0;height:22px;line-height:22px;font-weight:600;color:var(--text);text-transform:capitalize}.g-tick.bottom{top:42px;height:26px;line-height:26px;border-top:1px solid var(--border)}.g-guard-band{position:absolute;top:22px;height:20px;line-height:20px;font-size:11px;font-weight:700;text-align:center;overflow:hidden;white-space:nowrap;border-left:1px solid var(--border)}.g-guard-band.guard-A,.guard-A .guard-tag{background:var(--guard-a-strong);color:var(--guard-a-text)}.g-guard-band.guard-B,.guard-B .guard-tag{background:var(--guard-b-strong);color:var(--guard-b-text)}.g-guard-bg{position:absolute;top:0;bottom:0;border-left:1px dashed var(--border)}.g-guard-bg.guard-A{background:var(--guard-a-soft)}.g-guard-bg.guard-B{background:var(--guard-b-soft)}.g-tick.bottom.today{color:var(--primary);font-weight:700}.g-sub{margin-left:2px;opacity:.7}.g-body{position:relative}.g-bg{position:absolute;top:0;bottom:0;pointer-events:none}.g-weekend{position:absolute;top:0;bottom:0;background:var(--surface-2)}.g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--primary);opacity:.7}.g-links{position:absolute;top:0;z-index:1;pointer-events:none;overflow:visible}.g-links path{fill:none;stroke:var(--muted);stroke-width:1.3;pointer-events:stroke}.g-links path.bad{stroke:var(--danger);stroke-width:1.8}.g-row{display:flex;height:34px;border-bottom:1px solid var(--border)}.g-row:hover .g-cell,.g-row:hover .g-track{background-color:color-mix(in srgb,var(--surface-2) 70%,transparent)}.g-row.group .g-cell{font-weight:600;font-size:13px;color:var(--primary)}.g-row.group{background:var(--surface-2)}.g-cell{position:sticky;left:0;z-index:3;flex-shrink:0;display:flex;align-items:center;gap:2px;padding:0 8px;background:var(--surface);border-right:1px solid var(--border);overflow:hidden}.g-row.group .g-cell{background:var(--surface-2)}.g-indent{flex-shrink:0}.g-title{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.g-title.parent{font-weight:600}.g-title.closed{text-decoration:line-through;color:var(--muted)}.g-track{position:relative;flex-shrink:0}.g-bar{position:absolute;top:8px;height:18px;border-radius:4px;overflow:hidden;cursor:pointer;z-index:2;border:1px solid currentColor}.g-bar.editable{cursor:grab}.g-fill{height:100%;background:currentColor;opacity:.35}.g-handle{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize}.g-handle.left{left:0}.g-handle.right{right:0}.g-summary{position:absolute;top:11px;height:10px;background:var(--text);opacity:.75;border-radius:2px;cursor:pointer;z-index:2}.g-summary:before,.g-summary:after{content:"";position:absolute;bottom:-5px;border:5px solid transparent;border-top-color:var(--text)}.g-summary:before{left:0;border-left-color:var(--text)}.g-summary:after{right:0;border-right-color:var(--text)}.g-summary-fill{height:100%;background:var(--primary)}.g-milestone{position:absolute;top:9px;width:16px;height:16px;transform:rotate(45deg);background:currentColor;border-radius:2px;cursor:pointer;z-index:2}.g-label{position:absolute;top:9px;font-size:11px;color:var(--muted);white-space:nowrap;pointer-events:none}.g-nodates{position:absolute;top:9px;font-size:11px;color:var(--muted);font-style:italic}.segmented{display:inline-flex}.segmented .btn{border-radius:0;margin-left:-1px}.segmented .btn:first-child{border-radius:6px 0 0 6px;margin-left:0}.segmented .btn:last-child{border-radius:0 6px 6px 0}.segmented .btn.active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary);position:relative;z-index:1}@media(max-width:700px){.hide-mobile{display:none}}.hist-item{padding:6px 0;border-bottom:1px solid var(--border)}.hist-item:last-child{border-bottom:none}.kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))}.costs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}@media(max-width:700px){.kpis-3{grid-template-columns:1fr}}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.design{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.design:last-child{border-bottom:none}.agenda-day{padding:8px 16px;background:var(--surface-2);font-weight:600;font-size:13px;border-bottom:1px solid var(--border)}.agenda-day.today{color:var(--primary)}.agenda-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text)}.agenda-item:hover{background:var(--surface-2);text-decoration:none}.agenda-time{width:44px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--muted)}.agenda-main{min-width:0}.agenda-title{font-weight:600}.agenda-progress{width:150px}fieldset.recurrence{border:1px solid var(--border);border-radius:8px;padding:10px 14px 12px;margin:0;display:flex;flex-direction:column;gap:10px}fieldset.recurrence legend{font-weight:600;font-size:13px;padding:0 4px}.days{display:flex;gap:6px;flex-wrap:wrap}.day{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);display:grid;place-items:center;cursor:pointer;font-weight:600;font-size:13px;-webkit-user-select:none;user-select:none}.day input{display:none}.day.on{background:var(--primary);border-color:var(--primary);color:#fff}.end-options{gap:12px}.cl-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cl-row>input.grow{min-width:200px;width:auto}.cl-actions{display:flex}.breadcrumb{display:flex;align-items:center;gap:4px;margin-bottom:6px}.summary-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}.structure{display:flex;flex-direction:column;gap:12px}.structure-sub{display:flex;flex-direction:column;gap:2px}.structure-sec{padding-left:26px;font-size:13px}.change{display:inline-block;margin-right:12px}@media(max-width:900px){.summary-grid{grid-template-columns:1fr}}.code-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px dashed var(--primary);border-radius:8px;background:var(--primary-soft)}.code-box span{font-family:Consolas,Courier New,monospace;font-size:24px;font-weight:700;letter-spacing:.12em;color:var(--primary)}.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}.occ-dl{grid-template-columns:120px 1fr}.scope-option{font-size:14px;padding:4px 0}.cal-card{padding:14px}.cal-card{--fc-border-color: var(--border);--fc-page-bg-color: var(--surface);--fc-neutral-bg-color: var(--surface-2);--fc-list-event-hover-bg-color: var(--surface-2);--fc-today-bg-color: var(--primary-soft);--fc-now-indicator-color: var(--danger);--fc-button-bg-color: var(--surface);--fc-button-border-color: var(--border);--fc-button-text-color: var(--text);--fc-button-hover-bg-color: var(--surface-2);--fc-button-hover-border-color: var(--border);--fc-button-active-bg-color: var(--primary-soft);--fc-button-active-border-color: var(--primary);--fc-event-border-color: var(--primary)}.cal-card .fc .fc-button{font-size:13px;text-transform:capitalize;box-shadow:none!important}.cal-card .fc .fc-button-active{color:var(--primary)}.cal-card .fc .fc-toolbar-title{font-size:18px}.cal-card .fc .fc-toolbar-title:first-letter{text-transform:uppercase}.cal-card .fc a{color:inherit}.cal-card .fc .fc-col-header-cell-cushion{text-transform:capitalize;font-weight:600;font-size:12px}.cal-card .fc-event{cursor:pointer}.cal-card .st-cancelada .fc-event-title{text-decoration:line-through}.legend{display:flex;flex-wrap:wrap;gap:16px}.cal-card .fc .guard-A:not(.fc-day-today){background:var(--guard-a-soft)}.cal-card .fc .guard-B:not(.fc-day-today){background:var(--guard-b-soft)}.cal-card .fc .fc-daygrid-day-number{display:flex;align-items:center;gap:6px;width:100%;justify-content:space-between}.guard-tag{display:inline-block;font-size:10px;font-weight:700;padding:0 5px;border-radius:8px;line-height:16px}.guard-A .guard-tag{background:var(--guard-a-strong);color:var(--guard-a-text)}.guard-B .guard-tag{background:var(--guard-b-strong);color:var(--guard-b-text)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}@media(max-width:700px){.cal-card{padding:8px}.cal-card .fc .fc-toolbar{flex-direction:column;gap:8px}}.eq-tl{overflow:auto;max-height:calc(100vh - 280px);min-height:200px;position:relative}.eq-inner{position:relative}.eq-code{font-weight:600;font-size:13px;white-space:nowrap}.eq-code.inactive{color:var(--muted);text-decoration:line-through}.eq-desc{margin-left:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eq-track.clickable{cursor:copy}.eq-bar{position:absolute;top:6px;height:22px;border-radius:4px;border:1px solid currentColor;font-size:11px;line-height:20px;padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;z-index:2}.eq-bar.open{border-right-style:dashed;border-top-right-radius:0;border-bottom-right-radius:0}.eq-legend{padding:10px 16px;border-top:1px solid var(--border)}.insp{max-width:820px;padding-bottom:70px}.insp-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:4px}.insp-meta span{display:inline-flex;align-items:center;gap:4px}.cl-item{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.cl-item:last-child{border-bottom:none}.cl-label{font-weight:600}.req{color:var(--danger);margin-left:3px}.yesno{display:flex;gap:8px}.yn{flex:1;max-width:110px;height:44px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.yn.on{border-color:currentColor}.yn:disabled{cursor:default}.photos{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.photo{width:92px;height:92px;border-radius:8px;border:1px solid var(--border);overflow:hidden;padding:0;background:var(--surface-2);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted)}.photo img{width:100%;height:100%;object-fit:cover}.photo.add{border-style:dashed;color:var(--primary)}.photo.add input{display:none}.photo.doc{text-align:center;padding:4px;overflow-wrap:anywhere;text-decoration:none}.comment{border-left:3px solid var(--border);padding-left:10px}.insp-actions{position:sticky;bottom:0;display:flex;gap:8px;flex-wrap:wrap;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -4px 16px #00000014;z-index:20}.viewer-img{width:100%;max-height:70vh;object-fit:contain;border-radius:6px;background:#000}@media(max-width:700px){.insp-actions .btn{flex:1;justify-content:center}.insp-actions .grow{display:none}}.report-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.r-item{display:flex;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}.r-item:last-child{border-bottom:none}.r-item.excluded .r-body{opacity:.45}.r-controls{display:flex;align-items:flex-start;gap:2px;padding-top:2px}.r-controls input{margin:6px 4px 0 0}.r-body{min-width:0;display:flex;flex-direction:column;gap:4px}.r-checklist{display:flex;flex-wrap:wrap;gap:2px 14px}.photo.sm{width:64px;height:64px}@media(max-width:1000px){.report-grid{grid-template-columns:1fr}}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;padding:14px 16px}.g-photo{padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2);cursor:pointer;display:flex;flex-direction:column;text-align:left;color:var(--text)}.g-photo img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.g-caption{padding:6px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:Consolas,Courier New,monospace;font-size:11px}.sql-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.sql-schema{max-height:calc(100vh - 170px);overflow-y:auto;position:sticky;top:76px}.sql-table{padding:3px 8px}.sql-table a{color:var(--text);font-size:13px}.sql-cols{padding:2px 0 6px 26px}.sql-input{font-family:Consolas,Courier New,monospace;font-size:13px;border:none;border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;min-height:140px}.sql-result{max-height:60vh;overflow:auto}.sql-result th{position:sticky;top:0;z-index:1}.sql-result td{font-family:Consolas,Courier New,monospace;font-size:12px;white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}.sql-preview{background:var(--surface-2);padding:10px;border-radius:6px;white-space:pre-wrap;font-size:12px;margin:0}@media(max-width:900px){.sql-grid{grid-template-columns:1fr}.sql-schema{position:static;max-height:260px}}.mo-group td{background:var(--surface-2);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.mo-inactive td{opacity:.55}.mo-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.mo-kpis div{border:1px solid var(--border);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column}.mo-kpis strong{font-size:22px;font-variant-numeric:tabular-nums}.mo-kpis span{color:var(--muted);font-size:12px}.mo-bar{display:flex;align-items:center;gap:8px}.mo-bar i{display:block;height:8px;border-radius:4px;background:var(--primary);min-width:2px}.mo-bar span{font-variant-numeric:tabular-nums;font-size:12px}.mo-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:800px){.mo-split{grid-template-columns:1fr}}:root{--bg: #f3f4f6;--surface: #ffffff;--surface-2: #f8f9fb;--border: #e1e4ea;--text: #1c222b;--muted: #687385;--primary: #b4541a;--primary-hover: #994615;--primary-soft: #fbeee5;--danger: #c0392b;--sidebar: #1a2027;--sidebar-text: #c3cad4;--sidebar-active: #2a323c;--focus: 0 0 0 3px rgba(180, 84, 26, .25);--radius: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--tone-gray-bg: #eef0f3;--tone-gray-fg: #4b5563;--tone-blue-bg: #e6effc;--tone-blue-fg: #1d4f99;--tone-violet-bg: #efe9fb;--tone-violet-fg: #5b3aa6;--tone-amber-bg: #fdf3dc;--tone-amber-fg: #8a5a00;--tone-green-bg: #e3f4e8;--tone-green-fg: #1f6b3a;--tone-red-bg: #fbe6e4;--tone-red-fg: #9b2c22;--guard-a-soft: rgba(180, 84, 26, .07);--guard-a-strong: rgba(180, 84, 26, .2);--guard-a-text: #8a3d10;--guard-b-soft: rgba(29, 79, 153, .06);--guard-b-strong: rgba(29, 79, 153, .18);--guard-b-text: #1d4f99;color-scheme:light;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:14px;color:var(--text)}@media(prefers-color-scheme:dark){:root{--bg: #12161b;--surface: #1a1f26;--surface-2: #20262e;--border: #2d343e;--text: #e4e8ee;--muted: #97a1b0;--primary: #d0692c;--primary-hover: #e07a3c;--primary-soft: #3a2518;--sidebar: #0e1216;--sidebar-active: #1f262e;--shadow: none;--tone-gray-bg: #2a3038;--tone-gray-fg: #c3cad4;--tone-blue-bg: #1b2d48;--tone-blue-fg: #8fb8f2;--tone-violet-bg: #2c2245;--tone-violet-fg: #c2adf0;--tone-amber-bg: #3a2e12;--tone-amber-fg: #f0c463;--tone-green-bg: #163222;--tone-green-fg: #86d6a2;--tone-red-bg: #3d1c19;--tone-red-fg: #f0a39a;--guard-a-soft: rgba(208, 105, 44, .09);--guard-a-strong: rgba(208, 105, 44, .3);--guard-a-text: #f2b48a;--guard-b-soft: rgba(77, 150, 240, .08);--guard-b-strong: rgba(77, 150, 240, .28);--guard-b-text: #9cc3f5;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.grow{flex:1}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.mt{margin-top:16px}.right{text-align:right}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{color:var(--danger)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{height:28px;padding:0 8px;font-size:13px}.btn.icon{width:30px;padding:0;justify-content:center}label.field{display:flex;flex-direction:column;gap:4px;font-weight:500;font-size:13px}label.field>span.hint{font-weight:400;color:var(--muted);font-size:12px}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:7px 10px;min-height:34px;width:100%}textarea{resize:vertical;min-height:70px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus)}input[type=checkbox]{width:auto;min-height:0;accent-color:var(--primary)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.form-grid .full{grid-column:1 / -1}.check{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.error-box{background:var(--tone-red-bg);color:var(--tone-red-fg);padding:8px 12px;border-radius:6px;font-size:13px}.info-box{background:var(--tone-blue-bg);color:var(--tone-blue-fg);padding:8px 12px;border-radius:6px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.card-body{padding:16px}.card-body.flush{padding:0}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th,.table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2)}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:500;white-space:nowrap}.tone-gray{background:var(--tone-gray-bg);color:var(--tone-gray-fg)}.tone-blue{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}.tone-violet{background:var(--tone-violet-bg);color:var(--tone-violet-fg)}.tone-amber{background:var(--tone-amber-bg);color:var(--tone-amber-fg)}.tone-green{background:var(--tone-green-bg);color:var(--tone-green-fg)}.tone-red{background:var(--tone-red-bg);color:var(--tone-red-fg)}.progress{display:flex;align-items:center;gap:8px;min-width:110px}.progress-track{flex:1;height:6px;border-radius:3px;background:var(--tone-gray-bg);overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:3px}.progress-label{font-size:12px;color:var(--muted);width:38px;text-align:right;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tab{padding:9px 14px;border:none;background:none;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.empty{padding:32px 16px;text-align:center;color:var(--muted)}.page{display:flex;flex-direction:column;gap:16px}.page-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dl{display:grid;grid-template-columns:170px 1fr;gap:8px 16px;margin:0}.dl dt{color:var(--muted)}.dl dd{margin:0}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.dl{grid-template-columns:1fr;gap:2px}.dl dd{margin-bottom:8px}}
