:root{color:#142033;background:#eaf4fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 12% 10%,rgba(115,167,243,.24),transparent 30%),radial-gradient(circle at 88% 18%,rgba(149,216,165,.2),transparent 28%),radial-gradient(circle at 42% 92%,rgba(234,162,203,.18),transparent 34%),linear-gradient(135deg,#e8f5fc,#f7fcff 42%,#e4f2f0);position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:url(../plasmid-background.svg) right -190px top 48px / min(58vw,760px) auto no-repeat,url(../plasmid-background.svg) left -230px bottom -220px / min(42vw,520px) auto no-repeat;opacity:.9}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(23,109,146,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,109,146,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 18%,black 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 18%,black 84%,transparent 100%)}button,input,select,textarea{font:inherit}button{min-height:38px;border:1px solid #b9c9d8;border-radius:6px;background:#fff;color:#142033;padding:0 12px;cursor:pointer}button:hover{border-color:#6f93b4}button:disabled{cursor:not-allowed;opacity:.55}a{display:inline-flex;align-items:center;gap:5px;color:#176d92;font-weight:700;text-decoration:none}.app-shell{max-width:1600px;margin:0 auto;padding:24px;position:relative}.hero{position:relative;overflow:hidden;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:26px;border:1px solid #c7dceb;border-radius:8px;background:linear-gradient(120deg,#fffffff0,#e8f6fbeb),radial-gradient(circle at 86% 42%,rgba(115,167,243,.26),transparent 30%);box-shadow:0 22px 48px #1f537a26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero:after{content:"";position:absolute;right:36px;top:50%;width:210px;height:210px;transform:translateY(-50%);background:url(../plasmid-background.svg) center / contain no-repeat;opacity:.34}.hero>*{position:relative;z-index:1}h1,h2{margin:0;letter-spacing:0}h1{font-size:clamp(30px,4vw,52px);line-height:1.02}h2{font-size:22px}p{margin:8px 0 0;color:#52657a}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin:18px 0}.summary-card{padding:18px;border:1px solid #c2d7e8;border-radius:8px;background:#ffffffe6;box-shadow:0 14px 28px #1f537a17;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.summary-card span{display:block;color:#52657a;margin-bottom:6px;font-weight:700}.summary-card strong{font-size:32px}.summary-card.blue{border-top:5px solid #73a7f3}.summary-card.pink{border-top:5px solid #eaa2cb}.summary-card.green{border-top:5px solid #95d8a5}.legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.legend button{display:inline-flex;align-items:center;gap:7px;min-height:30px;border:1px solid #c2d7e8;border-radius:999px;background:#fff;padding:3px 10px;font-weight:700;font-size:13px;color:#142034;cursor:pointer}.legend button.active,.legend button:hover{border-color:#4a9ad2;background:#d8edf9;color:#0f5e89}.legend i{width:13px;height:13px;border-radius:999px}.tabs,.subtabs{display:flex;gap:8px;flex-wrap:wrap}.tabs{margin-bottom:14px}.tabs button,.subtabs button,.icon-text,.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px}.tabs button{min-width:180px;background:#ffffffe0;font-weight:800;box-shadow:0 8px 18px #1f537a0f;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.tabs button.active{background:#d7edf9;border-color:#4c92c4;color:#0d5f89}.panel{border:1px solid #c2d7e8;border-radius:8px;background:#ffffffd1;padding:18px;box-shadow:0 18px 40px #1f537a1a;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.subtabs{margin-bottom:14px}.subtabs button.active{background:#176d92;border-color:#176d92;color:#fff}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}.searchbox{display:flex;align-items:center;gap:8px;flex:1;min-height:44px;border:1px solid #b9c9d8;border-radius:6px;background:#fff;padding:0 12px}.searchbox input{border:0;outline:0;width:100%}input,select,textarea{width:100%;border:1px solid #b9c9d8;border-radius:6px;background:#fff;color:#142033;padding:10px 11px}input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:#176d92}textarea{min-height:92px;resize:vertical}label{display:grid;gap:6px;color:#3c5067;font-size:13px;font-weight:800}.entry-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:13px;max-width:1120px}.selected-plasmid-details{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:13px;border:1px solid #c2d7e8;border-radius:8px;background:#f8fcff;padding:16px}.bulk-panel{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:13px;margin-bottom:16px;border:1px solid #c2d7e8;border-radius:8px;background:#f8fcff;padding:16px}.members-layout{display:grid;gap:18px}.member-form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:13px;border:1px solid #c2d7e8;border-radius:8px;background:#f8fcff;padding:16px}.entry-form h2,.selected-plasmid-details h3,.bulk-panel h2,.bulk-panel p,.member-form h2,.wide{grid-column:1 / -1}.selected-plasmid-details h3{margin:0;font-size:18px}.selected-plasmid-details input[readonly]{background:#f4f9fc;color:#3c5067}.form-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.copy-context{display:grid;gap:6px;border:1px solid #c2d7e8;border-radius:6px;background:#f8fcff;padding:11px;color:#3c5067}.copy-context strong{color:#142033}.prefix-input{display:grid;grid-template-columns:auto 1fr;align-items:center;overflow:hidden;border:1px solid #b9c9d8;border-radius:6px;background:#fff}.prefix-input span{padding:0 12px;color:#0d5f89;font-weight:900}.prefix-input input{border:0;border-left:1px solid #d6e2ec;border-radius:0}.primary{background:#19866f;border-color:#19866f;color:#fff;font-weight:900}.danger-button{display:inline-flex;align-items:center;gap:6px;min-height:32px;border-color:#e8aaaa;background:#fff4f4;color:#8c2323;font-size:13px;font-weight:900}.edit-button{display:inline-flex;align-items:center;gap:6px;min-height:32px;border-color:#b7d3e6;background:#f2faff;color:#0d5f89;font-size:13px;font-weight:900}.row-actions,.bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bulk-actions{margin-left:auto}.bulk-actions span{color:#44566c;font-size:13px;font-weight:900}.notice{padding:12px 14px;border:1px solid #b9c9d8;border-radius:6px;background:#fff}.notice.error{border-color:#e8aaaa;background:#fff4f4;color:#8c2323}.table-wrap{overflow:auto;border:1px solid #c2d7e8;border-radius:8px;background:#fff}table{width:100%;min-width:1280px;border-collapse:collapse}th,td{padding:10px 11px;border-bottom:1px solid #e3edf5;text-align:left;vertical-align:top;font-size:14px}th{position:sticky;top:0;z-index:1;background:#f3f9fd;color:#44566c;text-transform:uppercase;font-size:12px}.sort-header{min-height:0;border:0;background:transparent;padding:0;color:inherit;font-size:inherit;font-weight:900;text-transform:inherit}.sort-header:hover{border:0;color:#0d5f89}.sort-header span{margin-left:4px}.long-cell{min-width:220px;max-width:380px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.category-pill{display:inline-flex;white-space:nowrap;border:2px solid #9aa8b8;border-radius:999px;background:#fff;padding:3px 9px;font-size:12px;font-weight:900}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-panel{width:min(520px,100%);display:grid;gap:16px;border:1px solid #c2d7e8;border-radius:8px;background:#fff;padding:24px;box-shadow:0 14px 36px #1f537a1f}.muted{color:#6a7c91;font-size:13px}@media (max-width: 900px){.app-shell{padding:14px}.hero{flex-direction:column}.summary-grid,.entry-form,.member-form{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.tabs button{flex:1 1 100%}}
