/* RR Studio project portal — independent from robot HMI pages */
.rr-portal{position:fixed;inset:0;z-index:9000;display:none;background:radial-gradient(circle at 22% 16%,rgba(0,166,255,.18),transparent 33%),radial-gradient(circle at 82% 75%,rgba(0,255,183,.11),transparent 30%),#07111d;color:#f3f8ff;overflow:auto;font-family:Inter,Segoe UI,Arial,sans-serif}
.rr-portal.is-open{display:block}.rr-portal-shell{min-height:100%;padding:28px 34px 44px;box-sizing:border-box}
.rr-portal-top{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1540px;margin:0 auto 46px}.rr-portal-brand{display:flex;align-items:center;gap:13px}.rr-portal-mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#118cff,#12d6ca);font-size:25px;font-weight:900;box-shadow:0 12px 30px rgba(0,136,255,.28)}.rr-portal-brand-copy strong{display:block;line-height:.92;letter-spacing:.16em;font-size:16px}.rr-portal-brand-copy small{display:block;margin-top:7px;color:#8193a9;letter-spacing:.12em;font-size:10px}
.rr-portal-user{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid rgba(151,185,219,.16);border-radius:14px;background:rgba(14,28,44,.72)}.rr-portal-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#173451;color:#7fdcff;font-weight:800}.rr-portal-user b,.rr-portal-user small{display:block}.rr-portal-user small{color:#8092a8;margin-top:2px}.rr-portal-lock{border:0;background:transparent;color:#9eb1c6;cursor:pointer;font-weight:700;padding:8px 10px}
.rr-portal-main{max-width:1540px;margin:0 auto}.rr-portal-kicker{color:#34c7ff;letter-spacing:.18em;font-size:11px;font-weight:800}.rr-portal-main h1{font-size:clamp(38px,5vw,72px);line-height:1;margin:12px 0 16px;letter-spacing:-.045em}.rr-portal-subtitle{max-width:760px;color:#9eb0c4;font-size:18px;line-height:1.55;margin:0 0 38px}
.rr-project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.rr-project-card{position:relative;min-height:230px;border:1px solid rgba(137,176,211,.17);border-radius:22px;background:linear-gradient(145deg,rgba(19,38,58,.93),rgba(9,21,34,.93));padding:25px;box-sizing:border-box;overflow:hidden;box-shadow:0 20px 55px rgba(0,0,0,.24)}.rr-project-card::after{content:"";position:absolute;inset:auto -30px -80px auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(18,169,255,.22),transparent 68%)}.rr-project-card.primary{grid-column:span 7;min-height:342px;border-color:rgba(49,180,255,.34)}.rr-project-card.secondary{grid-column:span 5;min-height:342px}.rr-project-card.small{grid-column:span 4}.rr-card-tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(38,184,255,.12);color:#52cfff;font-size:10px;font-weight:800;letter-spacing:.12em}.rr-project-card h2{font-size:32px;margin:22px 0 8px}.rr-project-card h3{font-size:22px;margin:20px 0 8px}.rr-project-card p{color:#95a8bc;line-height:1.5;max-width:580px}.rr-card-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.rr-card-meta span{padding:7px 9px;border:1px solid rgba(141,179,214,.15);border-radius:9px;color:#a8bacb;font-size:11px}.rr-card-action{position:absolute;left:25px;bottom:24px;z-index:1;border:0;border-radius:12px;background:linear-gradient(135deg,#148ff5,#13c9bd);color:white;font-weight:900;letter-spacing:.05em;padding:13px 17px;cursor:pointer}.rr-card-action.ghost{background:rgba(105,137,166,.12);color:#8da1b4;border:1px solid rgba(140,174,205,.14);cursor:default}.rr-project-card.disabled{opacity:.67}.rr-portal-footer{max-width:1540px;margin:27px auto 0;color:#687b91;font-size:12px;display:flex;justify-content:space-between;gap:20px}
@media(max-width:980px){.rr-project-card.primary,.rr-project-card.secondary,.rr-project-card.small{grid-column:span 12}.rr-portal-shell{padding:22px}.rr-portal-top{margin-bottom:34px}.rr-portal-user div{display:none}}

.rr-portal-expansion{margin:7px 0 4px;color:#b9dbf5;font-size:13px;font-weight:750;letter-spacing:.045em}.rr-portal-kicker{color:#69bdff}

/* Rapid ORBIT 2.4.15 — first-class application cards. */
.rr-project-card.primary.rr1515,.rr-project-card.primary.uav,.rr-project-card.primary.ugv,.rr-project-card.primary.marine{grid-column:span 3}
.rr-project-card.uav{border-color:rgba(66,202,179,.36);background:radial-gradient(circle at 82% 28%,rgba(35,199,188,.15),transparent 30%),linear-gradient(145deg,rgba(16,48,65,.95),rgba(8,25,37,.95))}
.rr-project-card.uav::after{background:radial-gradient(circle,rgba(38,222,190,.2),transparent 68%)}
.rr-project-card.uav .rr-card-tag{background:rgba(39,213,183,.12);color:#7ce9d0}
.rr-uav-card-visual{position:absolute;right:18px;bottom:22px;width:205px;height:145px;border:1px solid rgba(111,213,218,.13);border-radius:18px;background:linear-gradient(rgba(92,198,218,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(92,198,218,.055) 1px,transparent 1px),rgba(5,24,34,.58);background-size:24px 24px;overflow:hidden;opacity:.92}
.rr-uav-card-visual .track{position:absolute;display:block;border:2px solid rgba(88,215,218,.45);border-color:rgba(88,215,218,.45) transparent transparent rgba(88,215,218,.45);border-radius:50%;transform:rotate(14deg)}
.rr-uav-card-visual .track.one{width:150px;height:85px;left:18px;top:36px}.rr-uav-card-visual .track.two{width:105px;height:60px;left:68px;top:23px;transform:rotate(-18deg)}
.rr-uav-card-visual .home{position:absolute;left:28px;bottom:24px;width:11px;height:11px;border:3px solid #b9fff2;border-radius:50%;background:#25caa2;box-shadow:0 0 15px rgba(37,202,162,.72)}
.rr-uav-card-visual .aircraft{position:absolute;right:38px;top:40px;color:#d7ffff;font-size:30px;line-height:1;filter:drop-shadow(0 0 9px rgba(90,231,229,.85))}
.rr-project-card.ugv{border-color:rgba(252,174,69,.34);background:radial-gradient(circle at 82% 30%,rgba(255,167,43,.14),transparent 31%),linear-gradient(145deg,rgba(42,42,45,.97),rgba(14,26,35,.96))}
.rr-project-card.ugv::after{background:radial-gradient(circle,rgba(255,164,52,.2),transparent 68%)}
.rr-project-card.ugv .rr-card-tag{background:rgba(255,174,66,.12);color:#ffd18d}
.rr-ugv-card-visual{position:absolute;right:18px;bottom:22px;width:205px;height:145px;border:1px solid rgba(245,181,91,.15);border-radius:18px;background:linear-gradient(rgba(248,192,109,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(248,192,109,.05) 1px,transparent 1px),rgba(9,25,32,.62);background-size:24px 24px;overflow:hidden;opacity:.94}
.rr-ugv-card-visual .route{position:absolute;display:block;height:3px;border-radius:999px;background:linear-gradient(90deg,rgba(255,198,111,.18),rgba(255,198,111,.8));transform-origin:left center}
.rr-ugv-card-visual .route.one{width:128px;left:30px;top:96px;transform:rotate(-24deg)}
.rr-ugv-card-visual .route.two{width:83px;left:132px;top:44px;transform:rotate(28deg)}
.rr-ugv-card-visual .origin,.rr-ugv-card-visual .goal{position:absolute;width:12px;height:12px;border:3px solid rgba(255,239,211,.9);border-radius:50%;box-shadow:0 0 14px rgba(255,170,51,.62)}
.rr-ugv-card-visual .origin{left:24px;bottom:27px;background:#f2a53a}.rr-ugv-card-visual .goal{right:23px;top:60px;background:#50d2a0}
.rr-ugv-card-visual .vehicle{position:absolute;left:101px;top:64px;width:37px;height:24px;border:2px solid #f7d39a;border-radius:8px;background:linear-gradient(145deg,#e3a54c,#6a4a2f);transform:rotate(-16deg);box-shadow:0 0 18px rgba(255,174,71,.38)}
.rr-ugv-card-visual .vehicle::before,.rr-ugv-card-visual .vehicle::after{content:"";position:absolute;left:3px;right:3px;height:5px;border-radius:999px;background:#27313a}.rr-ugv-card-visual .vehicle::before{top:-5px}.rr-ugv-card-visual .vehicle::after{bottom:-5px}
.rr-ugv-card-visual .vehicle i{position:absolute;left:12px;top:5px;width:10px;height:8px;border-radius:3px;background:#8be9ff;box-shadow:0 0 8px rgba(139,233,255,.75)}
.rr-project-card.marine{border-color:rgba(70,168,255,.38);background:radial-gradient(circle at 80% 27%,rgba(27,139,224,.2),transparent 33%),linear-gradient(145deg,rgba(10,44,67,.97),rgba(5,24,39,.97))}
.rr-project-card.marine::after{background:radial-gradient(circle,rgba(35,157,255,.23),transparent 68%)}
.rr-project-card.marine .rr-card-tag{background:rgba(63,168,255,.14);color:#8bd4ff}
.rr-marine-card-visual{position:absolute;right:18px;bottom:22px;width:205px;height:145px;border:1px solid rgba(108,190,255,.18);border-radius:18px;background:linear-gradient(rgba(86,174,232,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(86,174,232,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(8,38,59,.52),rgba(4,25,42,.82));background-size:24px 24px;overflow:hidden;opacity:.96}
.rr-marine-card-visual::before{content:"";position:absolute;left:0;right:0;bottom:0;height:48%;background:repeating-radial-gradient(ellipse at 50% 100%,rgba(77,184,246,.2) 0 2px,transparent 3px 13px);opacity:.55}
.rr-marine-card-visual .wake{position:absolute;display:block;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(134,221,255,.75),transparent);transform-origin:left center}
.rr-marine-card-visual .wake.one{width:124px;left:34px;top:96px;transform:rotate(-12deg)}.rr-marine-card-visual .wake.two{width:92px;left:72px;top:110px;transform:rotate(8deg)}.rr-marine-card-visual .wake.three{width:72px;left:96px;top:82px;transform:rotate(24deg)}
.rr-marine-card-visual .buoy{position:absolute;right:25px;top:32px;width:9px;height:9px;border:3px solid #ffd68e;border-radius:50%;background:#ff8e42;box-shadow:0 0 15px rgba(255,142,66,.65)}
.rr-marine-card-visual .vessel{position:absolute;left:78px;top:55px;width:58px;height:27px;clip-path:polygon(8% 18%,82% 18%,100% 48%,78% 100%,17% 100%,0 48%);background:linear-gradient(160deg,#d8f3ff,#4388b9 48%,#173a55 50%);filter:drop-shadow(0 0 12px rgba(71,181,247,.48));transform:rotate(-8deg)}
.rr-marine-card-visual .vessel::before{content:"";position:absolute;left:20px;top:-8px;width:22px;height:13px;border:2px solid #c8edff;border-bottom:0;border-radius:7px 7px 0 0;background:#326b92}.rr-marine-card-visual .vessel i{position:absolute;left:26px;top:5px;width:8px;height:8px;border-radius:50%;background:#79f0d1;box-shadow:0 0 8px rgba(121,240,209,.8)}
@media(max-width:1400px){.rr-project-card.primary.rr1515,.rr-project-card.primary.uav,.rr-project-card.primary.ugv,.rr-project-card.primary.marine{grid-column:span 6}}
@media(max-width:980px){.rr-project-card.primary.rr1515,.rr-project-card.primary.uav,.rr-project-card.primary.ugv,.rr-project-card.primary.marine{grid-column:span 12}.rr-uav-card-visual,.rr-ugv-card-visual,.rr-marine-card-visual{opacity:.48}}
