@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--color-page: #ece8de;--color-surface: #f7f3ea;--color-ink: #1d242a;--color-ink-muted: #4a565f;--color-border: #b6ab9a;--color-border-strong: #8d7f6b;--color-accent: #9a5b2c;--color-accent-soft: #dfc8af;--color-success: #29674a;--color-danger: #8b3426;--color-info: #38576e;--tooltip-surface: #1f2830;--tooltip-text: #f8f6f2;--tooltip-border: #8c7d68;--tooltip-shadow: 0 8px 24px rgba(10, 12, 14, .34);--tooltip-max-width: 22rem;--tooltip-offset: .45rem;--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", "Trebuchet MS", sans-serif;--font-mono: "IBM Plex Mono", "Courier New", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-1: .2rem;--radius-2: .35rem;--radius-3: .6rem;--shadow-1: 0 1px 0 rgba(0, 0, 0, .12);--shadow-2: 0 6px 20px rgba(23, 21, 17, .14);--motion-fast: .12s;--motion-medium: .22s;--motion-tooltip: .18s}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--color-ink);background:radial-gradient(circle at 85% -10%,#f4dfc7,#f4dfc700 45%),radial-gradient(circle at -5% 115%,#d8d4cb,#d8d4cb00 55%),linear-gradient(180deg,#ede9df,#e4ddd0);min-height:100vh}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.app-header{position:sticky;top:0;z-index:10;background:#f7f3eaeb;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-bottom:1px solid var(--color-border)}.app-header-inner{max-width:1160px;margin:0 auto;padding:var(--space-4) var(--space-5);display:flex;gap:var(--space-5);align-items:center;justify-content:space-between}.app-title{margin:0;font-family:var(--font-display);font-size:1.35rem;letter-spacing:.02em}.app-subtitle{margin:0;color:var(--color-ink-muted);font-size:.86rem;letter-spacing:.08em;text-transform:uppercase}.app-nav{display:flex;gap:var(--space-2)}.main-content{max-width:1160px;margin:0 auto;width:100%;padding:var(--space-6) var(--space-5) var(--space-7)}.route-title{margin:0 0 var(--space-4);font-family:var(--font-display);font-size:1.65rem}.route-description{margin:0 0 var(--space-5);color:var(--color-ink-muted);max-width:74ch}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-3);box-shadow:var(--shadow-1);padding:var(--space-4)}.card-title{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:1.1rem}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-2)}label{display:flex;flex-direction:column;gap:var(--space-1);font-size:.88rem;color:var(--color-ink-muted)}.label-row{display:inline-flex;align-items:center;gap:var(--space-1)}input,select,button,textarea{font:inherit}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-2);background:#fbf9f4;color:var(--color-ink);padding:var(--space-2) var(--space-3);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-info);outline-offset:2px}input:hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}button,.button-link{border:1px solid var(--color-border-strong);border-radius:var(--radius-2);background:#f3eee5;color:var(--color-ink);padding:var(--space-2) var(--space-3);cursor:pointer;text-decoration:none;transition:transform var(--motion-fast),background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}button:hover,.button-link:hover{border-color:var(--color-accent);background:#f8eddf;transform:translateY(-1px)}button.primary,.button-link.primary{background:var(--color-ink);color:#fbf9f4;border-color:var(--color-ink)}button.primary:hover,.button-link.primary:hover{background:#11171d;border-color:#11171d}button.ghost{background:transparent}button.danger{border-color:var(--color-danger);color:var(--color-danger)}.nav-link{border:1px solid transparent;border-radius:var(--radius-2);padding:var(--space-2) var(--space-3);color:var(--color-ink-muted);text-decoration:none;font-size:.9rem}.nav-link:hover{border-color:var(--color-border);color:var(--color-ink)}.nav-link.active{border-color:var(--color-border-strong);background:#f2ede3;color:var(--color-ink)}.metric-table{width:100%;border-collapse:collapse}.metric-table th,.metric-table td{border-bottom:1px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top}.metric-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted)}.metric-delta{display:block;font-size:.78rem;color:var(--color-ink-muted)}.metric-delta.negative{color:var(--color-danger)}.metric-delta.positive{color:var(--color-success)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--color-border);border-radius:999px;padding:.05rem var(--space-2);font-size:.76rem;color:var(--color-ink-muted);background:#ffffff94}.message{border-left:3px solid var(--color-info);background:#eff4f7;padding:var(--space-3);border-radius:var(--radius-2);color:#173147}.message.error{border-left-color:var(--color-danger);background:#f8ece8;color:#5f2017}.message.success{border-left-color:var(--color-success);background:#eaf5ef;color:#1f4a34}.template-canvas{border:1px dashed var(--color-border-strong);border-radius:var(--radius-2);padding:var(--space-3);background:#ffffff80}.template-section{border:1px solid var(--color-border);border-radius:var(--radius-2);background:#fcf9f3;padding:var(--space-3)}.field-chip{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-2);background:#f2ece2;padding:var(--space-2) var(--space-3);cursor:grab;-webkit-user-select:none;user-select:none}.field-chip-main{min-width:0;overflow-wrap:anywhere}.field-chip-meta{display:inline-flex;align-items:center;gap:var(--space-2)}.info-bubble{position:relative;display:inline-flex;align-items:center}.info-bubble-button{width:1.2rem;height:1.2rem;border-radius:999px;border:1px solid var(--color-border-strong);background:#fff9;color:var(--color-ink-muted);padding:0;font-size:.74rem;font-family:var(--font-mono);line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:help}.info-bubble-button:hover{transform:none;border-color:var(--color-accent);background:#fbf1e6;color:var(--color-ink)}.info-bubble-panel{position:absolute;z-index:30;left:50%;top:calc(100% + var(--tooltip-offset));transform:translate(-50%,-.2rem);width:min(var(--tooltip-max-width),calc(100vw - 2rem));background:var(--tooltip-surface);color:var(--tooltip-text);border:1px solid var(--tooltip-border);border-radius:var(--radius-2);box-shadow:var(--tooltip-shadow);padding:var(--space-2) var(--space-3);font-size:.78rem;line-height:1.35;opacity:0;pointer-events:none;transition:opacity var(--motion-tooltip),transform var(--motion-tooltip)}.info-bubble.open .info-bubble-panel{opacity:1;transform:translate(-50%);pointer-events:auto}.drop-zone{border:1px dashed transparent;border-radius:var(--radius-1);min-height:1.1rem;transition:border-color var(--motion-fast),background var(--motion-fast)}.drop-zone.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.monospace{font-family:var(--font-mono);font-size:.82rem}@media(max-width:960px){.grid-3{grid-template-columns:1fr 1fr}}@media(max-width:720px){.app-header-inner{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.main-content{padding:var(--space-5) var(--space-4) var(--space-6)}.grid-2,.grid-3{grid-template-columns:1fr}.metric-table{display:block;overflow-x:auto}}
