:root{--bg:#002fa705;--bg-raised:#002fa70d;--white:#fefefe;--text:#2c2f3a;--text-muted:#555b6a;--text-faint:#646a7a;--accent:#002fa7;--accent-hover:#00228a;--accent-glow:#002fa72e;--accent-light:#002fa773;--warn:#e8a838;--warn-bg:#fef8ec;--success:#3ec78a;--error:#e85454;--shadow-up:0 1px 3px #0000000f;--shadow-up-sm:0 1px 2px #0000000d;--shadow-inset:inset 0 1px 2px #0000000f;--font:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--ease-out:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;line-height:1.5}header{justify-content:space-between;align-items:center;gap:1rem;max-width:1400px;margin:0 auto;padding:1.5rem 1rem 1rem;display:flex}.header-left{flex-shrink:0}.logo-link{align-items:center;gap:.25rem;text-decoration:none;display:inline-flex}.logo{width:auto;height:32px;display:block}.logo-text{letter-spacing:-.02em;color:var(--accent);font-size:1.4rem;font-weight:700}.header-right{justify-content:flex-end;align-items:center;display:flex}main{flex-direction:column;gap:1rem;max-width:1400px;margin:0 auto;padding:0 1rem 3rem;display:flex}.sidebar{flex-direction:column;gap:1rem;display:flex}.content{flex-direction:column;gap:1rem;min-width:0;display:flex}.card{background:var(--white);box-shadow:var(--shadow-up);animation:cardEnter .5s var(--ease-out) both;transition:box-shadow .25s var(--ease-out);padding:clamp(1rem,3vw,1rem)}.card:hover{box-shadow:0 2px 8px #0000001a}@keyframes cardEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.card-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.card-header h2{color:var(--accent);font-size:1.05rem;font-weight:600}.upload-area{background:var(--bg);text-align:center;box-shadow:var(--shadow-inset);transition:box-shadow .3s var(--ease-out), background .3s, border-color .3s;border:1.5px dashed #0000;padding:.5rem 1rem 1rem}.upload-area:hover{background:#002fa70a;border-color:#002fa726}.upload-area.dragover{border-color:var(--accent);box-shadow:var(--shadow-inset), 0 0 0 3px var(--accent-glow);background:#002fa70f}.upload-icon{color:var(--text-faint);transition:color .3s, transform .3s var(--ease-out)}.upload-area.dragover .upload-icon{color:var(--accent);transform:translateY(-4px)}.upload-hint{color:var(--text-muted);margin-bottom:1rem;font-size:.92rem}.upload-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.upload-divider{color:var(--text-faint);align-items:center;gap:.75rem;margin:1rem 0;font-size:.8rem;display:flex}.upload-divider:before,.upload-divider:after{content:"";background:#0000000f;flex:1;height:1px}.url-row{gap:.5rem;display:flex}.input{background:var(--bg);box-shadow:var(--shadow-inset);font-family:var(--font);color:var(--text);transition:box-shadow .25s var(--ease-out);border:none;flex:1;padding:.55rem .85rem;font-size:.88rem}.input::placeholder{color:var(--text-faint)}.input:hover{background:#002fa708}.input:focus{background:var(--white);box-shadow:var(--shadow-inset), 0 0 0 3px var(--accent-glow);outline:none}.btn{font-family:var(--font);cursor:pointer;transition:transform .15s var(--ease-out), box-shadow .25s var(--ease-out), background .2s;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.3rem;font-size:.88rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 3px 10px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 14px var(--accent-glow)}.btn-ghost{background:var(--bg);color:var(--text);box-shadow:var(--shadow-up-sm);transition:transform .15s var(--ease-out), box-shadow .2s, background .2s}.btn-ghost:hover:not(:disabled){background:#002fa70f;box-shadow:0 1px 4px #0000001a}.btn-ghost:active:not(:disabled){box-shadow:var(--shadow-inset)}.btn-sm{padding:.45rem 1rem;font-size:.82rem}.status-banner{animation:fadeSlideIn .35s var(--ease-out) both;align-items:center;gap:.5rem;margin-top:1rem;padding:.7rem 1rem;font-size:.86rem;display:flex}.spinner{flex-shrink:0;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.status-banner.info{background:var(--bg);color:#002fa7}.status-banner.success{color:#27845a;background:#e9f8f0}.status-banner.error{color:#b33333;background:#fceaea}.sub-card{animation:fadeSlideIn .35s var(--ease-out) both;margin-top:1rem;padding:1rem;transition:background .2s}.sub-card:hover{background:#002fa708}.sub-card--warn:hover{background:#fdf0d5}.sub-card--warn{background:var(--warn-bg)}.sub-card--info{background:var(--bg)}.sub-card-title{color:var(--text);margin-bottom:.4rem;font-size:.92rem;font-weight:600}.sub-card-title a{color:var(--accent);text-decoration:none}.sub-card-title a:hover{text-decoration:underline}.sub-card-desc{color:var(--text-muted);margin-bottom:.75rem;font-size:.82rem}.tag-list{flex-wrap:wrap;gap:.4rem;list-style:none;display:flex}.tag-list li{background:var(--bg);font-family:var(--mono);color:var(--text-muted);box-shadow:var(--shadow-up-sm);cursor:default;padding:.2rem .55rem;font-size:.78rem;transition:background .15s,color .15s}.tag-list li:hover{color:var(--text);background:#002fa714}.tag-list .op-count{color:var(--text-faint);margin-left:.2rem;font-size:.72rem}.free-dim-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.35rem .5rem;margin-top:.5rem;display:grid}.free-dim-row{align-items:center;gap:.35rem;display:flex}.free-dim-row label{font-family:var(--mono);color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.75rem;font-weight:600;overflow:hidden}.free-dim-row input{background:var(--bg);width:56px;box-shadow:var(--shadow-inset);font-family:var(--mono);color:var(--text);transition:box-shadow .25s var(--ease-out);border:none;flex-shrink:0;padding:.25rem .35rem;font-size:.78rem}.free-dim-row input:focus{box-shadow:var(--shadow-inset), 0 0 0 3px var(--accent-glow);outline:none}.card--warn{background:var(--warn-bg)}.warn-title{color:#9b6b10;margin-bottom:.35rem;font-size:.95rem;font-weight:600}.warn-desc{color:var(--text-muted);margin-bottom:.75rem;font-size:.82rem}.tab-bar{background:var(--bg);box-shadow:var(--shadow-inset);gap:.25rem;margin-bottom:.75rem;padding:.2rem;display:flex}.tab{font-family:var(--font);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:.45rem .75rem;font-size:.82rem;font-weight:500;transition:background .2s,color .2s,box-shadow .2s,transform .15s}.tab:hover{color:var(--text);background:#002fa70d}.tab:active{transform:scale(.97)}.tab.active{background:var(--accent);color:var(--white);box-shadow:var(--shadow-up-sm);font-weight:600}.graph-info{color:var(--text-faint);white-space:nowrap;margin-left:auto;font-size:.78rem}.editor-container{height:clamp(320px,66vh,700px);box-shadow:var(--shadow-inset);overflow:hidden}.empty-state{background:var(--white);min-height:280px;box-shadow:var(--shadow-up);color:var(--text-faint);text-align:center;animation:fadeSlideIn .5s var(--ease-out) both;transition:box-shadow .25s var(--ease-out);justify-content:center;align-items:center;padding:2rem;font-size:.92rem;display:flex}.empty-state:hover{box-shadow:0 2px 8px #0000001a}.download-row{align-items:center;gap:.4rem;padding-right:1rem;display:flex}.btn-download{font-size:.78rem}.btn-download:first-child{font-size:.82rem}footer{color:var(--text-faint);justify-content:center;align-items:center;padding:0 1rem 2rem;font-size:.8rem;display:flex}footer a{color:var(--text-muted);align-self:center;text-decoration:none;transition:color .2s,transform .15s;display:inline-flex}footer a:hover{color:var(--accent);transform:translateY(-1px)}.dot{margin:0 .35rem}@media (width<=600px){header{flex-direction:column;align-items:flex-start;padding:1.5rem 1rem 1rem}main{gap:1rem;padding:0 .75rem 2rem}.card,.upload-area{padding:1rem}.url-row{flex-direction:column}.url-row .input{width:100%}.free-dim-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.card-header h2{font-size:.95rem}}@media (width>=860px){main{grid-template-columns:340px 1fr;align-items:start;gap:1rem;display:grid}.sidebar{position:sticky;top:1.5rem}.empty-state{min-height:313px}}@media (width>=1200px){header{max-width:1500px;padding:1rem 1rem 1rem 1.5rem}main{grid-template-columns:380px 1fr;max-width:1500px;padding:0 1rem 1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
