/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.table{display:table}}:root{color:#f6f7fb;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f6f7fb;--muted:#99a3bc;--line:#ffffff1a;--panel:#151d33db;--lime:#c9ff63;background:#090e1c;font-family:Inter,ui-rounded,SF Pro Rounded,SF Pro Display,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;min-height:100%}html{background:#090e1c}body{overscroll-behavior-y:none;background:radial-gradient(circle at 85% -10%,#263160 0,#0000 35rem),#090e1c;margin:0;overflow-x:hidden}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline-offset:3px;outline:3px solid #c9ff63}.home-shell,.screen-shell{width:min(100%,680px);min-height:100dvh;padding:max(1.25rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));margin:0 auto}.home-shell{flex-direction:column;gap:1rem;display:flex}.home-top{justify-content:space-between;align-items:center;padding-top:.5rem;display:flex}.eyebrow{color:#8e99b5;letter-spacing:.13em;text-transform:uppercase;font-size:.7rem;font-weight:800}h1,h2,p{margin-top:0}.home-top h1{letter-spacing:-.05em;margin:.2rem 0 0;font-size:clamp(2rem,9vw,3.5rem);line-height:1}.level-orb{width:3.7rem;height:3.7rem;color:var(--lime);border:1px solid #92b84d;border-radius:50%;place-content:center;font-size:1.05rem;font-weight:900;display:grid;box-shadow:inset 0 0 25px #c9ff6314}.level-orb span{text-align:center;color:#9aa77c;letter-spacing:.12em;font-size:.55rem;display:block}.streak-card,.panel,.scenario-card,.card-dock{border:1px solid var(--line);background:var(--panel);border-radius:1.35rem;box-shadow:0 18px 60px #0003}.streak-card{padding:1.15rem}.streak-card>div:first-child{justify-content:space-between;align-items:baseline;display:flex}.streak-card span,.streak-card p{color:var(--muted);font-size:.82rem}.streak-card strong{font-size:1.4rem}.streak-card p{margin:.65rem 0 0}.streak-dots{grid-template-columns:repeat(7,1fr);gap:.45rem;margin-top:.8rem;display:grid}.streak-dots i{background:#30394e;border-radius:2rem;height:.4rem}.streak-dots i.active{background:var(--lime);box-shadow:0 0 16px #c9ff6380}.play-card{text-align:left;color:#102014;background:linear-gradient(135deg,#c9ff63,#93f59f);border:0;border-radius:1.5rem;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:100%;min-height:9rem;padding:1.25rem;transition:transform .16s;display:grid;box-shadow:0 20px 50px #76dc6f29}.play-card:active{transform:scale(.985)}.play-card .play-icon{background:#081c101f;border-radius:50%;place-items:center;width:3rem;height:3rem;display:grid}.play-card small,.play-card strong,.play-card em{display:block}.play-card small{text-transform:uppercase;letter-spacing:.09em;opacity:.65;font-size:.72rem;font-weight:800}.play-card strong{letter-spacing:-.03em;margin:.12rem 0;font-size:1.55rem}.play-card em{opacity:.67;font-size:.78rem;font-style:normal}.scenario-select-card{text-align:left;background:#1a2538d1;border:1px solid #c9ff634d;border-radius:1.15rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;width:100%;min-height:4.8rem;padding:.9rem 1rem;display:grid}.scenario-select-card>span:first-child{width:2.35rem;height:2.35rem;color:var(--lime);background:#c9ff631f;border-radius:.75rem;place-items:center;font-size:1.25rem;display:grid}.scenario-select-card strong,.scenario-select-card small{display:block}.scenario-select-card strong{font-size:.9rem}.scenario-select-card small{color:var(--muted);margin-top:.22rem;font-size:.7rem}.scenario-select-card>b{color:var(--lime);font-size:1.15rem}.home-actions{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.home-actions button{border:1px solid var(--line);text-align:left;background:#12192be6;border-radius:1.25rem;min-width:0;min-height:8rem;padding:1rem}.home-actions button>span{color:var(--lime);font-size:1.5rem}.home-actions strong,.home-actions small{overflow-wrap:anywhere;display:block}.home-actions strong{margin-top:.75rem;font-size:.9rem}.home-actions small{color:var(--muted);margin-top:.2rem}.privacy-note{text-align:center;color:#65708a;margin:auto 0 0;font-size:.72rem}.scenario-picker-heading{margin:1.35rem 0 .9rem}.scenario-picker-heading h1{letter-spacing:-.04em;margin:.35rem 0 .5rem;font-size:1.8rem}.scenario-picker-heading p{color:var(--muted);margin:0;font-size:.84rem;line-height:1.55}.scenario-picker-list{gap:.65rem;display:grid}.scenario-choice{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:1.05rem;grid-template-columns:2.3rem 1fr auto;align-items:start;gap:.7rem;width:100%;min-width:0;padding:.9rem .8rem;display:grid}.scenario-choice:active{transform:scale(.99)}.scenario-number{width:2.1rem;height:2.1rem;color:var(--lime);background:#25324a;border-radius:.7rem;place-items:center;font-size:.7rem;font-weight:900;display:grid}.scenario-choice-copy{min-width:0}.scenario-choice-copy strong,.scenario-choice-copy small,.scenario-choice-copy em{overflow-wrap:anywhere;display:block}.scenario-choice-copy strong{font-size:.88rem}.scenario-choice-copy small{color:#aeb8cc;margin-top:.25rem;font-size:.69rem;line-height:1.4}.scenario-choice-copy em{color:#7688a3;margin-top:.35rem;font-size:.6rem;font-style:normal}.scenario-choice>b{color:var(--lime);align-self:center;font-size:1.05rem}.game-header{letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:800;display:flex}.icon-button,.quiet-button,.remove-button{background:0 0;border:0;min-height:44px}.icon-button{background:#ffffff12;border-radius:50%;width:44px;font-size:1.35rem}.difficulty{color:var(--lime)}.scenario-card{background:linear-gradient(150deg,#2b385cf2,#141c30e6);margin-top:1rem;padding:1.25rem}.scenario-card h1{letter-spacing:-.03em;margin:.35rem 0 .55rem;font-size:1.5rem}.scenario-card p{color:#c5cbe0;margin:0;font-size:.92rem;line-height:1.6}.tap-guide{color:#b7c1d8;align-items:center;gap:.55rem;margin-top:.9rem;font-size:.72rem;font-weight:800;display:flex}.tap-guide span{align-items:center;gap:.35rem;display:flex}.tap-guide b{background:var(--lime);color:#122014;border-radius:50%;place-items:center;width:1.3rem;height:1.3rem;font-size:.65rem;display:inline-grid}.tap-guide i{color:#5d6881;font-style:normal}.build-progress{color:#929db6;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.9rem .35rem .1rem;font-size:.7rem;font-weight:800;display:grid}.build-progress>div{background:#293248;border-radius:2rem;height:.35rem;overflow:hidden}.build-progress>div i{border-radius:inherit;background:var(--lime);height:100%;transition:width .2s;display:block}.build-progress>b{color:var(--lime)}.builder-screen{padding-bottom:max(6rem, calc(4.5rem + env(safe-area-inset-bottom)))}.architecture-board{flex-direction:column;align-items:center;padding:.65rem .15rem 0;display:flex}.architecture-map{background:radial-gradient(circle at 50% 0,#2c708438,#0000 15rem),#101a2b;border:1px solid #3d5970;border-radius:1.25rem;margin-top:.8rem;overflow:hidden;box-shadow:inset 0 0 0 1px #54d8e10d}.architecture-map>header{background:#040c1785;border-bottom:1px solid #304657;justify-content:space-between;align-items:center;min-height:2.65rem;padding:.65rem .85rem;display:flex}.architecture-map>header span{color:#64d9dc;letter-spacing:.04em;font-size:.76rem;font-weight:900}.architecture-map>header small{color:#778ba0;font-size:.65rem}.map-client{justify-content:center;padding-top:.85rem;display:flex}.map-client span{background:#26334a;border:1px solid #536379;border-radius:2rem;padding:.45rem .9rem;font-size:.72rem;font-weight:800}.map-ingress-line{text-align:center;color:#68c9d0;height:1.4rem;line-height:1.4rem}.region-canvas{background:linear-gradient(90deg,#1a3d4a1f,#1a3d4a08);border:1px dashed #36abb4;border-radius:.5rem;min-height:22rem;margin:0 .65rem .55rem;padding:1.7rem .55rem .8rem;position:relative;overflow:hidden}.az{pointer-events:none;border:1px dashed #529aaf6b;border-radius:.4rem;width:calc(50% - .65rem);position:absolute;top:1.45rem;bottom:.65rem}.az-left{left:.45rem}.az-right{right:.45rem}.az span{color:#55798c;text-transform:uppercase;font-size:.52rem;position:absolute;top:.25rem;left:.35rem}.map-flow-line{opacity:.38;background:linear-gradient(#5dcbd2 70%,#0000);width:2px;position:absolute;top:3.6rem;bottom:2rem;left:50%}.map-flow-label{color:#4e8794;white-space:nowrap;background:#132334;border-radius:1rem;padding:.15rem .4rem;font-size:.5rem;position:absolute;top:.35rem;left:50%;transform:translate(-50%)}.map-nodes{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem .65rem;padding-top:1.05rem;display:grid;position:relative}.map-node-wrap{min-width:0;position:relative}.map-node-wrap:nth-child(odd):last-child{grid-column:1/3;justify-self:center;width:calc(50% - .35rem)}.map-node{width:100%;min-width:0;min-height:5rem;color:var(--ink);text-align:center;background:#1a253bf0;border:1px dashed #6a7891;border-radius:.8rem;padding:.5rem .42rem .48rem;box-shadow:0 7px 15px #0000002e}.map-node b{color:#172334;background:#edf3f4;border-radius:.4rem;place-items:center;width:1.55rem;height:1.55rem;margin:-.15rem auto .22rem;font-size:.78rem;display:grid}.map-node small,.map-node strong,.map-node em{overflow-wrap:anywhere;display:block}.map-node small{color:#7d91a8;letter-spacing:.04em;font-size:.56rem}.map-node strong{margin-top:.18rem;font-size:.76rem}.map-node em{color:#65788d;margin-top:.18rem;font-size:.54rem;font-style:normal;line-height:1.2}.map-node-wrap.filled .map-node{background:#1b3445;border-style:solid;border-color:#50b9c1}.map-node-wrap.filled .map-node b{background:#62dbe0}.map-remove{color:#aab4c5;z-index:2;background:#182338;border:1px solid #526177;border-radius:50%;width:30px;min-height:30px;position:absolute;top:-.45rem;right:-.35rem}.map-node-wrap:before{content:"↓";color:#55abb5;font-size:.7rem;position:absolute;top:-.92rem;left:50%;transform:translate(-50%)}.pattern-fanout .map-node-wrap:not(:first-child):nth-child(2n):before,.pattern-branch .map-node-wrap:nth-child(n+3):nth-child(odd):before{content:"↙"}.pattern-fanout .map-node-wrap:not(:first-child):nth-child(odd):before,.pattern-branch .map-node-wrap:nth-child(n+3):nth-child(2n):before{content:"↘"}.multi-az-stacks{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid;position:relative}.az-stack{background:#0c1b2bb8;border:1px dashed #529aaf8c;border-radius:.5rem;min-width:0;padding:.55rem .4rem .7rem}.az-stack>strong{color:#68c9d0;text-align:center;margin-bottom:.8rem;font-size:.62rem;display:block}.az-stack .map-node-wrap{margin-top:.85rem}.az-stack .map-node-wrap:before{content:"↓"}.az-stack .map-node{min-height:4rem}.az-stack .map-node b{width:1.3rem;height:1.3rem;font-size:.65rem}.az-stack .map-node small{font-size:.5rem}.az-stack .map-node strong{font-size:.66rem}.az-stack .map-node em{font-size:.5rem}.pattern-multi-az .az,.pattern-multi-az .map-flow-line{display:none}.architecture-map.graded .map-node:disabled{opacity:1}.architecture-map.graded .map-node-wrap.right .map-node{background:#243b31;border-color:#8ed84e}.architecture-map.graded .map-node-wrap.right .map-node b{background:var(--lime);color:#18301c}.architecture-map.graded .map-node-wrap.wrong .map-node{background:#3a2730;border-color:#cf6d65}.architecture-map.graded .map-node-wrap.wrong .map-node b{color:#3b1716;background:#ff887b}.architecture-map.graded .map-node-wrap.partial .map-node{background:#3a3224;border-color:#d19b52}.architecture-map.graded .map-node-wrap.partial .map-node b{color:#3a260b;background:#ffc66d}:is(.pattern-linear,.pattern-async,.pattern-workflow,.pattern-multi-az,.pattern-cache-aside) .map-nodes{grid-template-columns:1fr;padding-inline:20%}:is(.pattern-linear,.pattern-async,.pattern-workflow,.pattern-multi-az,.pattern-cache-aside) .map-node-wrap,:is(.pattern-linear,.pattern-async,.pattern-workflow,.pattern-multi-az,.pattern-cache-aside) .map-node-wrap:nth-child(odd):last-child{grid-column:auto;width:100%}.pattern-fanout .map-node-wrap:first-child,.pattern-branch .map-node-wrap:nth-child(-n+3){grid-column:1/3;justify-self:center;width:calc(50% - .35rem)}.pattern-branch .az{opacity:.22}.pattern-cache-aside .map-node-wrap:nth-child(4) .map-node{background:#193a3c;border-color:#67dfdc}.pattern-cache-aside .map-node-wrap:nth-child(4):after{content:"命中 → 返回";color:#67dfdc;white-space:nowrap;font-size:.52rem;position:absolute;top:50%;right:-3.4rem}.pattern-cache-aside .map-node-wrap:nth-child(5) .map-node{border-color:#74c7ff}.pattern-cache-aside .map-node-wrap:nth-child(5):after{content:"未命中 → 回源";color:#74c7ff;white-space:nowrap;font-size:.52rem;position:absolute;top:50%;left:-4rem}.pattern-multi-az .map-node{border-left-color:#4fa4c6;border-right-color:#4fa4c6}.map-result{z-index:2;color:#64cbd1;flex-direction:column;align-items:center;margin:.45rem auto 0;font-size:.65rem;display:flex;position:relative}.map-result span{color:#9bc8cf;background:#182a3b;border:1px solid #477181;border-radius:2rem;padding:.35rem .7rem;font-weight:800}.supporting-controls{border-top:1px solid #40657759;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.55rem .75rem .15rem;display:flex}.supporting-controls span{color:#6f98a4;margin-right:.15rem;font-size:.56rem}.supporting-controls b{color:#9bc3c9;background:#172b38;border:1px solid #3b5968;border-radius:.5rem;padding:.25rem .45rem;font-size:.56rem;font-weight:700}.production-flow{background:#08121f7a;border:1px solid #4b718273;border-radius:.65rem;margin:.65rem .75rem .15rem;padding:.55rem .65rem}.production-flow-title{color:#77aeb9;letter-spacing:.06em;margin-bottom:.35rem;font-size:.58rem;font-weight:800;display:block}.production-flow p{color:#9db4bd;overflow-wrap:anywhere;margin:.25rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.56rem;line-height:1.45}.flow-token{color:#d8eff1;font-family:inherit;font-size:inherit;border:1px solid #5a7486;border-radius:.25rem;padding:.08rem .25rem;display:inline-block}.graded-token{color:#a4f0ed;background:#2770752e;border-color:#6cc5cc}.diagram-canvas{background-color:#0b1827;background-image:linear-gradient(#4f84950e 1px,#0000 1px),linear-gradient(90deg,#4f84950e 1px,#0000 1px);background-size:1.35rem 1.35rem;border:1px solid #467e917a;border-radius:.85rem;margin:.65rem;position:relative;overflow:hidden}.diagram-svg{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.diagram-svg marker path{fill:#55b6c1}.diagram-edge{stroke:#55b6c1;stroke-width:1.5px;vector-effect:non-scaling-stroke;opacity:.78}.diagram-edge.dashed{stroke:#72889a;stroke-dasharray:5 4;opacity:.6}.diagram-edge-label{fill:#8fb1bb;stroke:#0b1827;stroke-width:1.1px;paint-order:stroke;text-anchor:middle;font-size:1.55px;font-weight:800}.diagram-group{z-index:0;pointer-events:none;background:#1e4b5812;border:1px dashed #4eb2bf7a;border-radius:.7rem;position:absolute}.diagram-group span{color:#5f8e9d;letter-spacing:.08em;font-size:.55rem;font-weight:900;position:absolute;top:.35rem;left:.45rem}.diagram-node-wrap,.diagram-node.fixed-node{z-index:3;position:absolute;transform:translate(-50%,-50%)}.diagram-node-wrap{width:clamp(5.2rem,25%,7.6rem)}.diagram-node{color:#edf7f8;text-align:center;background:#17283a;border:1px solid #476579;border-radius:.72rem;min-width:0;box-shadow:0 .35rem .85rem #0000003d}.diagram-node-wrap .diagram-node{width:100%;min-height:3.55rem;padding:.48rem .3rem;position:relative}.diagram-node.fixed-node{place-content:center;width:clamp(4.8rem,22%,7rem);min-height:2.7rem;padding:.42rem .3rem;display:grid}.diagram-node small,.diagram-node strong,.diagram-node em{overflow-wrap:anywhere;display:block}.diagram-node small{color:#718da0;letter-spacing:.04em;font-size:.47rem;font-weight:800}.diagram-node strong{margin-top:.16rem;font-size:.66rem;line-height:1.15}.diagram-node strong i{border-radius:50%;place-items:center;width:1rem;height:1rem;margin-right:.2rem;font-size:.65rem;font-style:normal;display:inline-grid}.diagram-node em{color:#60778a;margin-top:.15rem;font-size:.47rem;font-style:normal}.diagram-node.slot-node{border-style:dashed}.diagram-node.slot-node.selected{background:#173646;border-style:solid;border-color:#54c5ce}.diagram-node.slot-node.active{border-color:var(--lime);outline:3px solid #c9ff6333}.diagram-node.kind-data{background:#20263d;border-color:#6c73a8}.diagram-node.kind-control{background:#302a20;border-color:#a47c4d}.diagram-node.kind-ops{color:#b5c3d0;background:#17202d;border-color:#53657a}.diagram-node.kind-actor{background:#26344b;border-radius:2rem}.diagram-node.right{color:#d7ff9a;background:#22392e;border-color:#80cd4e}.diagram-node.right strong i{background:var(--lime);color:#173118}.diagram-node.partial{color:#ffd18b;background:#3a3022;border-color:#dfa458}.diagram-node.partial strong i{color:#3a260b;background:#ffc66d}.diagram-node.wrong{color:#ffaaa0;background:#3b252b;border-color:#dc7168}.diagram-node.wrong strong i{color:#3b1716;background:#ff887b}.diagram-node:disabled{opacity:1}.diagram-remove{z-index:4;color:#b7c0ce;background:#152134;border:1px solid #59677b;border-radius:50%;width:1.7rem;min-height:1.7rem;font-size:.9rem;position:absolute;top:-.52rem;right:-.45rem}.answer-review{margin-top:.75rem;padding:.8rem}.answer-review>header{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;display:flex}.answer-review h2{margin:.12rem 0 0;font-size:.98rem}.answer-review>header>strong{color:var(--lime);background:#c9ff631f;border-radius:2rem;flex:none;padding:.28rem .45rem;font-size:.62rem}.answer-review-list{gap:.42rem;display:grid}.answer-row{background:#131f31b8;border:1px solid #586c8573;border-radius:.62rem;grid-template-columns:1.55rem 1fr;align-items:start;gap:.5rem;padding:.5rem .55rem;display:grid}.answer-mark{color:#d4e0e4;background:#31435a;border-radius:50%;place-items:center;width:1.45rem;height:1.45rem;font-size:.78rem;font-weight:900;display:grid}.answer-copy>div{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.answer-copy b{color:#dbe8e9;font-size:.68rem}.answer-picked{color:#91b8c0;text-align:right;font-size:.66rem;font-weight:800}.answer-copy p{color:#8296a6;margin:.2rem 0 0;font-size:.6rem;line-height:1.45}.answer-row.right{border-color:#81cd4e8c}.answer-row.right .answer-mark{color:#173018;background:#83cf50}.answer-row.right .answer-picked{color:#c7f783}.answer-row.partial{border-color:#dfa45899}.answer-row.partial .answer-mark{color:#3b260b;background:#ffc66d}.answer-row.partial .answer-picked{color:#ffd08a}.answer-row.wrong{background:#3b252b9e;border-color:#dc7168b3}.answer-row.wrong .answer-mark{color:#3b1716;background:#ff887b}.answer-row.wrong .answer-picked{color:#ffaaa0}.answer-row.wrong .answer-copy p{color:#e99a92}.architecture-map>footer{color:#60768a;justify-content:space-between;gap:.5rem;padding:.45rem .75rem .55rem;font-size:.54rem;display:flex}.client-node{background:#25314e;border-radius:2rem;padding:.65rem 1.5rem;font-size:.8rem;font-weight:800}.slot-wrap{flex-direction:column;align-items:center;width:100%;display:flex}.flow-arrow{color:#55617d;line-height:1rem}.slot-row{grid-template-columns:1fr;align-items:stretch;gap:.4rem;width:min(100%,24rem);display:grid}.slot-row.filled{grid-template-columns:1fr 44px}.architecture-slot{text-align:left;background:#141c30bf;border:1px dashed #53607d;border-radius:1rem;grid-template-columns:auto 1fr;align-items:center;gap:.15rem .8rem;width:100%;min-width:0;min-height:4.15rem;padding:.62rem .8rem;transition:all .16s;display:grid}.architecture-slot small{color:#8490aa;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem}.architecture-slot strong{text-align:right;font-size:.86rem}.architecture-slot em{color:#65718c;text-align:right;grid-column:1/3;font-size:.64rem;font-style:normal}.architecture-slot.compatible{border-color:var(--lime);box-shadow:0 0 0 3px #c9ff631a}.architecture-slot.filled,.slot-row.filled .architecture-slot{background:#1b2947;border-style:solid}.slot-remove{color:#8791a9;background:#ffffff0b;border:1px solid #ffffff14;border-radius:.9rem;align-self:stretch;width:44px;min-height:44px;font-size:1.2rem}.remove-button{color:#7f8aa4;min-height:32px;font-size:.72rem}.card-dock{padding:1rem}.dock-heading{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.dock-heading h2{margin:.15rem 0 0;font-size:1rem}.quiet-button{color:#9ea8c0;font-size:.82rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:1rem;display:grid}.service-card{border:1px solid var(--line);text-align:left;background:#151e33;border-radius:1rem;min-width:0;min-height:4.6rem;padding:.8rem;transition:all .15s}.service-card span,.service-card small{overflow-wrap:anywhere;display:block}.service-card span{font-size:.86rem;font-weight:800}.service-card small{color:#8994ad;margin-top:.25rem;font-size:.68rem;line-height:1.3}.service-card.selected{border-color:var(--lime);background:#253531;transform:translateY(-2px);box-shadow:0 0 0 3px #c9ff6321,0 12px 25px #0003}.color-rose{border-left:3px solid #ff829f}.color-orange{border-left:3px solid #ffad65}.color-emerald{border-left:3px solid #65dfa6}.color-sky{border-left:3px solid #74c7ff}.color-pink{border-left:3px solid #e991ff}.color-cyan{border-left:3px solid #67dfdc}.color-violet{border-left:3px solid #a995ff}.color-amber{border-left:3px solid #ffd36d}.sticky-action{bottom:max(.6rem, env(safe-area-inset-bottom));z-index:3;padding-top:1rem;position:sticky}.primary-button{background:var(--lime);color:#121c13;border:0;border-radius:1rem;width:100%;min-height:3.35rem;font-weight:900;box-shadow:0 14px 30px #c9ff6329}.primary-button:disabled{color:#778097;box-shadow:none;background:#2a3347}.panel{margin-top:1rem;padding:1rem}.panel h2{font-size:.92rem}.result-hero{text-align:center;padding:1.5rem 0 .5rem}.score-number{letter-spacing:-.08em;color:var(--lime);font-size:5rem;line-height:1;display:block}.score-number.score-low{color:#ffb06a}.result-state{border-radius:2rem;margin-top:.55rem;padding:.25rem .7rem;font-size:.7rem;font-weight:900;display:inline-block}.result-state.ready{color:var(--lime);background:#c9ff631a}.result-state.needs-work{color:#ffc078;background:#ff9d541f}.result-hero p{color:var(--muted);max-width:32rem;margin:.8rem auto 0;line-height:1.55}.data-flow{color:#65708a;flex-direction:column;align-items:center;gap:.2rem;display:flex}.data-flow span{flex-direction:column;align-items:center;display:flex}.data-flow b{color:var(--ink);text-align:center;background:#202b46;border-radius:.8rem;min-width:11rem;padding:.55rem 1rem}.data-flow b.flow-wrong{color:#ffc1ad;background:#3a2632;border:1px solid #b95e59}.data-flow b.flow-right{color:#d8ff9c;background:#243b32;border:1px solid #abff4880}.data-flow b.flow-partial{color:#ffd28b;background:#393224;border:1px solid #b98e54}.data-flow b.flow-wrong i{color:#ff887b;font-style:normal}.data-flow b.flow-right i{color:var(--lime);font-style:normal}.data-flow b.flow-partial i{color:#ffc66d;font-style:normal}.score-grid{gap:.9rem;display:grid}.score-grid>div>div:first-child{justify-content:space-between;font-size:.78rem;display:flex}.meter{background:#2c354b;border-radius:1rem;height:.45rem;margin-top:.35rem;overflow:hidden}.meter i{background:linear-gradient(90deg, #78e994, var(--lime));border-radius:inherit;height:100%;display:block}.explanation p{color:#afb7cc;font-size:.83rem;line-height:1.5}.explanation .good{color:#bfecc5}.explanation .gap{color:#ffd095}.issue-panel{background:linear-gradient(145deg,#3b222bf2,#1e1a2be6);border-color:#ff806866}.issue-panel h2{color:#ffb09b}.issue-panel p{color:#ffd0c4;margin:.55rem 0 0;font-size:.84rem;line-height:1.5}.screen-shell>.primary-button{margin-top:1rem}.picker-layer{z-index:20;padding:0 max(env(safe-area-inset-right), 0px);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#030710a8;justify-content:center;align-items:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}.service-picker{width:min(100%,680px);max-height:min(78dvh,42rem);padding:.5rem 1rem max(1rem, env(safe-area-inset-bottom));background:#111a2e;border:1px solid #ffffff1f;border-bottom:0;border-radius:1.5rem 1.5rem 0 0;animation:.2s sheet-up;overflow:hidden;box-shadow:0 -20px 60px #00000073}.picker-handle{background:#44506a;border-radius:2rem;width:2.6rem;height:.28rem;margin:.1rem auto .75rem}.service-picker header{justify-content:space-between;align-items:center;display:flex}.service-picker h2{margin:.15rem 0 0;font-size:1.25rem}.service-picker header button{color:#9ca6bd;background:#ffffff0f;border:0;border-radius:50%;width:44px;min-height:44px;font-size:1.25rem}.service-picker>p{color:#7f8aa4;margin:.55rem 0 .8rem;font-size:.72rem}.category-tabs{scrollbar-width:none;overscroll-behavior-x:contain;gap:.45rem;margin:0 -.15rem .75rem;padding:.15rem;display:flex;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{color:#98a3bb;background:#182238;border:1px solid #36415a;border-radius:2rem;flex:none;min-height:38px;padding:0 .8rem;font-size:.72rem;font-weight:800}.category-tabs button.selected{border-color:var(--lime);color:var(--lime);background:#c9ff631f}.picker-grid{overscroll-behavior:contain;grid-template-columns:1fr;gap:.55rem;max-height:calc(78dvh - 9rem);padding-bottom:.2rem;display:grid;overflow-y:auto}.picker-grid .service-card{grid-template-columns:1fr auto;align-items:center;min-height:4.25rem;display:grid}.picker-grid .service-card span{font-size:.95rem}.picker-grid .service-card small{text-align:right;max-width:9rem;margin:0}.picker-grid .service-card em{display:none}.all-services .picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:calc(78dvh - 12.5rem)}.all-services .picker-grid .service-card{min-height:4.8rem;display:block}.all-services .picker-grid .service-card span{font-size:.82rem}.all-services .picker-grid .service-card small{text-align:left;max-width:none;margin-top:.25rem}.result-actions{gap:.7rem;margin-top:1rem;display:grid}.incident-button{color:#ffc47b;background:#ff9a401a;border:1px solid #ffb054;border-radius:1rem;width:100%;min-height:3.35rem;font-weight:900}.alert-dot{color:#ffb15f;font-size:.65rem;animation:1.5s ease-in-out infinite pulse}.incident-alert{background:radial-gradient(circle at 100% 0,#ff7e403d,#0000 12rem),#231a21;border:1px solid #ffa45359;border-radius:1.35rem;margin-top:1rem;padding:1.25rem}.incident-alert>span{color:#ffad65;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.incident-alert h1{letter-spacing:-.03em;margin:.45rem 0;font-size:1.55rem}.incident-alert p{color:#d0b9b2;margin:0;font-size:.88rem;line-height:1.55}.current-flow h2{color:#98a2b9}.current-flow>div{flex-wrap:wrap;gap:.45rem;display:flex}.current-flow span{background:#222c45;border-radius:.7rem;padding:.45rem .65rem;font-size:.72rem}.mitigation-board{margin:1.2rem 0}.mitigation-slot{text-align:left;background:#12192bbf;border:1px dashed #58647e;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;min-height:4.5rem;margin-top:.6rem;padding:.8rem 1rem;display:flex}.mitigation-slot small{color:#8490aa}.mitigation-slot.ready{border-color:#ffad65;box-shadow:0 0 0 3px #ffad6514}.config-actions{gap:.6rem;margin-top:.9rem;display:grid}.config-actions button{border:1px solid var(--line);text-align:left;background:#151e33;border-radius:1rem;grid-template-columns:auto 1fr;column-gap:.7rem;min-height:4.2rem;padding:.7rem;display:grid}.config-actions button>span{grid-row:1/3;align-self:center;font-size:1.2rem}.config-actions button strong,.config-actions button small{display:block}.config-actions button small{color:var(--muted)}.config-actions button.selected{border-color:var(--lime);background:#253531}.incident-result h1{margin:.7rem 0 .2rem}.delta{border-radius:3rem;margin-top:.5rem;padding:.25rem .65rem;font-size:.76rem;font-weight:900;display:inline-block}.delta.up{color:var(--lime);background:#c9ff631a}.delta.down{color:#ff9d92;background:#ff645a1a}.weakness-flow{flex-direction:column;align-items:center;padding:1.5rem .5rem;display:flex}.weakness-flow>div{flex-direction:column;align-items:center;display:flex}.weakness-flow span{text-align:center;background:#19233b;border:1px solid #485572;border-radius:.9rem;min-width:min(17rem,78vw);padding:.8rem 1rem;font-size:.86rem;font-weight:800}.weakness-flow i{color:#63708b;height:1.35rem;font-style:normal}.weakness-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.weakness-options button{border:1px solid var(--line);text-align:left;overflow-wrap:anywhere;background:#151e33;border-radius:.9rem;justify-content:space-between;align-items:center;gap:.4rem;min-width:0;min-height:3.35rem;padding:.7rem;font-size:.76rem;font-weight:800;display:flex}.weakness-options button:disabled{opacity:.6}.weakness-options button.correct{border-color:var(--lime);color:var(--lime);opacity:1}.weakness-options button.wrong{color:#ff9d92;opacity:1;border-color:#ff887b}.feedback-card{background:#17253a;border:1px solid #497568;border-radius:1.2rem;margin-top:1rem;padding:1.15rem}.feedback-card.wrong{background:#281d26;border-color:#784f4d}.feedback-card h2{margin:.45rem 0 .6rem;font-size:1rem;line-height:1.5}.feedback-card p{color:#abb4c8;font-size:.82rem;line-height:1.5}.feedback-card .primary-button{margin-top:.4rem}.review-heading{padding:2rem .2rem 1rem}.review-heading h1{letter-spacing:-.05em;margin:.35rem 0 .5rem;font-size:2rem}.review-heading p{color:var(--muted)}.empty-state{text-align:center;color:var(--muted);margin-top:3rem}.empty-state>span{width:4rem;height:4rem;color:var(--lime);background:#c9ff631f;border-radius:50%;place-items:center;font-size:1.6rem;display:inline-grid}.empty-state h2{color:var(--ink);margin:1rem 0 .5rem}.review-list{gap:.8rem;display:grid}.review-list article{border:1px solid var(--line);background:var(--panel);border-radius:1rem;padding:1rem}.review-list h2{margin:.4rem 0;font-size:1rem}.review-list p{color:#aeb7cb;font-size:.82rem;line-height:1.5}.review-list button{min-height:44px;color:var(--lime);background:0 0;border:0;font-size:.78rem;font-weight:800}.review-type{color:#ffbd75;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:900}.compact{margin-top:.6rem}@keyframes pulse{50%{opacity:.5}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{opacity:.5;transform:translateY(1.5rem)}}@media (min-width:560px){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.diagram-edge-label{font-size:1.8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
