:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width:768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-right, env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media(prefers-reduced-motion:reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #0054e9)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}:root{--shell-bg: #fafafa;--shell-canvas-bg: #e5e7eb;--shell-canvas-gradient: radial-gradient(ellipse 800px 600px at 50% 30%, #f9fafb 0%, #e5e7eb 60%, #d4d7dc 100%);--shell-surface: #ffffff;--shell-surface-subtle: #fafafa;--shell-surface-muted: #f3f4f6;--shell-border: #ececec;--shell-border-subtle: #f3f4f6;--shell-border-strong: #d1d5db;--shell-border-hover: #d4d4d8;--shell-text: #111111;--shell-text-strong: #1f2937;--shell-text-muted: #374151;--shell-text-subtle: #6b7280;--shell-text-faint: #9ca3af;--shell-accent: #4f46e5;--shell-accent-rgb: 79, 70, 229;--shell-accent-hover: #4338ca;--shell-accent-soft: rgba(79, 70, 229, .1);--shell-accent-gradient: linear-gradient(135deg, #4f46e5, #8b5cf6);--shell-danger: #ef4444;--shell-success: #10b981;--shell-device-frame: #1a1a1c;--shell-device-frame-accent: #2c2c2e;--shell-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;--shell-font-mono: ui-monospace, SFMono-Regular, monospace;--shell-space-1: 4px;--shell-space-2: 8px;--shell-space-3: 12px;--shell-space-4: 16px;--shell-space-5: 20px;--shell-space-6: 24px;--shell-space-8: 32px;--shell-radius-sm: 4px;--shell-radius-md: 6px;--shell-radius-lg: 8px;--shell-radius-xl: 14px;--shell-shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shell-shadow-md: 0 2px 6px rgba(0, 0, 0, .04), 0 12px 24px -8px rgba(0, 0, 0, .1);--shell-shadow-lg: 0 8px 16px rgba(0, 0, 0, .15);--shell-shadow-device: 0 0 0 2px #2c2c2e, 0 24px 48px -12px rgba(0, 0, 0, .35), 0 8px 16px rgba(0, 0, 0, .15)}html,body,#root{height:100%;margin:0;padding:0;font-family:var(--shell-font);background:var(--shell-canvas-bg)}.shell-workspace{display:flex;min-height:100vh;background:var(--shell-surface-subtle)}.shell-embed{width:100vw;height:100vh;overflow:hidden;background:var(--ion-background-color);position:relative}.shell-device-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--shell-space-4);min-height:100vh;padding:var(--shell-space-8);background:var(--shell-canvas-gradient);position:relative}.shell-device-screen{position:relative;width:390px;height:844px;background:var(--ion-background-color);border-radius:50px;border:10px solid var(--shell-device-frame);overflow:hidden;box-shadow:var(--shell-shadow-device);flex-shrink:0}.shell-device-screen--desktop{border-radius:8px;border-width:4px;background:var(--ui-color-background, #fff)}.shell-device-notch{position:absolute;top:11px;left:50%;transform:translate(-50%);width:120px;height:36px;background:#000;border-radius:20px;z-index:99;pointer-events:none}.shell-device-statusbar{position:absolute;top:0;left:0;right:0;height:54px;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:18px 28px 0;font-size:15px;font-weight:600;letter-spacing:-.2px;color:var(--ion-text-color);pointer-events:none}.shell-device-statusbar__time{font-variant-numeric:tabular-nums}.shell-device-statusbar__icons{display:flex;align-items:center;gap:6px}.shell-device-content{position:absolute;top:0;right:0;bottom:0;left:0}ion-app{--ion-safe-area-top: 54px}.shell-device-toolbar{display:flex;align-items:center;gap:var(--shell-space-3);padding:6px 12px;background:var(--shell-surface);border:1px solid var(--shell-border);border-radius:var(--shell-radius-lg);box-shadow:var(--shell-shadow-sm);font-family:var(--shell-font);color:var(--shell-text-muted);font-size:12px;-webkit-user-select:none;user-select:none}.shell-device-toolbar__preset{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid var(--shell-border);background:var(--shell-surface-subtle);color:var(--shell-text-muted);font:inherit;padding:4px 22px 4px 8px;border-radius:var(--shell-radius-md);cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'><path d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 6px center}.shell-device-toolbar__preset:hover{border-color:var(--shell-border-hover)}.shell-device-toolbar__preset:focus-visible{outline:none;border-color:var(--shell-accent);box-shadow:0 0 0 2px var(--shell-accent-soft)}.shell-device-toolbar__dims{display:flex;align-items:center;gap:4px}.shell-device-toolbar__input{width:56px;border:1px solid var(--shell-border);background:var(--shell-surface-subtle);color:var(--shell-text);font:inherit;font-variant-numeric:tabular-nums;padding:4px 6px;border-radius:var(--shell-radius-md);text-align:center;-moz-appearance:textfield}.shell-device-toolbar__input::-webkit-outer-spin-button,.shell-device-toolbar__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.shell-device-toolbar__input:hover{border-color:var(--shell-border-hover)}.shell-device-toolbar__input:focus-visible{outline:none;border-color:var(--shell-accent);box-shadow:0 0 0 2px var(--shell-accent-soft)}.shell-device-toolbar__x{color:var(--shell-text-faint);font-size:11px}.shell-device-toolbar__rotate{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--shell-border);background:var(--shell-surface-subtle);color:var(--shell-text-muted);border-radius:var(--shell-radius-md);cursor:pointer;font-size:15px;line-height:1;transition:background .15s,border-color .15s,color .15s}.shell-device-toolbar__rotate:hover{border-color:var(--shell-border-hover);color:var(--shell-accent);background:var(--shell-accent-soft)}.shell-device-toolbar__rotate:focus-visible{outline:none;border-color:var(--shell-accent);box-shadow:0 0 0 2px var(--shell-accent-soft)}.shell-sidebar{width:240px;height:100vh;background:var(--shell-surface-subtle);border-right:1px solid var(--shell-border);display:flex;flex-direction:column;font-size:13px;color:var(--shell-text-strong);flex-shrink:0;overflow:hidden}.shell-sidebar--collapsed{width:36px;display:flex;align-items:flex-start;justify-content:center;padding-top:12px}.shell-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--shell-border);background:var(--shell-surface)}.shell-sidebar__brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--shell-text);text-decoration:none}.shell-sidebar__brand:hover{color:var(--shell-accent)}.shell-sidebar__logo{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--shell-accent-gradient);color:#fff;border-radius:var(--shell-radius-md);font-size:11px;transform:rotate(45deg)}.shell-sidebar__collapse-btn{width:24px;height:24px;border:none;background:transparent;color:var(--shell-text-faint);font-size:16px;border-radius:var(--shell-radius-sm);cursor:pointer;line-height:1}.shell-sidebar__collapse-btn:hover{background:var(--shell-surface-muted);color:var(--shell-text-muted)}.shell-sidebar__project-meta{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:11px;color:var(--shell-text-faint);border-bottom:1px solid var(--shell-border)}.shell-sidebar__switch{font-size:11px;color:var(--shell-text-muted);text-decoration:none;padding:2px 6px;border-radius:var(--shell-radius-sm)}.shell-sidebar__switch:hover{color:var(--shell-accent);background:var(--shell-surface-muted)}.shell-sidebar__tree{flex:1;overflow-y:auto;padding:8px}.shell-sidebar__group{margin-bottom:4px}.shell-sidebar__group-head{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;background:transparent;border:none;border-radius:var(--shell-radius-md);color:var(--shell-text-muted);font-size:13px;font-weight:500;cursor:pointer;text-align:left}.shell-sidebar__group-head:hover{background:var(--shell-surface-muted)}.shell-sidebar__caret{display:inline-block;width:12px;font-size:10px;color:var(--shell-text-faint);transition:transform .15s ease}.shell-sidebar__caret--open{transform:rotate(90deg)}.shell-sidebar__group-icon{font-size:14px;line-height:1}.shell-sidebar__group-label{flex:1}.shell-sidebar__group-count{font-size:11px;color:var(--shell-text-faint);background:var(--shell-surface-muted);padding:1px 6px;border-radius:10px}.shell-sidebar__entries{list-style:none;margin:2px 0 6px;padding:0 0 0 26px;display:flex;flex-direction:column;gap:1px}.shell-sidebar__entry{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px;border-radius:var(--shell-radius-md);text-decoration:none;color:var(--shell-text-muted);border-left:2px solid transparent}.shell-sidebar__entry:hover{background:var(--shell-surface-muted)}.shell-sidebar__entry.active{background:var(--shell-accent-soft);color:var(--shell-accent-hover);border-left-color:var(--shell-accent)}.shell-sidebar__entry-name{font-size:13px}.shell-sidebar__entry-pattern{font-size:10px;color:var(--shell-text-faint);font-family:var(--shell-font-mono)}.shell-sidebar__entry.active .shell-sidebar__entry-pattern{color:var(--shell-accent)}.shell-sidebar__footer{padding:10px 12px;border-top:1px solid var(--shell-border);background:var(--shell-surface)}.shell-sidebar__footer-link{display:block;padding:8px 10px;border-radius:var(--shell-radius-md);text-decoration:none;color:var(--shell-text-muted);font-size:13px}.shell-sidebar__footer-link:hover{background:var(--shell-surface-muted);color:var(--shell-accent)}.shell-right-panel{width:360px;flex-shrink:0;display:flex;flex-direction:column;height:100vh;position:sticky;top:0;background:var(--shell-surface);border-left:1px solid var(--shell-border);font-family:var(--shell-font);font-size:13px;color:var(--shell-text)}.shell-right-panel__tabs{display:flex;border-bottom:1px solid var(--shell-border);background:var(--shell-surface);position:sticky;top:0;z-index:5}.shell-right-panel__tab{flex:1;padding:12px 8px;border:none;background:transparent;color:var(--shell-text-subtle);font-size:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}.shell-right-panel__tab:hover{color:var(--shell-text)}.shell-right-panel__tab.active{color:var(--shell-accent);border-bottom-color:var(--shell-accent);font-weight:500}.shell-right-panel__tab-icon{font-size:16px;line-height:1}.shell-right-panel__tab-label{font-size:11px}.shell-right-panel__content{flex:1;overflow-y:auto}.shell-overview{padding:20px 16px;color:var(--shell-text)}.shell-overview section{margin-bottom:24px}.shell-overview h3{margin:0 0 6px;font-size:16px;font-weight:600;letter-spacing:-.2px}.shell-overview h4{margin:0 0 10px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--shell-text-subtle);letter-spacing:.05em}.shell-overview p{margin:0;color:var(--shell-text-muted);line-height:1.55}.shell-overview p.muted{color:var(--shell-text-subtle)}.shell-overview p.small{font-size:12px;margin-top:8px}.shell-overview__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.shell-overview__list--ordered{list-style:decimal inside;padding-left:0}.shell-overview__list--ordered li{display:list-item;padding-left:4px}.shell-overview__list li{display:flex;flex-direction:column;gap:2px;padding:8px 12px;background:var(--shell-surface-subtle);border:1px solid var(--shell-border-subtle);border-radius:var(--shell-radius-lg);color:var(--shell-text-muted);line-height:1.5}.shell-overview__list strong{font-size:13px;font-weight:600;color:var(--shell-text)}.shell-overview__list span{font-size:12px;color:var(--shell-text-subtle)}.shell-overview__list kbd{display:inline-block;font-family:var(--shell-font-mono);font-size:11px;background:var(--shell-surface);border:1px solid var(--shell-border-strong);border-bottom-width:2px;border-radius:var(--shell-radius-sm);padding:1px 6px;margin-right:8px;color:var(--shell-text-muted);align-self:flex-start}.shell-overview__list code{font-family:var(--shell-font-mono);font-size:11px;background:var(--shell-surface-muted);padding:1px 6px;border-radius:3px;color:var(--shell-danger)}.shell-overview__link{display:inline-block;color:var(--shell-text-subtle);text-decoration:none;font-size:12px}.shell-overview__link:hover{color:var(--shell-accent)}.shell-segment{display:flex;background:var(--shell-surface-muted);border-radius:var(--shell-radius-lg);padding:2px;gap:2px}.shell-segment__btn{flex:1;border:none;background:transparent;padding:6px 10px;border-radius:var(--shell-radius-md);font-size:12px;color:var(--shell-text-subtle);cursor:pointer;transition:background .12s,color .12s}.shell-segment__btn:hover:not(.active){color:var(--shell-text)}.shell-segment__btn.active{background:var(--shell-surface);color:var(--shell-text);font-weight:500;box-shadow:var(--shell-shadow-sm)}.shell-studio{height:100%;overflow-y:auto;background:var(--shell-surface-subtle);color:var(--shell-text);scroll-behavior:smooth}.shell-studio__header{display:flex;align-items:center;gap:24px;padding:16px 32px;background:var(--shell-surface);border-bottom:1px solid var(--shell-border);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.shell-studio__brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.shell-studio__logo{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--shell-accent-gradient);color:#fff;border-radius:var(--shell-radius-lg);font-size:14px;transform:rotate(45deg)}.shell-studio__header h1{margin:0;font-size:16px;font-weight:600;letter-spacing:-.2px}.shell-studio__tag{font-size:12px;color:var(--shell-text-faint);padding-left:12px;border-left:1px solid var(--shell-canvas-bg);margin-left:4px}.shell-studio__search{flex:1 1 auto;max-width:480px;display:flex;align-items:center;gap:8px;background:var(--shell-surface-muted);border:1px solid var(--shell-border);border-radius:var(--shell-radius-xl);padding:0 14px;height:36px;transition:border-color .15s}.shell-studio__search:focus-within{border-color:var(--shell-accent);background:var(--shell-surface)}.shell-studio__search-icon{font-size:13px;opacity:.5;flex-shrink:0}.shell-studio__search input{flex:1;border:0;outline:none;background:transparent;font-size:13px;color:var(--shell-text);min-width:0}.shell-studio__search input::placeholder{color:var(--shell-text-faint)}.shell-studio__search-clear{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--shell-text-faint);font-size:16px;cursor:pointer;padding:0 4px}.shell-studio__search-clear:hover{color:var(--shell-accent)}.shell-studio__search-kbd{font-size:11px;color:var(--shell-text-faint);font-family:var(--shell-font-mono);background:var(--shell-surface);padding:2px 6px;border-radius:6px;border:1px solid var(--shell-border);white-space:nowrap}.shell-studio__action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--shell-border);background:var(--shell-surface);color:var(--shell-text);font-size:13px;font-family:inherit;font-weight:500;height:36px;padding:0 14px;border-radius:var(--shell-radius-xl);cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s}.shell-studio__action:hover{border-color:var(--shell-accent);color:var(--shell-accent)}.shell-studio__layout{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:200px 1fr;gap:32px;padding:32px}.shell-studio__toc{position:sticky;top:85px;align-self:start;background:var(--shell-surface);border:1px solid var(--shell-border);border-radius:var(--shell-radius-xl);padding:12px;max-height:calc(100vh - 105px);overflow-y:auto}.shell-studio__toc-head{display:flex;align-items:baseline;justify-content:space-between;padding:6px 10px 12px;font-size:11px;font-weight:600;color:var(--shell-text-subtle);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--shell-border);margin-bottom:8px}.shell-studio__toc-count{font-size:11px;color:var(--shell-text-faint);background:var(--shell-surface-muted);padding:2px 6px;border-radius:8px;font-family:var(--shell-font-mono);text-transform:none;letter-spacing:0}.shell-studio__toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.shell-studio__toc-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--shell-radius-lg);font-size:13px;color:var(--shell-text-muted);text-decoration:none;cursor:pointer;transition:background .12s,color .12s}.shell-studio__toc-item:hover{background:var(--shell-surface-muted);color:var(--shell-text)}.shell-studio__toc-item--active{background:var(--shell-surface-muted);color:var(--shell-accent);font-weight:600}.shell-studio__toc-item--muted{opacity:.35}.shell-studio__toc-icon{font-size:14px;flex-shrink:0}.shell-studio__toc-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-studio__toc-badge{font-size:11px;color:var(--shell-text-faint);font-family:var(--shell-font-mono)}.shell-studio__main{min-width:0;display:flex;flex-direction:column;gap:36px}.shell-studio__empty{padding:60px 32px;text-align:center;color:var(--shell-text-faint);font-size:13px;background:var(--shell-surface);border:1px dashed var(--shell-border);border-radius:var(--shell-radius-xl)}.shell-studio__group{scroll-margin-top:85px}.shell-studio__group-head{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:14px;font-weight:500;color:var(--shell-text-subtle);text-transform:uppercase;letter-spacing:.04em}.shell-studio__group-icon{font-size:16px}.shell-studio__group-count{font-size:11px;background:var(--shell-surface-muted);color:var(--shell-text-faint);padding:1px 6px;border-radius:8px;text-transform:none;letter-spacing:0}.shell-studio__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.shell-studio__card a{display:block;text-decoration:none;color:inherit;background:var(--shell-surface);border:1px solid var(--shell-border);border-radius:var(--shell-radius-xl);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.shell-studio__card a:hover{transform:translateY(-2px);border-color:var(--shell-border-hover);box-shadow:var(--shell-shadow-md)}.shell-studio__thumb{position:relative;aspect-ratio:390 / 600;background:var(--ion-background-color);border-bottom:1px solid var(--shell-border);overflow:hidden;container-type:inline-size}.shell-studio__thumb--desktop{aspect-ratio:16 / 10}.shell-studio__card--desktop{grid-column:span 2}.shell-studio__thumb iframe{position:absolute;top:0;left:0;width:390px;height:844px;border:0;transform:scale(calc(100cqw/390px));transform-origin:top left;pointer-events:none}.shell-studio__source{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.04em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1}.shell-studio__source--prd{background:#e56e35eb;color:#fff}.shell-studio__meta{padding:14px 16px 16px}.shell-studio__meta-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.shell-studio__meta strong{font-size:14px;font-weight:600;letter-spacing:-.1px}.shell-studio__pattern{font-size:11px;background:var(--shell-surface-muted);color:var(--shell-text-subtle);padding:2px 8px;border-radius:10px;font-family:var(--shell-font-mono);flex-shrink:0}.shell-studio__meta p{margin:0;font-size:12px;color:var(--shell-text-subtle);line-height:1.55}.shell-projects{max-width:1200px;margin:0 auto;padding:40px 32px}.shell-projects__title{display:flex;align-items:center;gap:10px;margin:0 0 24px;font-size:14px;font-weight:600;color:var(--shell-text-subtle);text-transform:uppercase;letter-spacing:.06em}.shell-projects__count{font-size:11px;background:var(--shell-surface-muted);color:var(--shell-text-faint);padding:2px 8px;border-radius:8px;font-family:var(--shell-font-mono);text-transform:none;letter-spacing:0}.shell-projects__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.shell-project-card{display:block;text-decoration:none;color:inherit;background:var(--shell-surface);border:1px solid var(--shell-border);border-radius:var(--shell-radius-xl);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.shell-project-card:hover{transform:translateY(-3px);border-color:var(--shell-border-hover);box-shadow:var(--shell-shadow-md)}.shell-project-card__cover{position:relative;aspect-ratio:16 / 10;background:var(--shell-surface-muted);border-bottom:1px solid var(--shell-border);overflow:hidden;container-type:inline-size}.shell-project-card__cover iframe{position:absolute;top:0;left:50%;transform:translate(-50%) scale(calc(100cqw/390px));transform-origin:top center;width:390px;height:844px;border:0;pointer-events:none}.shell-project-card__iframe--desktop{left:0!important;transform:scale(calc(100cqw/1280px))!important;transform-origin:top left!important;width:1280px!important;height:800px!important}.shell-project-card__device-badge{position:absolute;top:10px;right:10px;background:#00000080;color:#fff;font-size:10px;font-weight:600;padding:3px 10px;border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.04em;text-transform:uppercase}.shell-project-card__info{display:flex;align-items:flex-start;gap:14px;padding:18px 20px}.shell-project-card__icon{font-size:28px;flex-shrink:0;line-height:1;margin-top:2px}.shell-project-card__text{min-width:0}.shell-project-card__name{display:block;font-size:16px;font-weight:600;letter-spacing:-.2px;margin-bottom:4px}.shell-project-card__desc{margin:0 0 8px;font-size:13px;color:var(--shell-text-subtle);line-height:1.5}.shell-project-card__meta{font-size:12px;color:var(--shell-text-faint);font-family:var(--shell-font-mono)}.shell-studio__back{display:flex;text-decoration:none}.shell-studio__back:hover .shell-studio__logo{opacity:.7}.shell-studio__project-icon{font-size:20px}@media(max-width:1024px){.shell-studio__layout{grid-template-columns:1fr;padding:24px}.shell-studio__toc{display:none}}.export-dialog{width:min(92vw,640px);max-height:90vh;padding:0;border:1px solid var(--shell-border);border-radius:var(--shell-radius-xl);background:var(--shell-surface);color:var(--shell-text);box-shadow:var(--shell-shadow-md);font-family:inherit}.export-dialog::backdrop{background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.export-dialog__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 14px;border-bottom:1px solid var(--shell-border);position:sticky;top:0;background:var(--shell-surface);z-index:1}.export-dialog__head h2{font-size:16px;font-weight:600;margin:0 0 4px}.export-dialog__hint{font-size:12px;color:var(--shell-text-faint);margin:0;line-height:1.6}.export-dialog__hint a{color:var(--shell-accent)}.export-dialog__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--shell-text-muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px;flex-shrink:0}.export-dialog__close:hover{color:var(--shell-text)}.export-dialog__body{padding:16px 24px 24px;display:flex;flex-direction:column;gap:24px;overflow-y:auto;max-height:calc(90vh - 80px)}.export-dialog__section h3{font-size:11px;font-weight:700;color:var(--shell-text-subtle);margin:0 0 12px;text-transform:uppercase;letter-spacing:.08em}.export-dialog__label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--shell-text-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:12px}.export-dialog__label select{padding:8px 12px;border:1px solid var(--shell-border);border-radius:var(--shell-radius-lg);background:var(--shell-surface);color:var(--shell-text);font-size:13px;text-transform:none;letter-spacing:normal;font-weight:400;font-family:inherit}.export-dialog__check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--shell-text);cursor:pointer;margin-bottom:10px}.export-dialog__check input[type=checkbox]{width:14px;height:14px;accent-color:var(--shell-accent);cursor:pointer;flex-shrink:0}.export-dialog__check-hint{font-size:11px;color:var(--shell-text-faint);margin-left:2px}.export-dialog__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-dialog__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--shell-border);background:var(--shell-surface);color:var(--shell-text);font-size:13px;padding:8px 12px;border-radius:var(--shell-radius-lg);cursor:pointer;font-family:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2;white-space:nowrap}.export-dialog__btn:hover:not(:disabled){border-color:var(--shell-accent);color:var(--shell-accent)}.export-dialog__btn:disabled{opacity:.5;cursor:not-allowed}.export-dialog__btn--primary{background:var(--shell-accent);color:#fff;border-color:var(--shell-accent)}.export-dialog__btn--primary:hover:not(:disabled){filter:brightness(1.05);color:#fff;border-color:var(--shell-accent)}.export-dialog__btn--ghost{font-size:12px;color:var(--shell-text-subtle)}.export-dialog__progress,.export-dialog__success,.export-dialog__error{font-size:12px;padding:10px 12px;border-radius:var(--shell-radius-lg);margin-top:12px;line-height:1.5}.export-dialog__progress{background:var(--shell-surface-muted);color:var(--shell-text-subtle)}.export-dialog__success{background:#22c55e1f;color:#1b9d56;border:1px solid rgba(34,197,94,.3)}.export-dialog__success code{font-family:var(--shell-font-mono)}.export-dialog__error{background:#ff453a1f;color:#d63029;border:1px solid rgba(255,69,58,.3)}.export-dialog__plugin-files{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.export-dialog__steps{margin:0;padding-left:20px;font-size:12px;color:var(--shell-text-subtle);line-height:1.8}.export-dialog__steps code{font-family:var(--shell-font-mono);background:var(--shell-surface-muted);padding:1px 5px;border-radius:4px}.export-dialog__capture-iframe{position:fixed;left:-10000px;top:0;pointer-events:none;border:0}
