.ip-app{color:var(--text);background:var(--bg);max-width:1600px;margin:0 auto;min-width:0}.ip-app *{box-sizing:border-box}.ip-header,.ip-card-head,.ip-actions,.ip-filter,.ip-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ip-header{align-items:flex-start;justify-content:space-between;margin-bottom:18px}.ip-header h2{font-size:clamp(1.3rem,2vw,1.8rem);margin:0;color:var(--heading)}.ip-header p{margin:6px 0 0;max-width:780px;line-height:1.5;color:var(--muted)}.ip-actions{gap:8px}.ip-app button,.ip-app input,.ip-app select,.ip-app textarea{font:inherit}.ip-btn{min-height:44px;min-width:44px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text);padding:10px 14px;cursor:pointer;font-size:.92rem;line-height:1.35}.ip-btn.primary{background:var(--blue);color:var(--on-primary);border-color:var(--blue);font-weight:700}.ip-btn.success{background:var(--success-text);color:var(--card);border-color:var(--success-text);font-weight:700}.ip-btn.danger{color:var(--danger-text);border-color:var(--danger-text);background:var(--card)}.ip-btn[disabled]{opacity:.55;cursor:not-allowed}.ip-btn:focus-visible,.ip-input:focus-visible,.ip-tab:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.ip-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:18px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.ip-tab{flex:none;scroll-snap-align:start;min-height:48px;border:0;border-bottom:3px solid transparent;padding:10px 14px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;white-space:nowrap}.ip-tab[aria-selected=true]{border-bottom-color:var(--blue);color:var(--blue);font-weight:700}.ip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}.ip-card,.ip-box,.ip-editor,.ip-metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0;overflow-wrap:anywhere}.ip-card h3,.ip-box h3,.ip-editor h3{font-size:1.05rem;margin:0 0 10px;color:var(--heading)}.ip-card-head{justify-content:space-between;align-items:flex-start;margin-bottom:8px}.ip-card-head h3{margin:0}.ip-card p{margin:6px 0;line-height:1.5}.ip-card .ip-actions{margin-top:12px}.ip-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.ip-metric small,.ip-muted{color:var(--muted);font-size:.86rem;line-height:1.5}.ip-metric strong{display:block;font-size:clamp(1.2rem,2vw,1.7rem);margin-top:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ip-badge{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:4px 8px;font-size:.78rem;background:var(--surface,var(--card));color:var(--text);font-weight:600;max-width:100%;overflow-wrap:anywhere}.ip-badge.good{color:var(--success-text);border-color:var(--success-text)}.ip-badge.warn{color:var(--warning-text);border-color:var(--warning-text)}.ip-badge.danger{color:var(--danger-text);border-color:var(--danger-text)}.ip-note{background:color-mix(in srgb,var(--blue) 7%,var(--card));border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:10px;padding:12px 14px;margin:0 0 16px;line-height:1.5;font-size:.9rem}.ip-note.warn{background:color-mix(in srgb,var(--warning-text) 7%,var(--card));border-color:var(--warning-text)}.ip-empty{padding:30px 16px;text-align:center;color:var(--muted);line-height:1.6;border:1px dashed var(--line);border-radius:12px;background:var(--card)}.ip-filter{margin-bottom:16px;align-items:flex-end}.ip-filter label{flex:1 1 180px;min-width:0}.ip-label,.ip-fields>label{display:flex;flex-direction:column;gap:6px;font-size:.87rem;font-weight:600;min-width:0}.ip-input{width:100%;min-height:46px;background:var(--input-bg,var(--card));color:var(--input-text,var(--text));border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:16px!important;font-family:inherit}textarea.ip-input{min-height:100px;resize:vertical;line-height:1.5}.ip-editor{margin:0 0 18px;border-top:3px solid var(--blue)}.ip-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0 16px}.ip-fields .wide{grid-column:1/-1}.ip-fields small{font-weight:400;color:var(--muted);line-height:1.5}.ip-form-error{color:var(--danger-text);white-space:pre-wrap;margin:12px 0;line-height:1.5}.ip-form-error:empty{display:none}.ip-results{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;max-height:280px;overflow-y:auto;margin-top:8px}.ip-results:empty{display:none}.ip-results button{background:var(--card);color:var(--text);border:0;border-bottom:1px solid var(--line);padding:12px;text-align:left;cursor:pointer;min-height:48px}.ip-results button:hover{background:var(--surface,var(--card))}.ip-list{display:flex;flex-direction:column;gap:12px}.ip-list .ip-box{padding:14px}.ip-prose{white-space:pre-wrap;line-height:1.65;margin:10px 0 0;overflow-wrap:anywhere}.ip-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:.83rem;color:var(--muted);line-height:1.5}.ip-check{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:.9rem;font-weight:400}.ip-check input{width:20px;height:20px;flex:none}.ip-checks{display:flex;gap:4px 14px;flex-wrap:wrap}.ip-staff-row{padding:14px 0;border-bottom:1px solid var(--line)}.ip-staff-row:first-child{padding-top:0}.ip-staff-row h4{margin:0;font-size:.95rem}.ip-staff-row .ip-input{max-width:340px;margin-top:6px}.ip-cost-table{width:100%;min-width:0;max-width:100%;border-collapse:collapse;table-layout:fixed}.ip-cost-table td,.ip-cost-table th{padding:11px 8px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere;font-size:.9rem}.ip-cost-table th{color:var(--muted);font-weight:600;white-space:normal;line-height:1.5}.ip-cost-table .number{text-align:right;font-variant-numeric:tabular-nums}.ip-schedule{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ip-loading{padding:30px;text-align:center;color:var(--muted)}.ip-customer{border:1px solid var(--blue);padding:12px;border-radius:10px;background:var(--surface,var(--card));margin-top:8px}.ip-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.ip-section-title h3{margin:0;font-size:1.1rem}.ip-app [hidden]{display:none!important}@media(max-width:767px){.ip-header{gap:14px}.ip-fields{grid-template-columns:1fr}.ip-fields .wide{grid-column:auto}.ip-actions{width:100%}.ip-actions>.ip-btn{flex:1 1 auto}.ip-header>.ip-actions{justify-content:flex-start}.ip-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-card,.ip-box,.ip-editor{padding:14px}.ip-cost-table thead{display:none}.ip-cost-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.ip-cost-table td{display:grid;grid-template-columns:minmax(82px,35%) minmax(0,1fr);gap:10px;border:0;padding:5px 0;text-align:right}.ip-cost-table td:before{content:attr(data-label);min-width:0;overflow-wrap:normal;word-break:normal;text-align:left;color:var(--muted);font-weight:600}.ip-cost-table .number{white-space:normal}.ip-tabs{margin-right:0;max-width:100%}.ip-filter>.ip-btn{width:100%}}@media(prefers-reduced-motion:reduce){.ip-app *{scroll-behavior:auto}}.ip-app .ip-tabs .ip-tab{border-radius:0;box-shadow:none;background:transparent;color:var(--muted)}.ip-app .ip-tabs .ip-tab[aria-selected=true]{color:var(--blue)}.ip-app .help-tip{display:inline-grid;place-items:center;min-width:24px;min-height:24px;vertical-align:middle;margin-left:5px;cursor:help}.ip-app .help-tip:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.ip-guide{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:4px 14px;margin:0 0 16px!important}.ip-guide>summary{font-weight:600;color:var(--text)!important}.ip-guide ol{padding-left:24px;margin:8px 0 12px;display:grid;gap:14px;list-style:none}.ip-guide li p{margin:4px 0 0;color:var(--muted);line-height:1.6;font-size:.9rem}.ip-row-actions{margin-top:10px}.ip-cell-label{display:none}.ip-cell-value{min-width:0}.ip-section-title:not(:first-child){margin-top:24px}@media(max-width:767px){.ip-cost-table td:has(>.ip-cell-label):before{display:none;content:none}.ip-cost-table td>.ip-cell-label{display:block;min-width:0;text-align:left;color:var(--muted);font-weight:600}.ip-cost-table td>.ip-cell-value{text-align:right}.ip-cost-table td>.ip-cell-value:has(.fs-ra){grid-column:1/-1}.ip-guide ol{padding-left:0}.ip-app .fs-ra{max-width:100%;flex-wrap:wrap}}.ip-app details{margin:10px 0}.ip-app summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--muted);font-size:.9rem}@media(max-width:767px){.ip-app{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.ip-cost-table td>.ip-actions{grid-column:1/-1}}
