@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{color-scheme:light;--bg: #f3f6f8;--bg-2: #ebf0f4;--surface: rgba(255, 255, 255, .82);--surface-strong: #ffffff;--surface-soft: rgba(245, 248, 251, .92);--border: rgba(148, 163, 184, .22);--border-strong: rgba(15, 23, 42, .12);--text: #0f172a;--muted: #64748b;--muted-2: #94a3b8;--accent: #0f766e;--accent-2: #d97706;--accent-soft: rgba(15, 118, 110, .12);--danger: #b91c1c;--danger-soft: rgba(185, 28, 28, .12);--shadow-lg: 0 28px 70px rgba(15, 23, 42, .12);--shadow-md: 0 18px 40px rgba(15, 23, 42, .1);--shadow-sm: 0 10px 24px rgba(15, 23, 42, .08);--radius-xl: 28px;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 12px;--radius-xs: 10px;--font-sans: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);color:var(--text);background:radial-gradient(circle at top left,rgba(15,118,110,.14),transparent 28%),radial-gradient(circle at 80% 0%,rgba(217,119,6,.12),transparent 24%),linear-gradient(180deg,#f8fafc 0%,var(--bg) 42%,#eef3f6 100%)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{width:100%;border:1px solid var(--border);background:#ffffffe0;border-radius:12px;padding:.8rem .95rem;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input:focus,select:focus,textarea:focus{border-color:#0f766e8c;box-shadow:0 0 0 4px #0f766e1f}.app-shell{min-height:100vh;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(180deg,#ffffffe0,#fafcffd1);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,var(--accent),#155e75);box-shadow:inset 0 1px #ffffff4d}.brand-title{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.brand-subtitle{font-size:.9rem;color:var(--muted);margin-top:.18rem}.nav-tabs{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nav-tab{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;background:#ffffff94;color:var(--muted);padding:.72rem 1rem;border-radius:999px;box-shadow:inset 0 1px #fff9;transition:transform .16s ease,background .16s ease,border-color .16s ease,color .16s ease}.nav-tab:hover{transform:translateY(-1px);color:var(--text)}.nav-tab.active{color:#fff;background:linear-gradient(135deg,var(--accent),#0f4c5c);border-color:#0f766e4d}.main-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.summary-panel{position:sticky;top:20px;display:grid;gap:14px}.summary-card{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.summary-card.accent{background:linear-gradient(180deg,#0f766e2e,#ffffffe6)}.summary-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#0f172a0f;color:var(--text);flex:0 0 auto}.summary-icon.soft{background:var(--accent-soft);color:var(--accent)}.summary-title{font-weight:700;margin-bottom:4px}.summary-text{color:var(--muted);font-size:.92rem;line-height:1.55}.work-panel{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden}.work-panel.hidden{display:none}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 22px 12px;border-bottom:1px solid rgba(148,163,184,.14)}.panel-header h1{margin:0;font-size:1.42rem;letter-spacing:-.03em}.panel-header p{margin:8px 0 0;color:var(--muted);line-height:1.6}.panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.action-button,.ghost-button,.icon-button,.segment,.slot-delete,.file-delete{border:1px solid var(--border);background:#ffffffd6;color:var(--text);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:.75rem 1rem;line-height:1;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}.action-button:hover,.ghost-button:hover,.icon-button:hover,.segment:hover,.slot-delete:hover,.file-delete:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-button.primary{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--accent),#0f4c5c)}.action-button.danger,.segment.danger{color:var(--danger);background:#ffffffe6;border-color:#b91c1c2e}.action-button.ghost,.ghost-button,.icon-button,.file-delete,.slot-delete,.segment{background:#ffffffd6}.action-button svg,.ghost-button svg,.icon-button svg,.segment svg,.slot-delete svg,.file-delete svg{flex:none}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pdf-layout,.triangle-layout,.history-layout,.settings-layout{display:grid;gap:18px;padding:18px 22px 22px}.pdf-layout{grid-template-columns:280px minmax(0,1fr) 320px;align-items:start}.file-rail,.inspector,.triangle-inputs,.triangle-results,.history-rail,.history-detail,.settings-card,.output-panel{min-width:0;border-radius:var(--radius-lg)}.file-rail,.inspector,.triangle-inputs,.triangle-results,.history-rail,.history-detail,.settings-card{padding:16px;border:1px solid rgba(148,163,184,.16);background:#ffffffb8}.rail-head,.inspector-title-row,.output-toolbar,.detail-header,.detail-rename{display:flex;align-items:center;justify-content:space-between;gap:12px}.rail-title,.inspector-title,.output-title,.detail-section-title,.settings-title,.slot-canvas-title{font-weight:700;letter-spacing:-.02em}.rail-subtitle,.output-subtitle,.slot-canvas-subtitle,.detail-subtitle,.muted{color:var(--muted);line-height:1.55}.rail-buttons,.output-actions,.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.icon-button{width:40px;height:40px;padding:0}.file-input-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.drop-zone{position:relative;display:flex;gap:12px;align-items:center;margin-top:14px;padding:16px;border-radius:18px;border:1px dashed rgba(15,118,110,.26);background:linear-gradient(180deg,#0f766e14,#fffc)}.drop-title{font-weight:700}.drop-subtitle{color:var(--muted);font-size:.92rem;margin-top:4px}.duplicate-check-card{margin-top:14px;padding:14px;border-radius:18px;border:1px solid rgba(148,163,184,.2);background:#ffffffdb;display:grid;gap:12px}.duplicate-check-card.success{background:linear-gradient(180deg,#10b98114,#ffffffeb)}.duplicate-check-card.warning{background:linear-gradient(180deg,#f59e0b1f,#ffffffeb)}.duplicate-check-card.pending{background:linear-gradient(180deg,#0ea5e91f,#ffffffeb)}.duplicate-check-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.duplicate-check-title{font-weight:700}.duplicate-check-subtitle{margin-top:4px;color:var(--muted);font-size:.88rem;line-height:1.5}.duplicate-check-pill{flex:none;border-radius:999px;padding:.4rem .7rem;font-size:.78rem;font-weight:700;border:1px solid transparent}.duplicate-check-pill.success{color:#047857;background:#10b9811f;border-color:#10b98129}.duplicate-check-pill.warning{color:#b45309;background:#f59e0b26;border-color:#f59e0b2e}.duplicate-check-pill.pending{color:#075985;background:#0ea5e924;border-color:#0ea5e92e}.duplicate-check-summary{color:var(--text);line-height:1.55}.duplicate-check-metrics{display:flex;flex-wrap:wrap;gap:8px}.duplicate-check-metrics span{display:inline-flex;align-items:center;padding:.32rem .62rem;border-radius:999px;border:1px solid rgba(148,163,184,.2);background:#ffffffc7;color:var(--muted);font-size:.78rem;font-weight:600}.duplicate-check-block{display:grid;gap:8px}.duplicate-check-block-title{color:var(--muted);font-size:.84rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.duplicate-check-list{display:grid;gap:8px}.duplicate-check-item{display:grid;gap:2px;padding:10px 12px;border-radius:14px;background:#ffffffe6;border:1px solid rgba(148,163,184,.14)}.duplicate-check-item strong{font-size:.92rem}.duplicate-check-item span,.duplicate-check-item small{color:var(--muted);line-height:1.45}.file-list{display:grid;gap:12px;margin-top:14px}.file-card{padding:14px;border-radius:18px;background:#ffffffe6;border:1px solid rgba(148,163,184,.2)}.file-card-head{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:start}.file-card-tools{display:flex;align-items:center;gap:8px}.file-grip{color:var(--muted-2);margin-top:1px}.file-name{font-weight:600;line-height:1.35}.file-meta{margin-top:4px;color:var(--muted);font-size:.88rem}.file-duplicate-badge{border-radius:999px;padding:.32rem .56rem;font-size:.75rem;font-weight:700;border:1px solid transparent;white-space:nowrap}.file-duplicate-badge.exact{color:#b45309;background:#f59e0b24;border-color:#f59e0b2e}.file-duplicate-badge.likely{color:#0369a1;background:#0ea5e91f;border-color:#0ea5e929}.file-duplicate-badge.pending{color:#075985;background:#0ea5e91f;border-color:#0ea5e929}.file-duplicate-badge.disabled{color:#475569;background:#94a3b829;border-color:#94a3b833}.file-duplicate-note{margin-top:10px;padding:10px 12px;border-radius:14px;color:var(--muted);font-size:.86rem;line-height:1.5;background:#ffffffb8;border:1px solid rgba(148,163,184,.14)}.page-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.page-pill{padding:.35rem .6rem;border-radius:999px;font-size:.8rem;color:var(--accent);background:#0f766e1a}.page-pill.duplicate{color:#92400e;background:#f59e0b24;border:1px solid rgba(245,158,11,.18)}.page-pill.duplicate.likely{color:#075985;background:#0ea5e91f;border-color:#0ea5e92e}.page-pill em{font-style:normal;margin-left:.4rem;font-size:.74rem;font-weight:700}.file-delete,.slot-delete{width:36px;height:36px;padding:0;color:var(--muted)}.canvas-column{display:grid;gap:18px}.slot-canvas-shell{padding:16px;border-radius:var(--radius-lg);border:1px solid rgba(148,163,184,.16);background:#ffffffc7}.slot-canvas-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.paper-stage{position:relative;width:100%;max-width:100%;overflow:hidden;border-radius:22px;background:linear-gradient(180deg,#fffffffa,#f7fafce0);border:1px solid rgba(148,163,184,.18);box-shadow:inset 0 1px #ffffffbf,var(--shadow-sm)}.paper-sheet{position:relative;overflow:hidden}.paper-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(15,118,110,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(15,118,110,.06) 1px,transparent 1px);background-size:24px 24px;pointer-events:none;opacity:.6}.paper-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.96rem;z-index:1}.slot-card{position:absolute;border-radius:18px;border:1px solid rgba(15,118,110,.22);background:#ffffffb3;box-shadow:0 14px 30px #0f172a14;padding:10px;display:grid;gap:10px;z-index:2;cursor:grab;overflow:hidden}.slot-card.is-active{border-color:#0f766e8c;box-shadow:0 16px 34px #0f766e2e}.slot-card:active{cursor:grabbing}.slot-card-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.slot-chip{padding:.35rem .55rem;border-radius:999px;color:var(--accent);background:#0f766e1f;font-size:.8rem;font-weight:600}.slot-card-body{min-height:0}.slot-assignment{font-weight:600;line-height:1.45;color:var(--text)}.slot-dimensions{margin-top:6px;color:var(--muted);font-size:.85rem}.slot-resize-handle{position:absolute;right:8px;bottom:8px;width:16px;height:16px;border-radius:5px;border:1px solid rgba(15,118,110,.28);background:linear-gradient(135deg,#0f766e38,#0f766e6b);cursor:nwse-resize}.output-panel{border:1px solid rgba(148,163,184,.16);background:#ffffffc2;padding:16px}.preview-frame-wrap{margin-top:12px;height:320px;border-radius:18px;overflow:hidden;border:1px solid rgba(148,163,184,.16);background:#fff}.pdf-preview-frame,.history-preview-frame{width:100%;height:100%;border:0;background:#fff}.preview-placeholder{height:100%;display:grid;place-items:center;gap:8px;color:var(--muted);padding:24px;text-align:center}.preview-placeholder.small{min-height:180px}.inspector{display:grid;gap:14px}.inspector-section{display:grid;gap:12px;padding:16px;border-radius:18px;background:#ffffffd1;border:1px solid rgba(148,163,184,.16)}.inspector-section.full{background:#ffffffb3}.field{display:grid;gap:8px}.field>span{color:var(--muted);font-size:.86rem}.field-grid{display:grid;gap:10px}.triangle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-summary,.slot-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;color:var(--muted);font-size:.9rem}.segmented{display:flex;gap:8px;flex-wrap:wrap}.segmented.compact .segment{padding:.68rem .9rem}.segment{border-radius:14px;padding:.75rem 1rem}.segment.active{color:#fff;background:linear-gradient(135deg,var(--accent),#0f4c5c);border-color:transparent}.flip{transform:scaleX(-1)}.slot-editor{display:grid;gap:10px}.slot-counter{color:var(--muted);font-size:.86rem}.status-line{display:flex;align-items:center;gap:10px;padding:14px 22px 20px;color:var(--muted);border-top:1px solid rgba(148,163,184,.14)}.triangle-layout{grid-template-columns:340px minmax(0,1fr);align-items:start}.triangle-inputs,.triangle-results{display:grid;gap:14px}.triangle-results{padding:16px}.result-card{padding:16px;border-radius:22px;background:#ffffffdb;border:1px solid rgba(148,163,184,.16);box-shadow:var(--shadow-sm)}.result-card.primary{background:linear-gradient(180deg,#0f766e1a,#ffffffeb)}.result-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.result-title{font-weight:700;font-size:1.05rem}.result-subtitle{color:var(--muted);margin-top:5px}.result-badge{padding:.4rem .7rem;border-radius:999px;background:#0f766e1f;color:var(--accent);font-size:.8rem;font-weight:600}.triangle-diagram{width:100%;height:auto;display:block}.triangle-diagram.empty{min-height:240px;display:grid;place-items:center;color:var(--muted);background:#ffffffb8;border-radius:20px;border:1px dashed rgba(148,163,184,.28)}.triangle-label{font-size:14px;font-weight:700;fill:var(--text)}.triangle-edge-label{font-size:12px;font-weight:600;fill:var(--accent)}.triangle-footnote{font-size:11px;fill:var(--muted)}.solution-switcher{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.metric-card{padding:14px;border-radius:18px;background:#ffffffe6;border:1px solid rgba(148,163,184,.16)}.metric-card.wide{grid-column:span 3}.metric-label{color:var(--muted);font-size:.84rem}.metric-value{margin-top:8px;font-size:1.12rem;font-weight:700;letter-spacing:-.02em}.history-layout{grid-template-columns:300px minmax(0,1fr);align-items:start}.history-rail,.history-detail{display:grid;gap:14px}.history-group-title{font-weight:700;margin-bottom:10px}.history-group-list{display:grid;gap:10px}.history-item{text-align:left;padding:14px;border-radius:18px;background:#ffffffdb;border:1px solid rgba(148,163,184,.16)}.history-item.active{border-color:#0f766e57;box-shadow:0 14px 30px #0f766e14}.history-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.history-badge{padding:.34rem .56rem;border-radius:999px;font-size:.78rem;font-weight:600}.history-badge.pdf{color:var(--accent);background:#0f766e1f}.history-badge.triangle{color:#7c2d12;background:#d9770626}.history-time{color:var(--muted-2);font-size:.78rem}.history-item-title{margin-top:10px;font-weight:700;line-height:1.45}.history-item-meta{margin-top:6px;color:var(--muted);font-size:.86rem}.detail-card{padding:18px;border-radius:20px;background:#ffffffdb;border:1px solid rgba(148,163,184,.16);display:grid;gap:14px}.detail-title{font-size:1.18rem;font-weight:700;margin-top:8px}.detail-rename{gap:10px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.detail-stat{padding:14px;border-radius:16px;background:#ffffffe6;border:1px solid rgba(148,163,184,.16)}.detail-stat span{display:block;color:var(--muted);font-size:.84rem}.detail-stat strong{display:block;margin-top:6px;font-size:1rem}.detail-section{display:grid;gap:10px}.source-list,.history-input-grid{display:grid;gap:8px}.source-row{padding:12px 14px;border-radius:14px;background:#ffffffdb;border:1px solid rgba(148,163,184,.14)}.source-name{font-weight:600}.source-meta,.history-result-box{color:var(--muted);margin-top:5px;line-height:1.55}.detail-template{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted)}.history-result-box{padding:14px;border-radius:16px;background:#ffffffe6;border:1px solid rgba(148,163,184,.16)}.settings-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card{display:grid;gap:12px}.settings-card.note{grid-column:1 / -1;color:var(--muted)}.toggle-list{display:grid;gap:10px}.toggle-item{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;background:#ffffffdb;border:1px solid rgba(148,163,184,.16)}.toggle-item input{width:auto;margin-top:4px}.toggle-title{font-weight:600}.toggle-subtitle{color:var(--muted);margin-top:4px;line-height:1.55}.empty-state{display:flex;align-items:center;justify-content:center;gap:8px;min-height:200px;padding:20px;border-radius:18px;border:1px dashed rgba(148,163,184,.3);color:var(--muted);background:#ffffffa8;text-align:center}.empty-state.large{min-height:360px}.empty-state.wide{grid-column:1 / -1}.muted{color:var(--muted)}.history-preview-frame{min-height:340px}@media(max-width:1320px){.main-grid{grid-template-columns:1fr}.summary-panel{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}.pdf-layout,.triangle-layout,.history-layout,.settings-layout{grid-template-columns:1fr}}@media(max-width:980px){.app-shell{padding:14px}.topbar,.panel-header{flex-direction:column;align-items:stretch}.nav-tabs{width:100%}.summary-panel{grid-template-columns:1fr}.main-grid,.pdf-layout,.triangle-layout,.history-layout,.settings-layout{gap:14px}.pdf-layout{padding:14px}.result-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card.wide{grid-column:span 2}}@media(max-width:720px){.summary-panel,.result-grid,.detail-grid,.triangle-grid{grid-template-columns:1fr}.metric-card.wide{grid-column:span 1}.nav-tabs{gap:8px}.nav-tab{flex:1 1 calc(50% - 8px);justify-content:center}.panel-actions,.rail-buttons,.output-actions,.detail-actions{width:100%}.panel-actions .action-button,.output-actions .action-button,.detail-actions .action-button{flex:1 1 calc(50% - 8px)}}
