@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--red:#e31c2d;--red2:#a8071a;--wine:#520814;--ink:#191b21;--muted:#747984;--line:#e8e9ec;--bg:#f5f5f6;--white:#fff;--green:#18a873;--amber:#e69417}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#ff4b58,var(--red2));font:800 22px Manrope;color:white;box-shadow:0 10px 30px #e31c2d55}.brand b{font:800 20px Manrope;letter-spacing:1.8px}.brand small{display:block;font-size:8px;letter-spacing:2.1px;margin-top:-2px}.brand.light{color:white}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.12fr .88fr}.login-art{padding:44px 7vw;background:radial-gradient(circle at 76% 30%,#e31c2d55 0,transparent 32%),linear-gradient(135deg,#170207,#4b0712 55%,#1d0207);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:620px;height:620px;border:1px solid #ff9aa51e;border-radius:50%;right:-220px;top:13%;box-shadow:0 0 0 85px #fff5,0 0 0 170px #fff3}.hero-copy{position:relative;z-index:1;color:white;max-width:680px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:800;color:#ff8994}.eyebrow.dark{color:var(--red)}.hero-copy h1{font:800 clamp(46px,5vw,76px)/1.02 Manrope;margin:18px 0}.hero-copy h1 em{font-style:normal;background:linear-gradient(90deg,#ff4355,#ff9aa5);-webkit-background-clip:text;color:transparent}.hero-copy p{max-width:570px;color:#d1aeb4;font-size:16px;line-height:1.7}.login-metrics{display:flex;gap:40px;margin-top:35px}.login-metrics span{display:flex;flex-direction:column}.login-metrics b{font:700 18px Manrope}.login-metrics small{font-size:9px;color:#a97f86;margin-top:2px}.pulse-card{width:min(540px,100%);display:flex;align-items:center;gap:14px;background:#ffffff0b;border:1px solid #ffffff18;border-radius:16px;padding:17px;color:white;z-index:1}.pulse{width:10px;height:10px;background:#29de9e;border-radius:50%;box-shadow:0 0 0 6px #29de9e22}.pulse-card div{display:flex;flex-direction:column}.pulse-card small{color:#aa858c}.pulse-card strong{margin-left:auto;color:#29de9e;font-size:11px;letter-spacing:1px}.login-panel{background:white;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;position:relative}.login-form{width:min(420px,100%)}.login-form h2{font:800 34px Manrope;margin:12px 0 5px}.login-form>p{color:var(--muted);margin:0 0 34px}.login-form label,.form-grid label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:700;margin-bottom:19px}.login-form input,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #dfe1e5;border-radius:10px;padding:13px 14px;outline:none;background:#fbfbfc}.login-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #e31c2d14}.primary{border:0;background:linear-gradient(120deg,var(--red),var(--red2));color:white;border-radius:10px;padding:13px 18px;font-weight:700;cursor:pointer;box-shadow:0 8px 20px #e31c2d26}.login-form .primary{width:100%;display:flex;justify-content:space-between}.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.demo{margin-top:22px;border:1px solid #f1c8cd;background:#fff7f8;border-radius:11px;padding:13px;display:flex;gap:12px;font-size:12px;color:#9a2532}.demo div{display:flex;flex-direction:column}.login-panel footer{position:absolute;bottom:24px;font-size:10px;color:#a0a3aa}.mobile{display:none}
.app{min-height:100vh;display:grid;grid-template-columns:255px 1fr}aside{background:linear-gradient(180deg,#260309,#400711 58%,#210207);height:100vh;position:sticky;top:0;padding:22px 16px;display:flex;flex-direction:column;color:white;box-shadow:10px 0 35px #32040c18}aside .brand{padding:0 9px 24px;border-bottom:1px solid #ffffff13}nav{margin-top:10px;display:flex;flex-direction:column;gap:2px}nav>span{font-size:8px;letter-spacing:1.7px;color:#9a6970;padding:14px 12px 5px}nav button{border:0;background:transparent;color:#c0989f;padding:9px 11px;border-radius:9px;text-align:left;display:flex;align-items:center;gap:11px;cursor:pointer}nav button i{font-style:normal;width:20px;text-align:center;color:#b6747e}nav button b{font-weight:500;font-size:12px}nav button:hover,nav button.active{background:linear-gradient(90deg,#e31c2d32,#e31c2d0b);color:white}nav button.active{box-shadow:inset 3px 0 #ff4656}nav em{font-style:normal;background:var(--red);color:white;border-radius:12px;padding:1px 6px;font-size:9px;margin-left:auto}.security{margin-top:auto;background:#ffffff08;border:1px solid #ffffff12;border-radius:10px;padding:11px;display:flex;align-items:center;gap:10px}.security>span{color:#2ddb9c}.security div,.side-user div{display:flex;flex-direction:column}.security b{font-size:10px}.security small{color:#9e777e;font-size:8px}.side-user{display:flex;gap:10px;align-items:center;padding:16px 5px 0;margin-top:13px;border-top:1px solid #ffffff12}.side-user>span,.top-avatar{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,#f23848,#9d0717);color:white;font-weight:700;font-size:11px}.side-user b{font-size:11px}.side-user small{font-size:8px;color:#e27c88}.side-user button{margin-left:auto;background:none;border:0;color:#bc8b92;cursor:pointer;font-size:18px}
main{min-width:0}header{height:80px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;gap:18px;position:sticky;top:0;z-index:4}header h2{font:700 18px Manrope;margin:0}header p{font-size:9px;color:#999da6;margin:3px 0 0}.header-actions{margin-left:auto;display:flex;align-items:center;gap:13px}.live{font-size:9px;color:#278b69;background:#ecfaf5;border:1px solid #d0f0e5;padding:7px 10px;border-radius:20px}.live i{display:inline-block;width:6px;height:6px;background:#28c88f;border-radius:50%;margin-right:5px}.icon,#menu{border:1px solid var(--line);background:white;border-radius:8px;padding:8px;cursor:pointer}#menu{display:none}#content{padding:28px 32px;max-width:1600px;margin:auto}.welcome{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.welcome h1{font:800 26px Manrope;margin:0 0 5px}.welcome p{color:var(--muted);font-size:12px;margin:0}.date{color:#747982;font-size:10px;background:white;border:1px solid var(--line);border-radius:8px;padding:8px 11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat,.card{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 5px 18px #34151a09}.stat{padding:17px;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-24px;top:-25px;background:var(--accent,#e31c2d);opacity:.08}.stat:after{content:"";position:absolute;left:0;top:15px;bottom:15px;width:3px;border-radius:4px;background:var(--accent,var(--red))}.stat span{font-size:8px;letter-spacing:1.1px;color:#898d95;font-weight:800}.stat strong{font:800 29px Manrope;display:block;margin:8px 0 1px}.stat small{font-size:9px;color:#969aa2}.stat.warn{--accent:var(--amber)}.stat.danger{--accent:var(--red)}.stat.green{--accent:var(--green)}.grid-2{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.card-head{display:flex;align-items:center;padding:17px 19px;border-bottom:1px solid var(--line)}.card-head h3{font:700 13px Manrope;margin:0}.card-head p{font-size:9px;color:#9599a1;margin:3px 0 0}.card-head button{margin-left:auto}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:8px;letter-spacing:.8px;color:#898d96;background:#fafafb;padding:10px 14px}td{padding:12px 14px;border-top:1px solid #eff0f2;font-size:10px}td b{display:block;font-size:11px}td small{display:block;color:#989ca4;margin-top:2px}.badge{display:inline-flex;padding:4px 8px;border-radius:12px;font-size:8px;font-weight:800}.ACTIVE,.APPROVED,.OPERATIONAL,.RESOLVED{background:#e7f8f2;color:#14815f}.REVOKED,.REJECTED,.CRITICAL{background:#fdebed;color:#c52d3c}.PENDING,.OPEN,.MEDIUM{background:#fff3de;color:#ac6f11}.IN_PROGRESS,.HIGH{background:#fff0f2;color:#c52d3c}.LOW{background:#eef2f5;color:#66727d}.actions button{border:1px solid var(--line);background:white;border-radius:6px;padding:5px 8px;cursor:pointer;color:#59616c}.actions .danger{color:#c52d3c}.activity{padding:7px 19px}.activity-item{display:grid;grid-template-columns:8px 1fr auto;gap:11px;align-items:start;padding:11px 0;border-bottom:1px solid #eff0f2}.dot{width:7px;height:7px;background:var(--red);border-radius:50%;margin-top:5px}.activity-item b{font-size:10px;display:block}.activity-item small{font-size:8px;color:#92969f}.activity-item time{font-size:8px;color:#a3a6ad}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.toolbar h1{font:800 23px Manrope;margin:0}.toolbar p{font-size:11px;color:var(--muted);margin:4px 0}.search{border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:white;min-width:220px}.table-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.empty{padding:50px;text-align:center;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.quick{border:1px solid var(--line);background:white;border-radius:12px;padding:14px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px}.quick span{width:36px;height:36px;border-radius:9px;background:#fff0f2;color:var(--red);display:grid;place-items:center;font-weight:800}.quick b{display:block;font-size:11px}.quick small{font-size:9px;color:#999da5}.quick:hover{border-color:#eb9da5;transform:translateY(-1px)}
dialog{border:0;border-radius:15px;padding:0;width:min(680px,92vw);box-shadow:0 24px 80px #3b071055}dialog::backdrop{background:#25040aaa}.modal-head{padding:21px 24px 14px;display:flex;border-bottom:1px solid var(--line)}.modal-head h2{font:700 20px Manrope;margin:5px 0}.close{margin-left:auto;border:0;background:#f2f2f3;width:32px;height:32px;border-radius:8px;font-size:21px;cursor:pointer}.form-grid{padding:21px 24px;display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.form-grid .full{grid-column:1/-1}.form-grid textarea{min-height:80px;resize:vertical}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:17px}.secondary{border:1px solid var(--line);background:white;padding:9px 14px;border-radius:8px;cursor:pointer}#toast{position:fixed;right:24px;top:20px;z-index:99}.toast{background:#2e070d;color:white;padding:12px 17px;border-radius:9px;box-shadow:0 10px 30px #2d050c3d;font-size:11px;margin-bottom:8px}.toast.error{background:#a91425}
@media(max-width:1000px){.stats{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}@media(max-width:820px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh}.mobile{display:flex;margin-bottom:45px;color:#2d070d}.app{grid-template-columns:1fr}aside{position:fixed;z-index:20;width:255px;transform:translateX(-100%);transition:.25s}aside.open{transform:none}#menu{display:block}#content{padding:20px}.live{display:none}}@media(max-width:560px){.stats{grid-template-columns:1fr}.toolbar{align-items:flex-start;gap:11px;flex-direction:column}.toolbar>div:last-child{width:100%;display:flex;gap:6px}.search{width:100%;min-width:0}.form-grid{grid-template-columns:1fr}.login-panel{padding:25px}.welcome .date{display:none}.login-metrics{gap:18px}}
.license-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.license-pagination>div{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.license-pagination select{padding:6px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);margin-left:5px}.license-pagination nav{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:5px;margin:0}.license-pagination nav button{display:block;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);font-size:11px}.license-pagination nav button[aria-current="page"]{background:var(--red);color:white;border-color:var(--red);box-shadow:none}.license-pagination nav button:disabled{opacity:.4;cursor:default}.license-pagination nav button:hover:not(:disabled){border-color:var(--red)}.license-pagination nav>span{padding:0 3px;color:var(--muted);font-size:11px;letter-spacing:normal}#content{scroll-margin-top:90px}
.SUSPENDED{background:#fff3de;color:#ac6f11}
.issue-sources{margin:0 0 16px}.RECORDED{background:#eef2f5;color:#66727d}
/* SWELAB product-led login */
.login-shell{grid-template-columns:minmax(0,1.22fr) minmax(380px,1fr)}
.login-art{padding:36px clamp(28px,4vw,76px);gap:28px;background:radial-gradient(ellipse at 80% 55%,#98182f55,transparent 65%),linear-gradient(145deg,#210208,#490b17 65%,#220409)}
.login-art:after{width:650px;height:650px;right:-420px;top:18%;box-shadow:0 0 0 80px #ffffff03,0 0 0 160px #ffffff02;border-color:#ffffff08;pointer-events:none}
.login-brand-row{display:flex;justify-content:space-between;align-items:center;gap:16px;z-index:1}.login-art .brand{padding:0;border:0}.edition-label{font-size:8px;color:#d4abb3;letter-spacing:1.8px}.hero-copy{margin-top:8px}.hero-copy .eyebrow{font-size:9px;letter-spacing:2px;color:#ff9ba8}.hero-copy h1{font:800 clamp(30px,3.1vw,57px)/1.16 Manrope;margin:14px 0 16px;letter-spacing:-1.7px}.hero-copy h1 em{background:linear-gradient(90deg,#ff6379,#ffacb8);background-clip:text}.hero-copy p{font-size:13px;line-height:1.8;color:#d1b0b7;margin:0;max-width:570px}
.instrument-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px;position:relative;z-index:1}.instrument-card{margin:0;background:linear-gradient(145deg,#fff,#f4f1f2);border:1px solid #fff9;border-radius:18px;padding:17px 18px 18px;overflow:hidden;box-shadow:0 20px 45px #13010638;color:#251b20;transition:transform .25s,box-shadow .25s}.instrument-card:hover{transform:translateY(-5px);box-shadow:0 25px 45px #13010655}.instrument-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:7px;letter-spacing:1px;color:#897880;font-weight:700}.instrument-type{background:#f5e7eb;border-radius:5px;padding:5px 7px;color:#991e39;white-space:nowrap;font-size:7px}.instrument-image{height:clamp(145px,18vw,290px);display:flex;justify-content:center;align-items:center;margin:12px 0;position:relative}.instrument-image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .3s}.instrument-card:hover img{transform:scale(1.035)}.instrument-card figcaption{border-top:1px solid #e8dfe2;padding-top:14px;display:flex;align-items:end;justify-content:space-between;gap:6px}.instrument-card figcaption small{font-size:8px;letter-spacing:2px;color:#a5213b;font-weight:700}.instrument-card h2{font:800 clamp(19px,1.7vw,29px) Manrope;margin:3px 0 0;letter-spacing:-.7px}.instrument-card figcaption>span{font-size:9px;line-height:1.6;color:#817078;text-align:right}
.login-art-footer{z-index:1;display:flex;align-items:center;gap:12px;border-top:1px solid #ffffff18;padding-top:20px;color:#eed8dd}.ecosystem-mark{border:1px solid #ffffff25;border-radius:9px;width:34px;height:34px;display:grid;place-items:center;font-weight:800;font-size:15px;color:#ff9cad}.login-art-footer b{display:block;font-size:11px;font-weight:500}.login-art-footer small{display:block;color:#b88f99;font-size:9px;margin-top:4px}.connection-line{margin-left:auto;color:#c87d8e;font-size:10px;letter-spacing:2px;white-space:nowrap}
.login-panel{padding:54px clamp(28px,4.5vw,90px);background:radial-gradient(ellipse at 100% 0%,#fff4f6,transparent 50%),white}.login-form{max-width:420px}.login-form h2{font-size:36px;letter-spacing:-1.2px;margin-top:17px}.welcome-dot{color:var(--red)}.login-form>p{font-size:13px;line-height:1.7;margin:8px 0 30px}.login-form label{font-size:12px;margin-bottom:20px}.login-form input{min-height:49px;background:#fcfbfc}.login-form .primary{min-height:50px;align-items:center;margin-top:5px}.login-form .demo{font-size:11px;margin-top:24px;background:#fffafb;border-color:#f0dce1}.login-form .demo small{font-size:10px;margin-top:3px}.login-panel footer{text-align:center;padding:0 20px;line-height:1.6}.source-note{font-size:11px;color:var(--muted);margin-bottom:14px}
@media(min-width:821px) and (max-height:780px){.login-art{gap:20px;padding-top:26px;padding-bottom:26px}.hero-copy h1{font-size:clamp(29px,3vw,45px)}.instrument-image{height:170px}.login-art-footer{padding-top:15px}}
@media(max-width:1100px) and (min-width:821px){.login-shell{grid-template-columns:1.1fr 1fr}.edition-label,.instrument-card figcaption>span,.connection-line{display:none}.login-art{padding:28px;gap:25px}.instrument-gallery{gap:12px}.instrument-card{padding:13px}.instrument-heading>span:first-child{font-size:6px;letter-spacing:0}.hero-copy h1{font-size:33px}.login-panel{padding:40px 30px}.login-form h2{font-size:30px}}
@media(max-width:820px){.login-shell{display:flex;flex-direction:column}.login-art{display:flex;padding:28px;gap:22px;order:2}.login-panel{min-height:650px;padding:50px 28px 70px;order:1}.login-form .mobile{margin-bottom:35px}.hero-copy h1{font-size:34px}.instrument-image{height:220px}.login-art-footer{margin-top:4px}.login-art .brand{display:none}.login-brand-row{display:none}.login-panel footer{bottom:20px}}
@media(max-width:440px){.instrument-gallery{gap:10px}.instrument-card{padding:11px;border-radius:12px}.instrument-heading>span:first-child,.instrument-card figcaption>span,.connection-line{display:none}.instrument-image{height:140px;margin:10px 0}.instrument-card h2{font-size:20px}.hero-copy h1{font-size:29px;letter-spacing:-1px}.login-art{padding:25px 20px}.login-form h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.instrument-card,.instrument-image img{transition:none}.instrument-card:hover,.instrument-card:hover img{transform:none}}
.brand .brand-logo,.login-art-footer .brand-logo{object-fit:contain;background:transparent;box-shadow:none;border:0;border-radius:0;flex-shrink:0;padding:0}.brand .brand-logo{width:48px;height:48px}
.login-form label[for="loginPassword"]{margin-bottom:8px}.password-field{position:relative;margin-bottom:20px}.password-field input{width:100%;padding-right:108px}.password-field button{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--red2);font-size:11px;font-weight:700;padding:8px;cursor:pointer;border-radius:5px}.password-field button:focus-visible{outline:2px solid var(--red);outline-offset:1px}
.password-field input{padding-right:52px}.password-field button{display:grid;place-items:center;width:36px;height:36px;padding:8px;color:var(--muted)}.password-field button:hover{color:var(--red2);background:#fff0f2}
.file-description{white-space:pre-wrap;overflow-wrap:anywhere;min-width:160px;max-width:350px;line-height:1.6}
