:root{font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;display:flex;flex-direction:column;align-items:stretch;min-width:320px;min-height:100vh;width:100%}#root{width:100%;min-width:0}a{font-weight:500;color:inherit;text-decoration:none}::selection{background:#4f46e533;color:inherit}.csv-uploader{--upload-border: 2px dashed var(--color-border);--upload-bg: var(--color-bg-subtle);border:var(--upload-border);border-radius:var(--radius-lg);padding:48px 32px;text-align:center;transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal);background:var(--upload-bg);cursor:pointer;margin:24px 0;position:relative;overflow:hidden}.csv-uploader:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:linear-gradient(135deg,#4f46e526,#0ea5e91a);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--transition-normal);pointer-events:none}.csv-uploader:hover{border-color:var(--color-primary);background:var(--color-surface);box-shadow:var(--shadow-sm)}.csv-uploader:hover:before{opacity:1}.csv-uploader.dragging{border-color:var(--color-success);border-style:solid;background:#10b9810f;box-shadow:0 0 0 4px #10b98126;transform:scale(1.01)}.csv-uploader.dragging:before{opacity:0}.upload-content{pointer-events:auto;position:relative;z-index:1}.upload-content h2{margin:0 0 8px;color:var(--color-text);font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.upload-content p{margin:0 0 24px;color:var(--color-text-muted);font-size:.9375rem;font-weight:500}.upload-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;background:linear-gradient(135deg,var(--color-primary) 0%,#6366f1 100%);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.9375rem;font-family:inherit;border:none;box-shadow:0 2px 8px #4f46e559;transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast)}.upload-button:hover{transform:translateY(-1px);box-shadow:0 4px 14px #4f46e566}.upload-button:active{transform:translateY(0);filter:brightness(.96)}.csv-uploader.loading{cursor:default;pointer-events:none}.csv-uploader.loading .upload-content{pointer-events:none}.upload-loading-spinner{width:40px;height:40px;margin:16px auto 0;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:upload-spin .8s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}.csv-table-container{margin:0}.table-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.table-header h2{margin:0;color:var(--color-text);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3}.row-count{margin:0;color:var(--color-text-muted);font-size:.8125rem;font-weight:600}.table-header-actions{display:flex;align-items:center;gap:14px}.pod-filter-label{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--color-text-muted);font-weight:600}.pod-filter-select{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:.875rem;font-weight:500;font-family:inherit;background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pod-filter-select:hover{border-color:var(--color-text-subtle)}.pod-filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.table-wrapper{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-xs);border:1px solid var(--color-border);background:var(--color-surface)}.csv-table{width:100%;border-collapse:collapse;background:var(--color-surface)}.csv-table thead{background:var(--color-bg-subtle);position:sticky;top:0;z-index:1}.csv-table th{padding:14px 16px;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.csv-table td{padding:12px 16px;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:.875rem;transition:background var(--transition-fast)}.csv-table tbody tr:hover{background:var(--color-bg-subtle)}.csv-table tbody tr:nth-child(2n){background:#f8fafc99}.csv-table tbody tr:nth-child(2n):hover{background:var(--color-bg-subtle)}.csv-table-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast)}.csv-table-btn:hover{background:var(--color-bg-subtle);border-color:var(--color-text-subtle)}.add-row-btn{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.add-row-btn:hover{background:#4f46e52e;border-color:var(--color-primary);color:var(--color-primary-hover);transform:translateY(-.5px);box-shadow:var(--shadow-xs)}.delete-row-btn{padding:6px 12px;font-size:.75rem;border-color:#ef444480;color:var(--color-danger);background:#ef44440f}.delete-row-btn:hover{background:#ef44441f;border-color:var(--color-danger)}.csv-table--editable tbody td{cursor:text}.csv-table--editable tbody td.cell-editing{padding:4px 8px;vertical-align:middle}.csv-table-select{cursor:pointer;appearance:auto;min-width:8rem}.csv-table-input{width:100%;min-width:80px;padding:8px 12px;font-size:inherit;font-family:inherit;border:1px solid var(--color-primary);border-radius:var(--radius-sm);outline:none;box-sizing:border-box;background:var(--color-surface);transition:box-shadow var(--transition-fast)}.csv-table-input:focus{box-shadow:0 0 0 3px var(--color-primary-light)}.cell-text{display:block;min-height:1.25em}.th-actions,.td-actions{width:1%;white-space:nowrap;text-align:right;padding-right:16px}.empty-message{text-align:center;color:var(--color-text-muted);padding:48px 24px;font-size:.9375rem;font-weight:500;letter-spacing:.01em}:root{--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: rgba(79, 70, 229, .12);--color-accent: #0ea5e9;--color-success: #10b981;--color-danger: #ef4444;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-subtle: #94a3b8;--color-bg: #f8fafc;--color-bg-subtle: #f1f5f9;--color-surface: #ffffff;--color-border: #e2e8f0;--color-border-focus: #c7d2fe;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 2px 8px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08), 0 2px 6px rgba(15, 23, 42, .04);--shadow-lg: 0 16px 48px rgba(15, 23, 42, .1), 0 4px 12px rgba(15, 23, 42, .05);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--radius-full: 9999px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--transition-fast: .15s var(--ease-out);--transition-normal: .25s var(--ease-out)}.app-container{min-height:100vh;max-width:1600px;width:100%;margin:0 auto;padding:0 20px;display:flex;flex-direction:column;background:var(--color-bg)}.app-header{background:linear-gradient(135deg,#312e81,#4c1d95,#5b21b6);color:#fff;padding:28px 24px;display:flex;justify-content:center;align-items:center;width:100vw;margin-left:calc(-50vw + 50%);flex-shrink:0;min-height:110px;box-shadow:0 4px 24px #312e8140;position:relative;overflow:hidden}.app-header:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(255,255,255,.08) 0%,transparent 60%);pointer-events:none}.header-inner{width:100%;max-width:1600px;padding:0 16px;position:relative;z-index:1}.app-header h1{font-size:1.625rem;font-weight:700;letter-spacing:-.03em;margin-bottom:4px;text-shadow:0 1px 2px rgba(0,0,0,.1)}.app-header p{font-size:.8125rem;opacity:.88;font-weight:500;letter-spacing:.01em}.app-main{flex:1;width:100%;padding:clamp(20px,4vw,40px) 0;margin:0 auto;max-width:1600px;overflow-x:hidden}.tabs{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:24px;padding:4px;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);width:fit-content}.tab-btn{padding:10px 18px;font-size:.875rem;font-weight:600;font-family:inherit;letter-spacing:.01em;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.tab-btn:hover{color:var(--color-text);background:var(--color-bg-subtle)}.tab-btn.active{color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 1px 2px #4f46e514}.tab-btn.active:hover{background:#4f46e52e}@keyframes contentIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-main .content-panel{margin-top:0;background:var(--color-surface);border-radius:var(--radius-lg);padding:clamp(24px,4vw,32px);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:box-shadow var(--transition-normal),border-color var(--transition-normal);animation:contentIn .35s var(--ease-out)}.app-main .content-panel:hover{border-color:#94a3b859;box-shadow:0 2px 12px #0f172a0f}@media(max-width:480px){.app-header{padding:20px 16px;min-height:100px}.app-header h1{font-size:1.35rem}.app-header p{font-size:.75rem}.app-main{padding:16px 0}.tabs{width:100%;flex-direction:row;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.tab-btn{flex-shrink:0;padding:8px 14px;font-size:.8125rem}.app-main .content-panel{padding:20px 16px;border-radius:var(--radius)}}@media(orientation:landscape)and (max-height:600px){.app-header{padding:16px 20px;min-height:80px}.app-header h1{margin-bottom:2px;font-size:1.25rem}.app-header p{display:none}.app-main{padding:12px 0}}
