:root{color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;--green-50: #f0fdf4;--green-100: #dcfce7;--green-200: #bbf7d0;--green-500: #22c55e;--green-600: #16a34a;--green-700: #15803d;--ink: #0f172a;--muted: #64748b;--border: #e6ebe8;--bg: #fbfdfc;--card-bg: #ffffff;--danger: #dc2626;--danger-bg: #fef2f2;--danger-border: #fecaca;--radius-lg: 20px;--radius-md: 12px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 12px 24px -12px rgba(15, 23, 42, .18), 0 2px 6px -2px rgba(15, 23, 42, .06)}:root[data-theme=dark]{color-scheme:dark;--ink: #f1f5f9;--muted: #94a3b8;--border: #263129;--bg: #0d1310;--card-bg: #121a15;--green-50: #10251a;--green-100: #123b23;--danger-bg: #2a1414;--danger-border: #5b2323}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--ink: #f1f5f9;--muted: #94a3b8;--border: #263129;--bg: #0d1310;--card-bg: #121a15;--green-50: #10251a;--green-100: #123b23;--danger-bg: #2a1414;--danger-border: #5b2323}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}h1,h2,h3{letter-spacing:-.02em}a{color:inherit}code{background:var(--green-50);padding:.1rem .4rem;border-radius:6px;font-size:.85em}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(circle at top,var(--green-50),var(--bg) 60%)}.auth-card{width:100%;max-width:380px}.auth-logo{display:flex;align-items:center;gap:.6rem;font-weight:800;margin-bottom:1.5rem}.app-shell{min-height:100vh;display:flex}.sidebar{width:240px;flex-shrink:0;background:var(--card-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 1rem;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.05rem;margin-bottom:2rem;padding:0 .4rem}.sidebar .logo-badge{width:34px;height:34px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--green-500),var(--green-700));display:flex;align-items:center;justify-content:center;color:#fff}.sidebar-nav{display:flex;flex-direction:column;gap:.2rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:var(--radius-md);text-decoration:none;color:var(--ink);font-weight:500;font-size:.92rem;opacity:.72;transition:background .15s,opacity .15s}.nav-link svg{flex-shrink:0}.nav-link:hover{background:var(--green-50);opacity:1}.nav-link.active{background:var(--green-50);color:var(--green-700);opacity:1;font-weight:700}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.lang-toggle{display:flex;gap:.25rem;background:var(--green-50);border-radius:var(--radius-full);padding:.2rem}.lang-toggle button{flex:1;border:none;background:transparent;padding:.35rem 0;border-radius:var(--radius-full);font-size:.78rem;font-weight:700;cursor:pointer;color:var(--muted)}.lang-toggle button.active{background:var(--card-bg);color:var(--green-700);box-shadow:var(--shadow-sm)}.user-chip{font-size:.8rem;color:var(--muted);padding:0 .4rem;word-break:break-all}.main-area{flex:1;min-width:0}.container{max-width:1040px;margin:0 auto;padding:2.5rem 2rem 4rem;width:100%}.page-loading{padding:2rem;text-align:center;opacity:.6}.back-link{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;color:var(--muted);font-weight:600;font-size:.88rem}.back-link:hover{color:var(--green-700)}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}.form-row{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.form-row label{font-size:.82rem;font-weight:600;color:var(--muted)}.form-row input,.form-row select,.form-row textarea{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;background:var(--bg);color:var(--ink)}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px var(--green-100)}.form-row.row-wrap{flex-direction:row;flex-wrap:wrap;gap:.6rem}.form-row.row-wrap select{flex:1 1 200px;min-width:0;max-width:100%}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.9rem;font-size:.88rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--green-600)}button.btn{padding:.6rem 1.15rem;border-radius:var(--radius-full);border:1px solid transparent;background:var(--green-600);color:#fff;cursor:pointer;font:inherit;font-weight:600;font-size:.88rem;display:inline-flex;align-items:center;gap:.4rem;transition:background .15s,transform .05s,box-shadow .15s}button.btn:hover:not(:disabled){background:var(--green-700)}button.btn:active:not(:disabled){transform:scale(.97)}button.btn.secondary{background:transparent;color:var(--ink);border-color:var(--border)}button.btn.secondary:hover:not(:disabled){background:var(--green-50);border-color:var(--green-200)}button.btn.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}button.btn.danger:hover:not(:disabled){background:var(--danger);color:#fff}button.btn:disabled{opacity:.5;cursor:not-allowed}.error-banner{background:var(--danger-bg);color:var(--danger);padding:.65rem .9rem;border-radius:var(--radius-md);margin-bottom:.9rem;font-size:.88rem;border:1px solid var(--danger-border)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .65rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:700}.badge.green{background:var(--green-100);color:var(--green-700)}.badge.gray{background:var(--green-50);color:var(--muted)}.badge.red{background:var(--danger-bg);color:var(--danger)}.list-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.list-item a{font-weight:700;text-decoration:none;color:var(--ink)}.list-item a:hover{color:var(--green-700)}.muted{opacity:.65;font-size:.85rem;color:var(--muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.tile{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .1s;display:block}.tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tile .tile-title{font-weight:700;font-size:1rem;margin-bottom:.5rem}.tile .tile-meta{display:flex;gap:.4rem;flex-wrap:wrap}.block-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:.9rem;background:var(--card-bg);box-shadow:var(--shadow-sm)}.block-card .block-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.block-card .block-output{white-space:pre-wrap;background:var(--green-50);padding:.85rem 1rem;border-radius:var(--radius-md);margin-top:.6rem;font-size:.9rem}.block-card .status-line{margin:.6rem 0}.block-card .sent-prompt{white-space:pre-wrap;background:var(--green-50);padding:.85rem 1rem;border-radius:var(--radius-md);margin-top:.6rem;font-size:.8rem;max-height:300px;overflow-y:auto}.page-preview{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;background:var(--green-50)}.drag-handle{color:var(--muted);cursor:grab;display:inline-flex}.drag-handle:active{cursor:grabbing}.block-drop-wrap.drag-over{outline:2px dashed var(--green-500);outline-offset:3px;border-radius:var(--radius-lg)}.block-drop-wrap.dragging{opacity:.5}.run-history{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:.4rem}.run-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem}.run-row .run-time{color:var(--muted);font-variant-numeric:tabular-nums}.run-row.failed{opacity:.85}button.icon-btn{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--card-bg);color:var(--ink);cursor:pointer}button.icon-btn:hover:not(:disabled){background:var(--green-50)}button.icon-btn:disabled{opacity:.4;cursor:not-allowed}
