:root{color:#223332;font-synthesis:none;--accent:#079d8a;--accent-light:#e8f6f2;--muted:#7a8986;--line:#e6ece9;--shadow:0 8px 36px #1e534a08;background:#f7f9f8;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);color:inherit;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:13px;transition:background .15s,border-color .15s;display:inline-flex}button:hover{background:#f1f7f5;border-color:#bfd7cd}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,textarea,select{color:#263c35;background:#fff;border:1px solid #dce5e1;border-radius:7px;outline:none;width:100%;padding:11px 12px;font-size:13px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #079d8a0d}textarea{resize:vertical;line-height:1.6}label{color:#50645d;font-size:12px;font-weight:600;display:block}label>input,label>select,label>textarea{margin-top:7px;display:block}input[type=color]{width:34px;height:34px;padding:3px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.3px;font-size:34px;font-weight:600;line-height:1.2}h2{letter-spacing:-.5px;font-size:20px;font-weight:600}h3{font-size:15px;font-weight:600}p{color:#7b8984;font-size:13px;line-height:1.7}.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 7px #079d8a10}.primary:hover{background:#078b7b;border-color:#078b7b}.danger{color:#fff;background:#c94d4d;border-color:#c94d4d}.danger-text{color:#b14c4c!important}.icon-btn{background:0 0;border:none;flex-shrink:0;padding:7px;line-height:0}.text-btn{color:var(--accent);background:0 0;border:0;justify-content:flex-start;padding:7px 0}.muted{color:var(--muted);font-size:12px}.brand{letter-spacing:-1.6px;color:#132d2a;background:0 0;border:0;justify-content:flex-start;gap:3px;padding:0;font-size:29px;font-weight:750}.brand:hover{background:0 0}.brand span{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-top:14px}.app-shell{min-height:100vh;display:flex}.rail{border-right:1px solid var(--line);z-index:20;background:#fff;flex-direction:column;flex-shrink:0;width:218px;padding:31px 22px 0;display:flex;position:fixed;inset:0 auto 0 0}.rail .brand{margin:0 13px 42px}.rail-nav{flex-direction:column;gap:9px;display:flex}.rail-nav>button,.rail-bottom>button{color:#6c7d77;background:0 0;border:0;justify-content:flex-start;gap:13px;padding:13px 15px;font-size:13px}.rail-nav>button.nav-active{color:#098673;background:#eaf6f1;font-weight:600}.tiny-count{background:#f0f3f1;border-radius:4px;margin-left:auto;padding:2px 5px;font-size:10px}.rail-bottom{margin-top:auto}.server-indicator{color:#586c62;align-items:flex-start;gap:8px;margin-bottom:18px;padding:14px 7px;font-size:10px;display:flex}.server-indicator i{background:#c7a960;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:4px}.server-indicator i.live{background:var(--accent)}.server-indicator small{color:#98a19e;margin-top:5px;font-size:9px;display:block}.profile{border-top:1px solid var(--line);align-items:center;gap:9px;margin-top:20px;padding:24px 0;display:flex}.avatar{color:#456557;background:#e4ede8;border:2px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:31px;height:31px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.profile b{text-overflow:ellipsis;max-width:115px;font-size:11px;display:block;overflow:hidden}.profile small{color:var(--muted);margin-top:4px;font-size:9px;display:block}.workspace{flex:1;min-width:0;margin-left:218px}.topbar{border-bottom:1px solid var(--line);background:#ffffffc9;justify-content:space-between;align-items:center;height:76px;padding:0 38px;display:flex}.breadcrumb{color:#94a19b;gap:15px;font-size:11px;display:flex}.breadcrumb b{color:#496057;font-weight:500}.top-actions{align-items:center;gap:19px;display:flex}.version{color:#8c9a94;font-size:10px}.projects-page{max-width:1620px;margin:auto;padding:49px 43px}.page-heading,.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.page-heading h1{margin:9px 0 11px}.page-heading p{margin:0}.eyebrow{color:#8e9c95;font-size:11px}.heading-dot{color:var(--accent)}.welcome-strip{background:linear-gradient(110deg,#eff8f2,#f9fcfa);border:1px solid #e1ebe5;border-radius:11px;align-items:center;gap:16px;margin:32px 0 35px;padding:23px;display:flex}.welcome-icon{color:#4d8f76;background:#fff;border-radius:12px;place-items:center;width:43px;height:43px;display:grid}.welcome-strip>div:nth-child(2){flex:1}.welcome-strip b{font-size:13px;font-weight:600;display:block}.welcome-strip span{color:#809489;margin-top:6px;font-size:11px;display:block}.strip-stat{border-left:1px solid #dfeae2;padding:0 22px}.strip-stat b{font-size:22px;font-weight:500}.strip-stat span{font-size:9px}.list-controls{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.segmented{gap:16px;display:flex}.segmented button{color:#88988f;background:0 0;border:0;border-radius:0;padding:8px 1px;font-size:12px}.segmented button.selected{color:#234336;border-bottom:2px solid var(--accent)}.segmented button span{background:#edf2ef;border-radius:4px;padding:2px 5px;font-size:9px}.search{color:#8ea097;border:1px solid var(--line);background:#fff;border-radius:7px;align-items:center;gap:8px;width:230px;padding:0 10px;display:flex}.search input{box-shadow:none;background:0 0;border:0;margin:0;padding:10px 0;font-size:11px;font-weight:400}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;display:grid}.project-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px;min-width:0;overflow:visible}.card-visual{background:#fff;border:none;border-radius:12px 12px 0 0;width:100%;height:228px;padding:15px 35px;display:block;position:relative;overflow:hidden}.card-visual:hover{background:#fff}.card-visual img{object-fit:contain;width:100%;height:100%;transition:transform .3s}.card-visual:hover img{transform:translateY(-5px)scale(1.025)}.project-tag{z-index:1;color:#899a90;background:#f5f8f6;border-radius:4px;padding:4px 7px;font-size:9px;font-weight:500;position:absolute;top:16px;left:18px}.open-arrow{opacity:0;color:var(--accent);position:absolute;bottom:15px;right:18px}.card-visual:hover .open-arrow{opacity:1}.card-info{border-top:1px solid #f2f5f3;padding:19px 21px}.card-info>div{justify-content:space-between;align-items:center;display:flex}.card-title{letter-spacing:-.3px;background:0 0;border:0;padding:0;font-size:16px;font-weight:600}.card-title:hover{color:var(--accent);background:0 0}.card-info p{min-height:32px;margin:8px 0 22px;font-size:11px;line-height:1.5}.card-info footer{color:#8da097;align-items:center;gap:13px;font-size:9px;display:flex}.card-info footer span{align-items:center;gap:5px;display:flex}.card-info footer span:last-child{margin-left:auto}.context-menu{position:relative}.context-menu summary{cursor:pointer;color:#91a399;padding:5px;list-style:none}.context-menu summary::-webkit-details-marker{display:none}.context-menu>div{border:1px solid var(--line);z-index:12;background:#fff;border-radius:8px;width:185px;padding:5px;position:absolute;top:28px;right:0;box-shadow:0 10px 30px #1c3d3420}.context-menu button{border:0;border-radius:4px;justify-content:flex-start;width:100%;padding:9px;font-size:11px}.new-project-card{color:#8aa092;background:0 0;border:1px dashed #d3e1d8;border-radius:12px;flex-direction:column;gap:10px;min-height:190px;display:flex}.new-project-card>span{background:#eef4ef;border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:3px;display:grid}.new-project-card b{font-size:12px;font-weight:500}.new-project-card small{color:#9aaba0;font-size:10px;font-weight:400}.bottom-note{color:#92a098;align-items:center;gap:9px;margin-top:36px;font-size:10px;display:flex}.project-page{padding:25px 27px 0}.project-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;display:flex}.back-link{color:#84988b;background:0 0;border:0;margin-bottom:13px;padding:0;font-size:10px}.project-heading h1{align-items:center;gap:7px;margin-bottom:7px;font-size:25px;display:flex}.project-heading p{margin:0;font-size:11px}.project-actions{align-items:center;gap:7px;display:flex}.project-actions button{padding:8px 10px;font-size:11px}.project-tabs{border-bottom:1px solid var(--line);align-items:center;gap:22px;display:flex}.project-tabs>button{color:#82948a;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;gap:7px;padding:13px 1px;font-size:11px}.project-tabs>button.active{color:#204435;border-bottom-color:var(--accent)}.device-state{color:#93a398;align-items:center;gap:5px;margin-left:auto;font-size:9px;display:flex}.bench-layout{border:1px solid var(--line);background:#fff;border-top:0;border-radius:0 0 10px 10px;grid-template-columns:162px minmax(280px,1fr) 230px;min-height:560px;display:grid}.object-panel{border-right:1px solid var(--line);flex-direction:column;padding:12px 10px;display:flex}.panel-heading{justify-content:space-between;align-items:center;gap:8px;padding:4px 3px 12px;font-size:12px;display:flex}.object-row{color:#74887c;white-space:normal;text-align:left;border:0;border-radius:6px;justify-content:flex-start;gap:8px;padding:10px 9px;font-size:10px}.object-row span{line-height:1.4}.object-row small{color:#a0afa5;margin-top:3px;font-size:8px;display:block}.object-row.selected{color:#168771;background:#ecf7f2}.object-bottom{border-top:1px solid var(--line);margin-top:28px;padding-top:17px;font-size:10px}.object-bottom>b{font-weight:500}.object-bottom>b>span{color:#9dab9f;margin-left:15px}.object-bottom .text-btn{font-size:9px}.connection-row{color:#7c9183;align-items:center;gap:6px;padding-top:8px;font-size:8px;display:flex}.connection-row>i{flex-shrink:0;width:13px;height:2px}.connection-row>span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.connection-row .icon-btn{padding:3px}.bench{background:#fff;flex-direction:column;min-width:0;min-height:560px;display:flex;position:relative;overflow:hidden}.bench.show-grid{background-image:radial-gradient(#dce8e0 .7px,#0000 .7px);background-size:21px 21px}.canvas-meta{color:#9bad9f;z-index:2;pointer-events:none;justify-content:space-between;align-items:center;gap:10px;font-size:9px;display:flex;position:absolute;top:15px;left:16px;right:16px}.badge{color:#82978b;white-space:nowrap;background:#f2f6f3;border-radius:4px;padding:4px 6px;font-size:8px;font-weight:400}.canvas-viewport{align-items:center;width:100%;min-height:400px;margin:auto;display:flex;overflow:hidden}.canvas{aspect-ratio:900/550;touch-action:none;transform-origin:50%;width:100%;min-height:340px;transition:transform .2s;position:relative}.wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.canvas-part{touch-action:none;cursor:grab;z-index:1;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:5px;width:112px;padding:4px;display:flex;position:absolute;transform:translate(-50%,-50%)}.canvas-part:active{cursor:grabbing}.canvas-part:hover{background:#f3f9f366;border-color:#d6e5db}.canvas-part.selected{z-index:2;background:#f1faf34d;border-color:#9acdc0}.part-img{object-fit:contain;pointer-events:none;mix-blend-mode:multiply;width:100%;height:100%}.canvas-part .part-img{width:110px;height:99px}.canvas-part.kind-harness{width:180px}.canvas-part.kind-harness .part-img{width:170px;height:145px}.part-label{color:#4f6f5b;white-space:nowrap;text-overflow:ellipsis;background:#ffffffed;border:1px solid #e8efe9;border-radius:4px;max-width:150px;padding:4px 7px;font-size:9px;overflow:hidden}.selection-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px;box-shadow:0 0 0 3px #daf3e8}.part-drawing{flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.part-drawing.battery{color:#dae8de;background:linear-gradient(125deg,#415149,#202e29);border-top:8px solid #27332d;border-radius:5px;width:72px;height:83px;margin:12px;transform:skewY(-3deg);box-shadow:8px 13px 16px #354f3420}.battery b{margin-top:3px;font-size:12px}.battery-term{background:#778378;border-radius:2px;width:16px;height:8px;position:absolute;top:-13px}.battery-term.plus{background:#c24641;right:4px}.battery-term.minus{left:4px}.part-drawing.lamp{color:#9ea99e;background:radial-gradient(circle,#fff,#d7e6dd);border:7px solid #43564a;border-radius:45% 45% 35% 35%;width:85px;height:80px;margin:12px;box-shadow:7px 10px 16px #3c68451a}.part-drawing.esp32{color:#bbd6bd;background:#267054;border:4px dotted #d9c286;border-radius:4px;width:72px;height:95px;margin:10px;box-shadow:5px 8px 16px #375b3420}.esp32 b{color:#fff;margin-top:5px;font-size:10px}.esp32 span{color:#adc8ad;font-size:6px}.part-drawing.connector{background:linear-gradient(130deg,#faf9ed,#dcded1);border:1px solid #d7dccc;border-radius:4px;width:68px;height:55px;margin:20px;transform:skewY(-6deg);box-shadow:7px 9px 14px #3f5d321c}.connector-holes{grid-template-columns:repeat(3,9px);gap:5px;display:grid}.connector-holes i{background:#5f6756;border:2px solid #c5c7b5;width:9px;height:11px}.connector small{color:#8b9682;margin-top:4px;font-size:6px}.symbol-body{color:#527c65;background:#fff;border:1px solid #cadbd1;border-radius:6px;padding:15px 21px}.canvas-part.symbol{background:0 0;width:100px}.canvas-toolbar{border:1px solid var(--line);z-index:4;background:#ffffffed;border-radius:8px;align-items:center;gap:7px;padding:5px 8px;display:flex;position:absolute;bottom:41px;left:50%;transform:translate(-50%);box-shadow:0 3px 15px #3b63470a}.canvas-toolbar>span{text-align:center;color:#76917e;min-width:32px;font-size:10px}.canvas-toolbar>i{background:var(--line);width:1px;height:18px}.canvas-note{text-align:center;color:#94aa98;justify-content:center;align-items:center;gap:6px;width:100%;font-size:8px;display:flex;position:absolute;bottom:14px}.inspector{border-left:1px solid var(--line);max-height:620px;padding:15px;overflow-y:auto}.inspector>.panel-heading{flex-wrap:wrap;font-size:12px}.inspector-img{background:#fafcfb;border-radius:6px;justify-content:center;align-items:center;height:135px;margin:5px 0 20px;display:flex}.inspector label{margin:14px 0;font-size:10px}.inspector input,.inspector textarea{padding:8px;font-size:10px}.pin-heading{justify-content:space-between;align-items:center;margin-top:20px;font-size:10px;display:flex}.pin-grid{background:#f5f7f3;border:1px solid #e4e9df;border-radius:5px;grid-template-columns:repeat(3,1fr);gap:4px;max-width:110px;margin:7px auto 17px;padding:6px;display:grid}.pin-grid>span{text-align:center;color:#83917a;background:#fff;border:1px solid #e7ece1;padding:6px;font-size:10px}.pin-grid>span.verified{background:#e4f4e6;border-color:#a1ccab}.pin-editor{border-bottom:1px solid #f4f6f1;align-items:center;gap:5px;padding:5px 0;display:flex}.pin-editor b{color:#829078;width:10px;font-size:9px}.pin-editor input[type=color]{border:0;flex-shrink:0;width:18px;height:20px;padding:0}.pin-editor input:not([type=color]){border:0;min-width:0;padding:5px;font-size:9px}.pin-editor .icon-btn{color:#b8c4b2;padding:3px}.pin-editor .verified{color:var(--accent);background:#e4f5e9}.inspector-hint{font-size:9px;line-height:1.6}.inspector .text-btn{font-size:10px}.bench-footer{color:#8a9e8d;justify-content:space-between;align-items:center;gap:12px;padding:17px 2px;font-size:9px;display:flex}.bench-footer>span{align-items:center;gap:7px;display:flex}.dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.experiments-view,.measurements-view,.notes-view{min-height:500px;padding:30px 5px}.section-heading{margin-bottom:26px}.section-heading h2{margin:0 0 7px}.section-heading p{margin:0;font-size:11px}.experiment-row{text-align:left;background:#fff;border-radius:10px;justify-content:flex-start;gap:20px;width:100%;margin:12px 0;padding:22px 25px;display:flex}.exp-icon{color:#7ba68c;background:#eff7f2;border-radius:10px;flex-shrink:0;place-items:center;width:45px;height:45px;display:grid}.experiment-row>div{flex:1}.experiment-row h3{margin:0 0 5px}.experiment-row p{margin:0 0 7px;font-size:11px}.experiment-row small{color:#a0aea0;font-size:9px}.status{color:#8a9b8a;white-space:nowrap;background:#eff4ed;border-radius:5px;padding:5px 9px;font-size:10px}.status.confirmed{color:#4b8d57;background:#e6f5e7}.status.running{color:#4b8399;background:#e6f2fa}.status.rejected{color:#aa7373;background:#faeeee}.notes-view{max-width:850px;margin:auto}.notes-view>textarea{background:#fff;min-height:330px;padding:22px;font-size:14px;line-height:1.8}.notes-view>p:last-child{margin-top:12px;font-size:10px}.measurement-notice{color:#749283;background:#edf5f0;border-radius:7px;align-items:center;gap:10px;margin-bottom:22px;padding:14px 18px;font-size:11px;display:flex}.metric-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.metric-grid>div{border:1px solid var(--line);background:#fff;border-radius:10px;padding:23px}.metric-grid span{color:#8e9c8d;font-size:11px}.metric-grid strong{color:#304c37;margin:15px 0;font-size:36px;font-weight:500;display:block}.metric-grid strong small{color:#93a590;margin-left:9px;font-size:14px}.metric-grid .metric-source{font-size:9px}.chart-panel{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:23px;padding:22px}.chart-panel>div{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.chart-panel h3{margin:0;font-size:13px}.chart-panel svg{width:100%;height:auto}.measurement-foot{color:#8a9e88;align-items:center;gap:10px;margin:20px 0;display:flex}.measurement-foot p{max-width:750px;margin:0;font-size:10px}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:50;background:#1b352b42;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border:1px solid #e5ece4;border-radius:16px;width:520px;max-width:100%;max-height:90vh;padding:26px;overflow-y:auto;box-shadow:0 20px 90px #182b3228}.modal header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal header h2{margin:0}.modal label{margin:16px 0}.modal p{font-size:12px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:25px;display:flex}.kind-options{gap:10px;display:flex}.kind-options>button{flex-direction:column;flex:1;gap:2px;padding:5px;font-size:10px;display:flex}.kind-options img{object-fit:contain;mix-blend-mode:multiply;width:90px;height:90px}.kind-options>button.selected{background:#edf8f2;border-color:#80be9f}.library-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.library-grid button{flex-direction:column;gap:8px;min-height:150px;padding:8px;display:flex}.library-grid .part-img{width:100px;height:100px}.library-grid b{font-size:10px;font-weight:500}.library-grid span{color:#87a18e;align-items:center;gap:3px;font-size:9px;display:flex}.member-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;font-size:11px;display:flex}.member-row>span:nth-child(2){flex:1}.member-row b{flex:1;font-size:11px;font-weight:500}.member-row small{color:#8d9e8e;margin-top:3px;font-size:9px;display:block}.invite-form{border-top:1px solid var(--line);margin-top:22px}.invite-form .primary{margin-top:5px}.history-row{border-bottom:1px solid var(--line);align-items:center;gap:15px;padding:15px 0;font-size:11px;display:flex}.history-row>div{flex:1}.history-row small{color:#99a893;margin-top:5px;font-size:9px;display:block}.device-placeholder{text-align:center;color:#82a28d;padding:20px}.device-placeholder h3{color:#34563f;margin:20px 0 10px}.device-flow{color:#416b4c;justify-content:center;align-items:center;gap:15px;margin:26px 0;font-size:13px;display:flex}.device-flow span{color:#acbeaa}.empty{text-align:center;color:#8aa08c;padding:70px 20px}.empty h3{margin:20px 0 10px}.empty-small{text-align:center;color:#97a995;padding:60px 0}.empty-small p{margin-top:15px;font-size:11px}.toast{z-index:100;color:#fff;background:#254d3a;border-radius:9px;align-items:center;gap:12px;padding:13px 22px;font-size:12px;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 7px 30px #23483322}.message{border-radius:7px;justify-content:space-between;align-items:center;margin:16px 25px;padding:12px 15px;font-size:12px;display:flex}.error{color:#b25353;background:#fff0ef;border:1px solid #f3d4cf}.help-steps b{color:#365d40;font-weight:600}.loading{align-content:center;justify-items:center;gap:20px;height:100vh;display:grid}.loading p{font-size:12px}.login{background:#fff;grid-template-columns:1.2fr 1fr;min-height:100vh;display:grid}.login-art{background:#f5f9f5;flex-direction:column;justify-content:center;padding:50px;display:flex}.login-art img{object-fit:contain;mix-blend-mode:multiply;width:100%;max-height:430px}.login-art h1{margin-top:15px;font-size:38px}.login form{width:100%;max-width:400px;margin:auto;padding:35px}.login .brand{margin-bottom:50px}.login label{margin:20px 0}.login .primary{width:100%;margin-top:10px}@media (width>=1500px){.project-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bench-layout{grid-template-columns:180px minmax(400px,1fr) 260px}.bench{min-height:650px}.canvas-part{width:140px}.canvas-part .part-img{width:135px;height:125px}.canvas-part.kind-harness{width:220px}.canvas-part.kind-harness .part-img{width:210px;height:185px}}@media (width<=1200px){.rail{width:180px;padding-left:12px;padding-right:12px}.workspace{margin-left:180px}.projects-page{padding:35px 27px}.project-grid{gap:15px}.card-visual{height:200px;padding:20px}.project-page{padding:20px 16px 0}.bench-layout{grid-template-columns:135px minmax(260px,1fr) 200px}.inspector{padding:12px}.project-tabs{gap:15px}.device-state{font-size:8px}.strip-stat{padding:0 12px}.project-actions button span{display:none}.canvas-part{width:90px}.canvas-part .part-img{width:90px;height:80px}.canvas-part.kind-harness{width:140px}.canvas-part.kind-harness .part-img{width:135px;height:120px}}@media (width<=980px){.rail{width:72px;padding:25px 9px}.rail .brand{justify-content:center;margin:4px 0 35px;font-size:25px}.rail-nav>button{justify-content:center;padding:14px}.rail-nav>button>span,.rail-bottom{display:none}.workspace{margin-left:72px}.topbar{height:65px;padding:0 23px}.page-heading h1{font-size:30px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-strip{padding:18px}.strip-stat:last-child{display:none}.bench-layout{grid-template-columns:115px minmax(230px,1fr) 190px}.object-panel{padding:10px 5px}.object-row{padding:9px 4px;font-size:9px}.object-row svg{width:12px}.object-bottom{display:none}.project-tabs{gap:13px}.project-tabs>button{font-size:10px}.device-state,.canvas-meta .badge{display:none}.canvas-note{font-size:7px}.project-actions{gap:2px}.project-actions .primary{font-size:10px}.project-heading p{max-width:300px}.welcome-strip span{font-size:10px}.inspector-img{height:110px}}@media (width<=700px){.rail{width:56px;padding:20px 5px}.rail .brand{font-size:20px}.rail-nav>button{padding:13px 8px}.workspace{margin-left:56px}.topbar{height:55px;padding:0 15px}.breadcrumb{gap:8px;font-size:9px}.breadcrumb>span:first-child{display:none}.top-actions{gap:5px}.version{display:none}.projects-page{padding:28px 18px}.page-heading{flex-direction:column;align-items:flex-start;gap:17px}.page-heading h1{font-size:29px}.page-heading p{font-size:11px}.welcome-strip{gap:10px;margin:24px 0;padding:15px}.welcome-strip b{font-size:11px}.welcome-strip span{font-size:9px;line-height:1.6}.welcome-icon,.strip-stat{display:none}.list-controls{flex-direction:column;align-items:flex-start;gap:12px}.search{width:100%}.segmented{gap:15px}.project-grid{grid-template-columns:1fr;gap:18px}.card-visual{height:215px}.new-project-card{min-height:150px}.bottom-note{align-items:flex-start;font-size:9px;line-height:1.6}.bottom-note svg{flex-shrink:0}.project-page{padding:15px 10px 0}.project-heading{flex-direction:column;align-items:flex-start;gap:13px}.project-heading h1{font-size:22px}.project-actions{justify-content:flex-end;width:100%}.project-actions>button:first-child{margin-right:auto}.project-tabs{white-space:nowrap;gap:15px;overflow-x:auto}.project-tabs>button{gap:4px;font-size:9px}.project-tabs>button svg{width:14px}.bench-layout{flex-direction:column;display:flex}.object-panel{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;gap:5px;padding:8px;display:flex;overflow:auto}.object-panel>.panel-heading{display:none}.object-row{flex-shrink:0;max-width:125px}.object-row small{display:none}.bench{min-height:420px}.canvas-viewport{min-height:320px}.canvas{min-height:290px}.canvas-meta{font-size:8px;top:12px}.canvas-part{width:70px;padding:2px}.canvas-part .part-img{width:70px;height:60px}.canvas-part.kind-harness{width:110px}.canvas-part.kind-harness .part-img{width:105px;height:95px}.part-label{max-width:90px;padding:3px;font-size:7px}.canvas-part .part-drawing{margin:-5px;transform:scale(.65)}.canvas-toolbar{padding:3px 5px;bottom:35px}.canvas-toolbar .icon-btn{padding:5px}.canvas-note{bottom:12px}.inspector{border-left:0;border-top:1px solid var(--line);max-height:none;padding:17px}.inspector-img{height:125px}.pin-editor input:not([type=color]){font-size:12px}.inspector label{font-size:11px}.inspector input,.inspector textarea{font-size:12px}.bench-footer{flex-direction:column;align-items:flex-start;font-size:8px}.section-heading{flex-direction:column;align-items:flex-start}.section-heading h2{font-size:19px}.experiment-row{flex-wrap:wrap;gap:10px;padding:15px 12px}.experiment-row h3{font-size:12px}.exp-icon{width:32px;height:32px}.experiment-row>div{min-width:150px}.experiment-row>svg{display:none}.metric-grid{grid-template-columns:1fr}.metric-grid>div{justify-content:space-between;align-items:center;padding:18px;display:flex}.metric-grid strong{margin:0;font-size:25px}.metric-source{display:none}.chart-panel{padding:12px}.chart-panel h3{font-size:10px}.measurement-notice{padding:12px;font-size:10px;line-height:1.7}.measurement-notice svg{flex-shrink:0}.modal-backdrop{padding:12px}.modal{max-height:94vh;padding:22px}.modal h2{font-size:19px}.kind-options img{width:65px;height:65px}.kind-options>button{font-size:9px}.library-grid{grid-template-columns:repeat(2,1fr)}.login{display:block}.login-art{display:none}.login form{margin:40px auto;padding:35px 25px}.message{margin:10px;font-size:11px}.toast{min-width:230px;max-width:90vw;font-size:11px}.member-row{font-size:10px}.device-flow{gap:8px;font-size:11px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.read-only-notice{color:#718575;padding:10px 0;font-size:11px}.message.error{z-index:80;position:fixed;top:66px;left:230px;right:25px;box-shadow:0 7px 25px #632c2810}@media (width<=980px){.message.error{left:75px}}@media (width<=700px){.message.error{top:54px;left:58px;right:10px}}.project-tabs>button.device-state{white-space:nowrap;border-bottom:0;margin-left:auto;padding-left:8px;font-size:9px}.project-tabs>button.device-state.is-online{color:#168771}.devices-intro{align-items:center;gap:16px;margin-bottom:24px;display:flex}.device-mark{color:#388674;background:#eff7f3;border-radius:14px;flex-shrink:0;place-items:center;width:58px;height:58px;display:grid}.devices-intro h3{margin:0 0 6px;font-size:15px}.devices-intro p{margin:0;line-height:1.6}.device-register,.device-setup{background:#f8fbf9;border:1px solid #ddebe3;border-radius:10px;margin:20px 0 26px;padding:20px}.device-register h3,.device-setup h3{margin:8px 0 0;font-size:16px}.device-register label{margin:15px 0 12px}.device-register .primary{font-size:11px}.device-setup>p{margin-bottom:15px;line-height:1.7}.device-setup .device-secret{resize:vertical;overflow-wrap:anywhere;word-break:break-all;white-space:pre-wrap;background:#fff;min-height:155px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1.7}.device-setup .device-secret-note{color:#7e7454;margin-top:8px;font-size:10px}.device-setup-actions{flex-wrap:wrap;gap:8px;margin:17px 0 13px;display:flex}.device-setup-actions button{padding:9px 11px;font-size:10px}.device-setup>small{color:#89988d;font-size:9px;line-height:1.6;display:block}.device-permission{border:1px solid var(--line);background:#fafcfb;border-radius:8px;padding:14px 16px;line-height:1.7}.device-list-heading{justify-content:space-between;align-items:center;margin:24px 0 13px;display:flex}.device-list-heading h3{margin:0;font-size:14px}.device-list{gap:12px;display:grid}.device-card{border:1px solid var(--line);border-radius:10px;padding:18px}.device-card.revoked{background:#fafbfa}.device-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.device-card-name{align-items:center;gap:10px;min-width:0;display:flex}.device-card-name>svg{color:#5b8a72;flex-shrink:0}.device-card-name>div{min-width:0}.device-card h4{overflow-wrap:anywhere;margin:0 0 4px;font-size:12px;font-weight:600}.device-card-name small{color:#879b8e;overflow-wrap:anywhere;font-size:9px}.device-status{color:#819086;flex-shrink:0;align-items:center;gap:5px;font-size:9px;line-height:1.5;display:inline-flex}.device-status i{background:#b6c1b9;border-radius:50%;flex-shrink:0;width:5px;height:5px}.device-status.online{color:#15846b}.device-status.online i{background:#1caa87;box-shadow:0 0 0 3px #e7f7ef}.device-card .device-last-seen{color:#89998c;margin:17px 0;font-size:10px}.device-last-seen b{color:#5b7264;font-weight:400}.device-metrics{border-top:1px solid #edf2ee;border-bottom:1px solid #edf2ee;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 0;display:grid}.device-metrics span{color:#93a095;font-size:9px;line-height:1.6;display:block}.device-metrics b{color:#355d47;margin-top:5px;font-size:13px;font-weight:500;display:block}.device-card .device-measurement-note{color:#8b9b8f;margin:13px 0;font-size:10px;line-height:1.65}.device-card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.device-card-footer small{color:#9aa89c;font-size:8px;line-height:1.6}.device-card-footer .text-btn{white-space:normal;padding:5px 0;font-size:9px}.device-empty{text-align:center;color:#879d8e;background:#fafcfb;border:1px dashed #dce8e0;border-radius:10px;margin:20px 0;padding:30px 20px}.device-empty svg{color:#8faa98}.device-empty h3{color:#486651;margin:14px 0 7px;font-size:15px}.device-empty p{margin-bottom:0;line-height:1.7}.device-empty a{color:#168771}.device-empty.compact{margin:0;padding:23px 15px}.device-empty.compact p{margin:10px 0 0;font-size:11px}.modal .device-poll-note{color:#97a398;margin:16px 0 0;font-size:9px;line-height:1.7}.device-error{color:#a56554;background:#fff8f6;border:1px solid #efd9d2;border-radius:7px;margin:14px 0;padding:12px 14px;font-size:11px;line-height:1.6}.device-error button{margin-top:8px;padding:5px 9px;font-size:10px;display:block}.device-revoke-confirm{border-top:1px solid #ecdcd5;margin-top:14px;padding-top:6px}.device-revoke-confirm p{color:#9b7266;font-size:11px;line-height:1.7}.device-revoke-confirm>div{justify-content:flex-end;gap:8px;display:flex}.device-revoke-confirm button{font-size:10px}.measurement-notice>span{flex:1}.measurement-notice>button{flex-shrink:0;padding:7px 10px;font-size:10px}@media (width<=980px){.project-tabs>button.device-state{display:none}}@media (width<=700px){.devices-intro{gap:12px}.device-mark{width:48px;height:48px}.devices-intro h3{font-size:14px}.devices-intro p{font-size:11px}.device-register,.device-setup{padding:16px}.device-card{padding:15px}.device-card-top{flex-direction:column;gap:9px}.device-status{margin-left:30px}.device-metrics{gap:8px}.device-metrics span{font-size:8px}.device-metrics b{font-size:11px}.device-card-footer{flex-direction:column;align-items:flex-start}.device-setup-actions{flex-direction:column}.device-setup-actions button{width:100%}.device-revoke-confirm>div,.measurement-notice{flex-wrap:wrap}.measurement-notice>span{min-width:150px}}
