/* Theme tokens — generated: every color literal below lives here twice.
   Night is the studio's native palette and the default; day is the same
   page in daylight, driven by data-theme on <html> (shared key with the
   landing site). Regenerate with scripts in the session scratchpad, or
   hand-tune individual day values — they are plain CSS. */
:root {
  color-scheme: dark;
  --d07101d: #07101d;
  --d0c1727: #0c1727;
  --d111f33: #111f33;
  --d23364f: #23364f;
  --d17283d: #17283d;
  --dedf4f7: #edf4f7;
  --d8fa2b5: #8fa2b5;
  --d52d2df: #52d2df;
  --d143d4a: #143d4a;
  --d7ee0b8: #7ee0b8;
  --defc178: #efc178;
  --df48c8c: #f48c8c;
  --drgba-0-0-0-0-28: rgba(0, 0, 0, 0.28);
  --drgba-82-210-223-14: rgba(82,210,223,.14);
  --d050b14: #050b14;
  --dcbd9e3: #cbd9e3;
  --da5b8c8: #a5b8c8;
  --d6f8598: #6f8598;
  --drgba-14-28-45-74: rgba(14,28,45,.74);
  --d9eb1c1: #9eb1c1;
  --d35677a: #35677a;
  --drgba-17-39-57-72: rgba(17,39,57,.72);
  --drgba-8-20-33-82: rgba(8,20,33,.82);
  --d06111d: #06111d;
  --drgba-12-24-40-86: rgba(12,24,40,.86);
  --dbfd0db: #bfd0db;
  --d172a3d: #172a3d;
  --drgba-126-224-184-35: rgba(126,224,184,.35);
  --drgba-23-68-57-32: rgba(23,68,57,.32);
  --da9c0b9: #a9c0b9;
  --d70879a: #70879a;
  --d91a8ba: #91a8ba;
  --defb075: #efb075;
  --drgba-82-210-223-0-12: rgba(82, 210, 223, 0.12);
  --drgba-143-162-181-0-17: rgba(143, 162, 181, 0.17);
  --drgba-7-16-29-0-9: rgba(7, 16, 29, 0.9);
  --d9fb1c0: #9fb1c0;
  --drgba-255-255-255-0-05: rgba(255, 255, 255, 0.05);
  --dfff: #fff;
  --drgba-10-23-39-0-78: rgba(10, 23, 39, 0.78);
  --d64798c: #64798c;
  --d35506a: #35506a;
  --drgba-82-210-223-0-08: rgba(82, 210, 223, 0.08);
  --d4cb793: #4cb793;
  --drgba-16-32-52-0-96: rgba(16, 32, 52, 0.96);
  --drgba-8-19-32-0-98: rgba(8, 19, 32, 0.98);
  --drgba-0-0-0-0-2: rgba(0, 0, 0, 0.2);
  --d3b7183: #3b7183;
  --drgba-10-28-45-0-72: rgba(10, 28, 45, 0.72);
  --drgba-16-49-65-0-72: rgba(16, 49, 65, 0.72);
  --da9bac7: #a9bac7;
  --d688196: #688196;
  --drgba-5-14-24-0-5: rgba(5, 14, 24, 0.5);
  --d15263a: #15263a;
  --d32bacd: #32bacd;
  --d79e1b9: #79e1b9;
  --d7f94a7: #7f94a7;
  --drgba-7-18-31-0-62: rgba(7, 18, 31, 0.62);
  --d263d52: #263d52;
  --d17283a: #17283a;
  --d63788a: #63788a;
  --drgba-82-210-223-0-35: rgba(82, 210, 223, 0.35);
  --drgba-126-224-184-0-25: rgba(126, 224, 184, 0.25);
  --drgba-82-210-223-0-18: rgba(82, 210, 223, 0.18);
  --d91a7b9: #91a7b9;
  --d6f8797: #6f8797;
  --drgba-7-18-31-0-64: rgba(7, 18, 31, 0.64);
  --d8fa3b5: #8fa3b5;
  --d8196a8: #8196a8;
  --drgba-82-210-223-0-36: rgba(82, 210, 223, 0.36);
  --drgba-19-61-74-0-7: rgba(19, 61, 74, 0.7);
  --drgba-11-26-41-0-86: rgba(11, 26, 41, 0.86);
  --da9bdcc: #a9bdcc;
  --d74899b: #74899b;
  --drgba-12-24-40-0-86: rgba(12, 24, 40, 0.86);
  --d8ba0b2: #8ba0b2;
  --d6d8296: #6d8296;
  --drgba-10-21-35-0-7: rgba(10, 21, 35, 0.7);
  --d37506a: #37506a;
  --db9cad6: #b9cad6;
  --drgba-82-210-223-0-14: rgba(82, 210, 223, 0.14);
  --d2c435c: #2c435c;
  --d566b7d: #566b7d;
  --drgba-10-21-35-0-8: rgba(10, 21, 35, 0.8);
  --drgba-244-140-140-0-4: rgba(244, 140, 140, 0.4);
  --drgba-7-16-29-0-96: rgba(7, 16, 29, 0.96);
  --d2b425c: #2b425c;
  --drgba-255-255-255-0-06: rgba(255, 255, 255, 0.06);
  --drgba-126-224-184-0-14: rgba(126, 224, 184, 0.14);
  --drgba-239-193-120-0-14: rgba(239, 193, 120, 0.14);
  --drgba-239-193-120-0-12: rgba(239, 193, 120, 0.12);
  --d0d1a2a: #0d1a2a;
  --d16324a: #16324a;
  --d223649: #223649;
  --drgba-10-20-33-6: rgba(10, 20, 33, .6);
  --ddce7ef: #dce7ef;
  --de8b070: #e8b070;
  --drgba-232-176-112-5: rgba(232, 176, 112, .5);
  --d6fd8a8: #6fd8a8;
  --drgba-111-216-168-5: rgba(111, 216, 168, .5);
  --d9db4ff: #9db4ff;
  --drgba-157-180-255-5: rgba(157, 180, 255, .5);
  --d93a5b6: #93a5b6;
  --drgba-147-165-182-45: rgba(147, 165, 182, .45);
  --drgba-8-18-30-0-9: rgba(8, 18, 30, 0.9);
  --d13344a: #13344a;
  --df0a861: #f0a861;
  --dc8d5df: #c8d5df;
  --drgba-12-23-39-0-9: rgba(12, 23, 39, 0.9);
  --dafbecc: #afbecc;
  --d73869a: #73869a;
  --dd6dce1: #d6dce1;
  --d17202a: #17202a;
  --df5f7f8: #f5f7f8;
  --d718497: #718497;
  --d07111e: #07111e;
  --d06131d: #06131d;
  --d183f39: #183f39;
  --d2a6559: #2a6559;
  --d081321: #081321;
  --d28515c: #28515c;
  --d102c37: #102c37;
  --d93e5e9: #93e5e9;
  --d879caf: #879caf;
  --d64778a: #64778a;
  --d0a1524: #0a1524;
  --d64788d: #64788d;
  --d4c6074: #4c6074;
  --d65788c: #65788c;
  --da9b9c8: #a9b9c8;
  --d0f1c2e: #0f1c2e;
  --d2b5261: #2b5261;
  --d102632: #102632;
  --d142338: #142338;
  --d465a6e: #465a6e;
  --d050a10: #050a10;
  --d03070c: #03070c;
  --d10253a: #10253a;
  --d0b1b2a: #0b1b2a;
  --drgba-0-0-0-0-86: rgba(0, 0, 0, 0.86);
  --dff8d91: #ff8d91;
  --dffb0b3: #ffb0b3;
  --d7d2831: #7d2831;
  --db94d58: #b94d58;
  --d91313b: #91313b;
  --drgba-154-47-58-1: rgba(154, 47, 58, .1);
  --drgba-220-89-101-35: rgba(220, 89, 101, .35);
  --drgba-220-89-101-38: rgba(220, 89, 101, .38);
  --dff9ca1: #ff9ca1;
  --drgba-52-211-235-09: rgba(52,211,235,.09);
  --drgba-52-211-235-025: rgba(52,211,235,.025);
  --d285263: #285263;
  --db8c6d2: #b8c6d2;
  --d6f8497: #6f8497;
  --d3a2c1c: #3a2c1c;
  --d183d36: #183d36;
  --drgba-35-195-207-0-1: rgba(35, 195, 207, 0.1);
  --dc7d6e2: #c7d6e2;
  --db7c5d1: #b7c5d1;
  --d8295a8: #8295a8;
  --d6b7e92: #6b7e92;
  --d708397: #708397;
  --drgba-2-7-13-0-8: rgba(2, 7, 13, 0.8);
  --d091522: #091522;
  --db9c8d3: #b9c8d3;
  --d73879a: #73879a;
  --drgba-0-0-0-0-92: rgba(0, 0, 0, 0.92);
  --d2a5961: #2a5961;
  --d0f2b35: #0f2b35;
  --db9f0ee: #b9f0ee;
  --d2b6570: #2b6570;
  --d102e3c: #102e3c;
  --d8de7ed: #8de7ed;
  --d5b4530: #5b4530;
  --d2c2117: #2c2117;
  --d142439: #142439;
  --drgba-82-210-223-0-1: rgba(82, 210, 223, 0.1);
  --d0f2732: #0f2732;
  --d2d6572: #2d6572;
  --d60758a: #60758a;
  --drgba-52-211-235-035: rgba(52, 211, 235, .035);
  --d173a34: #173a34;
  --d33281a: #33281a;
  --df2b27f: #f2b27f;
  --da9c0d0: #a9c0d0;
  --d0a1422: #0a1422;
  --d103747: #103747;
  --db7c7d4: #b7c7d4;
  --d173d36: #173d36;
  --d342818: #342818;
  --d171710: #171710;
  --d9ca7ad: #9ca7ad;
  --d211a12: #211a12;
  --da9a49b: #a9a49b;
  --drgba-126-224-184-34: rgba(126, 224, 184, .34);
  --drgba-23-68-57-28: rgba(23, 68, 57, .28);
  --d1c2c3c: #1c2c3c;
  --drgba-10-20-33-4: rgba(10, 20, 33, .4);
  --d4a2b33: #4a2b33;
  --drgba-74-25-33-35: rgba(74, 25, 33, .35);
  --de8a0a8: #e8a0a8;
  --drgba-255-255-255-07: rgba(255, 255, 255, .07);
  --d7f96aa: #7f96aa;
  --drgba-10-20-33-5: rgba(10, 20, 33, .5);
  --d22364a: #22364a;
  --drgba-232-176-112-07: rgba(232, 176, 112, .07);
  --drgba-4-9-15-6: rgba(4, 9, 15, .6);
  --drgba-72-211-232-0-22: rgba(72, 211, 232, 0.22);
  --drgba-72-211-232-0-05: rgba(72, 211, 232, 0.05);
  --d9fb4c4: #9fb4c4;
  --d55697a: #55697a;
  --d5bd8ce: #5bd8ce;
  --drgba-255-255-255-0-04: rgba(255, 255, 255, 0.04);
  --drgba-91-216-206-0-07: rgba(91, 216, 206, 0.07);
  --drgba-91-216-206-0-18: rgba(91, 216, 206, 0.18);
  --db9cdd9: #b9cdd9;
  --drgba-255-120-120-0-09: rgba(255, 120, 120, 0.09);
  --dff9d9d: #ff9d9d;
  --drgba-10-20-33-0-4: rgba(10, 20, 33, 0.4);
  --d93a7b6: #93a7b6;
  --drgba-0-0-0-0-55: rgba(0, 0, 0, 0.55);
  --dffcf9a: #ffcf9a;
  --d7fd6a8: #7fd6a8;
  --drgba-2-8-14-0-72: rgba(2, 8, 14, 0.72);
  --drgba-4-9-15-72: rgba(4, 9, 15, .72);
  --drgba-56-44-21-18: rgba(56, 44, 21, .18);
  --drgba-239-193-120-45: rgba(239, 193, 120, .45);
  --drgba-56-44-21-4: rgba(56, 44, 21, .4);
  --drgba-56-44-21-32: rgba(56, 44, 21, .32);
  --drgba-255-255-255-08: rgba(255,255,255,.08);
  --drgba-255-255-255-04: rgba(255,255,255,.04);
  --drgba-255-255-255-14: rgba(255,255,255,.14);
  --drgba-255-255-255-5: rgba(255,255,255,.5);
  --drgba-255-255-255-45: rgba(255,255,255,.45);
}
:root[data-theme="light"] {
  color-scheme: light;
  --d07101d: #f4f4f3;
  --d0c1727: #eeedec;
  --d111f33: #e6e5e3;
  --d23364f: #d1cfca;
  --d17283d: #dfddda;
  --dedf4f7: #181b20;
  --d8fa2b5: #635f57;
  --d52d2df: #0b7c8f;
  --d143d4a: #b5deeb;
  --d7ee0b8: #1f8159;
  --defc178: #875910;
  --df48c8c: #730b0b;
  --drgba-0-0-0-0-28: rgba(0, 0, 0, 0.28);
  --drgba-82-210-223-14: rgba(32, 160, 173, 0.14);
  --d050b14: #f7f6f6;
  --dcbd9e3: #23262d;
  --da5b8c8: #404651;
  --d6f8598: #837e74;
  --drgba-14-28-45-74: rgba(234, 234, 232, 0.74);
  --d9eb1c1: #474d58;
  --d35677a: #ada9a2;
  --drgba-17-39-57-72: rgba(227, 226, 224, 0.72);
  --drgba-8-20-33-82: rgba(243, 242, 241, 0.82);
  --d06111d: #f4f4f3;
  --drgba-12-24-40-86: rgba(238, 237, 236, 0.86);
  --dbfd0db: #2c3038;
  --d172a3d: #dfddda;
  --drgba-126-224-184-35: rgba(31, 129, 89, 0.35);
  --drgba-23-68-57-32: rgba(187, 232, 221, 0.32);
  --da9c0b9: #454950;
  --d70879a: #817c73;
  --d91a8ba: #4f5664;
  --defb075: #8a4b10;
  --drgba-82-210-223-0-12: rgba(32, 160, 173, 0.12);
  --drgba-143-162-181-0-17: rgba(99, 95, 87, 0.17);
  --drgba-7-16-29-0-9: rgba(244, 244, 243, 0.9);
  --d9fb1c0: #474d58;
  --drgba-255-255-255-0-05: rgba(31, 31, 31, 0.05);
  --dfff: #1f1f1f;
  --drgba-10-23-39-0-78: rgba(239, 238, 237, 0.78);
  --d64798c: #8e8980;
  --d35506a: #bdb9b1;
  --drgba-82-210-223-0-08: rgba(32, 160, 173, 0.08);
  --d4cb793: #48b38f;
  --drgba-16-32-52-0-96: rgba(230, 229, 227, 0.96);
  --drgba-8-19-32-0-98: rgba(243, 243, 242, 0.98);
  --drgba-0-0-0-0-2: rgba(0, 0, 0, 0.2);
  --d3b7183: #7cb2c4;
  --drgba-10-28-45-0-72: rgba(236, 236, 234, 0.72);
  --drgba-16-49-65-0-72: rgba(224, 223, 220, 0.72);
  --da9bac7: #40444e;
  --d688196: #888378;
  --drgba-5-14-24-0-5: rgba(246, 245, 245, 0.5);
  --d15263a: #e1e0dd;
  --d32bacd: #32bacd;
  --d79e1b9: #1e865e;
  --d7f94a7: #726e66;
  --drgba-7-18-31-0-62: rgba(244, 243, 242, 0.62);
  --d263d52: #ceccc7;
  --d17283a: #e0dfdc;
  --d63788a: #908b81;
  --drgba-82-210-223-0-35: rgba(32, 160, 173, 0.35);
  --drgba-126-224-184-0-25: rgba(31, 129, 89, 0.25);
  --drgba-82-210-223-0-18: rgba(32, 160, 173, 0.18);
  --d91a7b9: #505764;
  --d6f8797: #837e75;
  --drgba-7-18-31-0-64: rgba(244, 243, 242, 0.64);
  --d8fa3b5: #635f57;
  --d8196a8: #716d64;
  --drgba-82-210-223-0-36: rgba(32, 160, 173, 0.36);
  --drgba-19-61-74-0-7: rgba(181, 223, 236, 0.7);
  --drgba-11-26-41-0-86: rgba(238, 237, 236, 0.86);
  --da9bdcc: #3c424d;
  --d74899b: #7f7a70;
  --drgba-12-24-40-0-86: rgba(238, 237, 236, 0.86);
  --d8ba0b2: #66625b;
  --d6d8296: #858076;
  --drgba-10-21-35-0-7: rgba(241, 240, 239, 0.7);
  --d37506a: #bcb8b0;
  --db9cad6: #31353e;
  --drgba-82-210-223-0-14: rgba(32, 160, 173, 0.14);
  --d2c435c: #c7c4be;
  --d566b7d: #9c988f;
  --drgba-10-21-35-0-8: rgba(241, 240, 239, 0.8);
  --drgba-244-140-140-0-4: rgba(115, 11, 11, 0.4);
  --drgba-7-16-29-0-96: rgba(244, 244, 243, 0.96);
  --d2b425c: #c8c5bf;
  --drgba-255-255-255-0-06: rgba(31, 31, 31, 0.06);
  --drgba-126-224-184-0-14: rgba(31, 129, 89, 0.14);
  --drgba-239-193-120-0-14: rgba(135, 89, 16, 0.14);
  --drgba-239-193-120-0-12: rgba(135, 89, 16, 0.12);
  --d0d1a2a: #ececea;
  --d16324a: #d9d8d4;
  --d223649: #d4d2ce;
  --drgba-10-20-33-6: rgba(242, 241, 240, 0.6);
  --ddce7ef: #16181d;
  --de8b070: #8f5717;
  --drgba-232-176-112-5: rgba(143, 87, 23, 0.5);
  --d6fd8a8: #279060;
  --drgba-111-216-168-5: rgba(39, 144, 96, 0.5);
  --d9db4ff: #2b2f37;
  --drgba-157-180-255-5: rgba(43, 47, 55, 0.5);
  --d93a5b6: #525863;
  --drgba-147-165-182-45: rgba(82, 88, 99, 0.45);
  --drgba-8-18-30-0-9: rgba(244, 243, 242, 0.9);
  --d13344a: #dbd9d6;
  --df0a861: #9e560f;
  --dc8d5df: #262a31;
  --drgba-12-23-39-0-9: rgba(238, 237, 236, 0.9);
  --dafbecc: #3a3f49;
  --d73869a: #807b71;
  --dd6dce1: #212326;
  --d17202a: #e8e7e5;
  --df5f7f8: #1a1c1f;
  --d718497: #827d74;
  --d07111e: #f4f3f3;
  --d06131d: #f4f4f3;
  --d183f39: #c0e7e1;
  --d2a6559: #9ad5c9;
  --d081321: #f3f2f1;
  --d28515c: #a3ccd7;
  --d102c37: #e5e4e1;
  --d93e5e9: #16686c;
  --d879caf: #6a665e;
  --d64778a: #8f8a81;
  --d0a1524: #f0f0ef;
  --d64788d: #8e897f;
  --d4c6074: #a5a199;
  --d65788c: #8e897f;
  --da9b9c8: #3f444e;
  --d0f1c2e: #e9e9e7;
  --d2b5261: #c6c2bc;
  --d102632: #e7e6e4;
  --d142338: #e2e1df;
  --d465a6e: #aaa7a0;
  --d050a10: #f8f7f7;
  --d03070c: #f9f9f8;
  --d10253a: #e3e2e0;
  --d0b1b2a: #edeceb;
  --drgba-0-0-0-0-86: rgba(0, 0, 0, 0.86);
  --dff8d91: #720004;
  --dffb0b3: #4f0003;
  --d7d2831: #d7828b;
  --db94d58: #b24651;
  --d91313b: #ce6e78;
  --drgba-154-47-58-1: rgba(208, 101, 112, 0.1);
  --drgba-220-89-101-35: rgba(166, 35, 47, 0.35);
  --drgba-220-89-101-38: rgba(166, 35, 47, 0.38);
  --dff9ca1: #630005;
  --drgba-52-211-235-09: rgba(20, 179, 203, 0.09);
  --drgba-52-211-235-025: rgba(20, 179, 203, 0.025);
  --d285263: #c6c3bc;
  --db8c6d2: #343841;
  --d6f8497: #837e75;
  --d3a2c1c: #e3d5c5;
  --d183d36: #c2e7e0;
  --drgba-35-195-207-0-1: rgba(48, 208, 220, 0.1);
  --dc7d6e2: #252930;
  --db7c5d1: #353942;
  --d8295a8: #706c64;
  --d6b7e92: #888379;
  --d708397: #837e74;
  --drgba-2-7-13-0-8: rgba(249, 249, 248, 0.8);
  --d091522: #f2f1f0;
  --db9c8d3: #333740;
  --d73879a: #807b71;
  --drgba-0-0-0-0-92: rgba(0, 0, 0, 0.92);
  --d2a5961: #9ecdd5;
  --d0f2b35: #cae6f0;
  --db9f0ee: #0f4644;
  --d2b6570: #8fc9d4;
  --d102e3c: #e2e1df;
  --d8de7ed: #126c72;
  --d5b4530: #cfb9a4;
  --d2c2117: #e8ddd3;
  --d142439: #e2e1de;
  --drgba-82-210-223-0-1: rgba(32, 160, 173, 0.1);
  --d0f2732: #e8e7e5;
  --d2d6572: #8dc5d2;
  --d60758a: #918c83;
  --drgba-52-211-235-035: rgba(20, 179, 203, 0.035);
  --d173a34: #c5e8e2;
  --d33281a: #e5dacc;
  --df2b27f: #80400d;
  --da9c0d0: #3a404b;
  --d0a1422: #f1f1f0;
  --d103747: #dddcd9;
  --db7c7d4: #323741;
  --d173d36: #c2e8e1;
  --d342818: #e7dbcb;
  --d171710: #f3f3f2;
  --d9ca7ad: #56595f;
  --d211a12: #ede6de;
  --da9a49b: #635f57;
  --drgba-126-224-184-34: rgba(31, 129, 89, 0.34);
  --drgba-23-68-57-28: rgba(187, 232, 221, 0.28);
  --d1c2c3c: #dddbd8;
  --drgba-10-20-33-4: rgba(242, 241, 240, 0.4);
  --d4a2b33: #d4b5bd;
  --drgba-74-25-33-35: rgba(230, 181, 189, 0.35);
  --de8a0a8: #5f171f;
  --drgba-255-255-255-07: rgba(31, 31, 31, 0.07);
  --d7f96aa: #716d64;
  --drgba-10-20-33-5: rgba(242, 241, 240, 0.5);
  --d22364a: #d4d2cd;
  --drgba-232-176-112-07: rgba(143, 87, 23, 0.07);
  --drgba-4-9-15-6: rgba(248, 248, 247, 0.6);
  --drgba-72-211-232-0-22: rgba(23, 162, 183, 0.22);
  --drgba-72-211-232-0-05: rgba(23, 162, 183, 0.05);
  --d9fb4c4: #444a57;
  --d55697a: #9e9a91;
  --d5bd8ce: #27a49a;
  --drgba-255-255-255-0-04: rgba(31, 31, 31, 0.04);
  --drgba-91-216-206-0-07: rgba(39, 164, 154, 0.07);
  --drgba-91-216-206-0-18: rgba(39, 164, 154, 0.18);
  --db9cdd9: #2f343d;
  --drgba-255-120-120-0-09: rgba(135, 0, 0, 0.09);
  --dff9d9d: #620000;
  --drgba-10-20-33-0-4: rgba(242, 241, 240, 0.4);
  --d93a7b6: #525863;
  --drgba-0-0-0-0-55: rgba(0, 0, 0, 0.55);
  --dffcf9a: #653500;
  --d7fd6a8: #298052;
  --drgba-2-8-14-0-72: rgba(249, 249, 248, 0.72);
  --drgba-4-9-15-72: rgba(248, 248, 247, 0.72);
  --drgba-56-44-21-18: rgba(234, 222, 199, 0.18);
  --drgba-239-193-120-45: rgba(135, 89, 16, 0.45);
  --drgba-56-44-21-4: rgba(234, 222, 199, 0.4);
  --drgba-56-44-21-32: rgba(234, 222, 199, 0.32);
  --drgba-255-255-255-08: rgba(31, 31, 31, 0.08);
  --drgba-255-255-255-04: rgba(31, 31, 31, 0.04);
  --drgba-255-255-255-14: rgba(31, 31, 31, 0.14);
  --drgba-255-255-255-5: rgba(31, 31, 31, 0.5);
  --drgba-255-255-255-45: rgba(31, 31, 31, 0.45);
}

:root {
  color-scheme: dark;
  --bg: var(--d07101d);
  --panel: var(--d0c1727);
  --panel-2: var(--d111f33);
  --line: var(--d23364f);
  --line-soft: var(--d17283d);
  --text: var(--dedf4f7);
  --muted: var(--d8fa2b5);
  --cyan: var(--d52d2df);
  --cyan-soft: var(--d143d4a);
  --green: var(--d7ee0b8);
  --amber: var(--defc178);
  --red: var(--df48c8c);
  --shadow: 0 22px 70px var(--drgba-0-0-0-0-28);
  font-family: Inter, system-ui, sans-serif;
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  min-width: 320px;
}
.simple-intake{min-height:100vh;background:radial-gradient(circle at 72% 18%,var(--drgba-82-210-223-14),transparent 30%),linear-gradient(145deg,var(--d07101d),var(--d050b14) 68%)}
.simple-intake-landing,.simple-project{min-height:100vh;width:min(1180px,100%);margin:auto;padding:38px clamp(22px,6vw,82px)}
.simple-intake-brand,.simple-project-topbar{display:flex;align-items:center;gap:12px;color:var(--dcbd9e3);font-size:15px}.simple-intake-main{max-width:760px;padding:clamp(80px,14vh,150px) 0 72px}
.simple-intake-main h1,.simple-project-main h1{margin:10px 0 22px;font-size:clamp(46px,7.6vw,92px);line-height:.98;letter-spacing:-.055em}.simple-intake-copy{max-width:650px;margin:0;color:var(--da5b8c8);font-size:clamp(17px,2vw,21px);line-height:1.6}
.simple-intake-actions{display:flex;gap:12px;margin-top:38px}.simple-intake-primary,.simple-intake-secondary{min-width:190px;min-height:56px;justify-content:center;font-size:15px}.simple-team-link{min-height:44px;padding:11px 4px;border:0;background:transparent;color:var(--d6f8598);cursor:pointer}.simple-team-link:hover{color:var(--text)}
.simple-recent{margin-top:58px;padding-top:24px;border-top:1px solid var(--line-soft)}.simple-recent>p{margin:0 0 12px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.1em}#simple-recent-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#simple-recent-projects button{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid var(--line);border-radius:9px;background:var(--drgba-14-28-45-74);color:var(--text);cursor:pointer}#simple-recent-projects button span{color:var(--cyan)}
.simple-project-topbar{justify-content:space-between}.simple-back{padding:10px 0;border:0;background:transparent;color:var(--d9eb1c1);cursor:pointer}.simple-project-main{width:min(820px,100%);margin:auto;padding:clamp(70px,10vh,120px) 0 70px}.simple-project-main h1{max-width:820px;font-size:clamp(42px,6vw,72px);overflow-wrap:anywhere}.simple-project-state{margin:-10px 0 32px;color:var(--muted)}
.simple-add-evidence{display:grid;place-items:center;min-height:320px;padding:46px 24px;border:1.5px dashed var(--d35677a);border-radius:16px;background:linear-gradient(145deg,var(--drgba-17-39-57-72),var(--drgba-8-20-33-82));text-align:center;cursor:pointer;transition:160ms ease}.simple-add-evidence:hover{border-color:var(--cyan);transform:translateY(-2px)}.simple-add-evidence>span{display:grid;place-items:center;width:58px;height:58px;margin-bottom:22px;border-radius:50%;background:var(--cyan);color:var(--d06111d);font-size:32px}.simple-add-evidence strong{font-size:clamp(26px,4vw,38px)}.simple-add-evidence small{margin-top:12px;color:var(--muted);font-size:14px}
.simple-upload-list{display:grid;gap:10px}.simple-upload-list article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:17px 18px;border:1px solid var(--line-soft);border-radius:10px;background:var(--drgba-12-24-40-86)}.simple-upload-icon{color:var(--cyan);font-size:11px;text-align:center}.simple-upload-list article strong,.simple-upload-list article small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.simple-upload-list article small{margin-top:4px;color:var(--muted)}.simple-upload-list article b{color:var(--dbfd0db);font-size:12px}.simple-upload-list article div div{height:3px;margin-top:10px;overflow:hidden;background:var(--d172a3d)}.simple-upload-list article i{display:block;width:0;height:100%;background:var(--cyan);transition:width 180ms linear}
.simple-upload-complete{display:flex;align-items:center;gap:18px;margin-top:18px;padding:22px;border:1px solid var(--drgba-126-224-184-35);border-radius:10px;background:var(--drgba-23-68-57-32)}.simple-upload-complete>span{color:var(--green);font-size:28px}.simple-upload-complete strong{font-size:18px}.simple-upload-complete p{margin:5px 0 0;color:var(--da9c0b9)}.simple-add-more{width:100%;justify-content:center;min-height:50px;margin-top:12px}.simple-project-code{margin:24px 0 0;color:var(--d70879a);font-size:12px}.simple-project-code strong{color:var(--d91a8ba);letter-spacing:.08em}.simple-intake-landing.has-recent .simple-intake-main{padding-top:clamp(36px,6vh,72px);padding-bottom:46px}.simple-intake-landing.has-recent .simple-intake-main h1{margin-bottom:18px;font-size:clamp(34px,5.2vw,58px)}.simple-intake-landing.has-recent .simple-intake-copy{font-size:clamp(15px,1.6vw,18px)}.simple-intake-landing.has-recent .simple-intake-actions{margin-top:28px}.simple-intake-landing.has-recent .simple-recent{margin-top:32px}@media(max-width:640px){#simple-recent-projects{grid-template-columns:1fr}}.simple-dialog-note{margin:0 0 16px;color:var(--d8fa2b5);font-size:13px;line-height:1.55}.simple-inline-link{padding:0;border:0;background:transparent;color:var(--cyan);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}.simple-intake-actions{flex-wrap:wrap}.simple-intake-secondary{min-width:auto}#simple-team-sign-in.simple-intake-primary{min-width:210px}.simple-team-link{margin-top:22px;text-decoration:underline}.simple-dialog{width:min(520px,calc(100% - 32px))}.simple-dialog .form-message{min-height:20px;color:var(--defb075)}

/* Focus Studio is the signed-in product surface. The legacy workspace remains
   available to the application code, but is intentionally not part of the
   normal project path. */
.focus-studio {
  min-height: 100vh;
  background:
    radial-gradient(circle at 85% 5%, var(--drgba-82-210-223-0-12), transparent 25%),
    linear-gradient(160deg, var(--d07101d), var(--d050b14) 70%);
}
.focus-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 0 clamp(20px, 4vw, 56px);
  border-bottom: 1px solid var(--drgba-143-162-181-0-17);
  background: var(--drgba-7-16-29-0-9);
  backdrop-filter: blur(18px);
}
.focus-brand,
.focus-text-button {
  border: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  cursor: pointer;
}
.focus-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0;
}
.focus-top-actions { display: flex; align-items: center; gap: 8px; }
.focus-text-button {
  min-height: 40px;
  padding: 0 13px;
  border-radius: 8px;
  color: var(--d9fb1c0);
}
.focus-text-button:hover { background: var(--drgba-255-255-255-0-05); color: var(--dfff); }
.focus-main {
  width: min(920px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(48px, 8vw, 90px) 0 96px;
}
.focus-project-heading { max-width: 760px; }
.focus-project-heading h1 {
  margin: 8px 0 12px;
  font-size: clamp(42px, 7vw, 76px);
  line-height: 0.98;
  letter-spacing: -0.055em;
  overflow-wrap: anywhere;
}
.focus-project-heading > p:last-child {
  margin: 0;
  color: var(--d9fb1c0);
  font-size: 17px;
  line-height: 1.6;
}
.focus-roadmap {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 48px 0 24px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  list-style: none;
  background: var(--drgba-10-23-39-0-78);
}
.focus-roadmap li {
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-rows: auto auto;
  column-gap: 11px;
  padding: 18px 20px;
  border-right: 1px solid var(--line);
  color: var(--d64798c);
}
.focus-roadmap li:last-child { border-right: 0; }
.focus-roadmap li > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--d35506a);
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
}
.focus-roadmap strong { font-size: 14px; }
.focus-roadmap small { margin-top: 3px; font-size: 11px; }
.focus-roadmap li.active,
.focus-roadmap li.complete { color: var(--text); }
.focus-roadmap li.active { background: var(--drgba-82-210-223-0-08); }
.focus-roadmap li.active > span { border-color: var(--cyan); background: var(--cyan); color: var(--d06111d); }
.focus-roadmap li.complete > span { border-color: var(--d4cb793); color: var(--green); }
.focus-stage {
  padding: clamp(28px, 5vw, 52px);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, var(--drgba-16-32-52-0-96), var(--drgba-8-19-32-0-98));
  box-shadow: 0 28px 70px var(--drgba-0-0-0-0-2);
}
.focus-stage-copy { max-width: 680px; }
.focus-stage-copy h2 {
  margin: 7px 0 14px;
  font-size: clamp(32px, 5vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.045em;
}
.focus-stage-copy > p:last-child {
  margin: 0;
  color: var(--d9fb1c0);
  font-size: 16px;
  line-height: 1.65;
}
.focus-upload-card {
  display: grid;
  place-items: center;
  min-height: 270px;
  margin: 32px 0 18px;
  padding: 36px 22px;
  border: 1.5px dashed var(--d3b7183);
  border-radius: 16px;
  background: var(--drgba-10-28-45-0-72);
  text-align: center;
  cursor: pointer;
  transition: 160ms ease;
}
.focus-upload-card:hover,
.focus-upload-card.dragging { border-color: var(--cyan); background: var(--drgba-16-49-65-0-72); transform: translateY(-2px); }
.focus-upload-plus {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: var(--cyan);
  color: var(--d06111d);
  font-size: 31px;
  line-height: 1;
}
.focus-upload-card strong { font-size: clamp(24px, 4vw, 34px); }
.focus-upload-card small { margin-top: 8px; color: var(--da9bac7); font-style: normal; }
.focus-upload-card em { margin-top: 14px; color: var(--d688196); font-size: 10px; font-style: normal; letter-spacing: 0.1em; text-transform: uppercase; }
.focus-upload-progress {
  margin: 20px 0;
  padding: 18px;
  border: 1px solid var(--line-soft);
  border-radius: 11px;
  background: var(--drgba-5-14-24-0-5);
}
.focus-upload-progress > div { display: flex; justify-content: space-between; gap: 20px; }
.focus-upload-progress progress,
.focus-processing-stage progress {
  width: 100%;
  height: 7px;
  margin: 16px 0 9px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  background: var(--d15263a);
}
progress::-webkit-progress-bar { background: var(--d15263a); }
progress::-webkit-progress-value { background: linear-gradient(90deg, var(--d32bacd), var(--d79e1b9)); }
progress::-moz-progress-bar { background: linear-gradient(90deg, var(--d32bacd), var(--d79e1b9)); }
.focus-upload-progress small { color: var(--d7f94a7); }
.focus-ready-summary { display: grid; gap: 10px; margin: 18px 0; }
.focus-ready-summary article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: var(--drgba-7-18-31-0-62);
}
.focus-ready-summary article div { min-width: 0; }
.focus-ready-summary article strong,
.focus-ready-summary article small { display: block; }
.focus-ready-summary article small { margin-top: 4px; color: var(--d7f94a7); }
.focus-ready-summary article b { flex: 0 0 auto; color: var(--green); font-size: 12px; }
.focus-primary-action,
.focus-secondary-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 62px;
  margin-top: 20px;
  padding: 0 22px;
  border-radius: 10px;
  font: 700 15px Inter, sans-serif;
  cursor: pointer;
}
.focus-primary-action { border: 1px solid var(--cyan); background: var(--cyan); color: var(--d06111d); }
.focus-primary-action:disabled { border-color: var(--d263d52); background: var(--d17283a); color: var(--d63788a); cursor: not-allowed; }
.focus-secondary-action { border: 1px solid var(--d35506a); background: transparent; color: var(--text); }
.focus-processing-stage { text-align: center; }
.focus-processing-stage .focus-stage-copy { margin: 0 auto; }
.focus-processing-orbit {
  position: relative;
  width: 150px;
  height: 150px;
  margin: 44px auto 32px;
  border: 1px solid var(--drgba-82-210-223-0-35);
  border-radius: 50%;
  animation: focus-spin 6s linear infinite;
}
.focus-processing-orbit::before,
.focus-processing-orbit::after { content: ""; position: absolute; inset: 22px; border: 1px solid var(--drgba-126-224-184-0-25); border-radius: 50%; }
.focus-processing-orbit::after { inset: 48px; background: var(--drgba-82-210-223-0-18); border-color: var(--cyan); }
.focus-processing-orbit i { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: var(--cyan); }
.focus-processing-orbit i:nth-child(1) { top: 12px; left: 35px; }
.focus-processing-orbit i:nth-child(2) { right: 1px; top: 74px; background: var(--green); }
.focus-processing-orbit i:nth-child(3) { bottom: 12px; left: 42px; }
@keyframes focus-spin { to { transform: rotate(360deg); } }
.focus-processing-status { min-height: 24px; margin: 5px 0 6px; color: var(--d91a7b9); }
/* The 360 machine's own words, under whatever else is running. Two things can
   be in flight at once — an AI review of one room and the machine stitching
   another — and each needs its own line rather than one of them silently
   overwriting the headline of the other. */
.focus-processing-machine {
  margin: 0 0 24px;
  color: var(--d6f8797);
  font-size: 0.92rem;
  line-height: 1.5;
}
.focus-result-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 32px 0 14px;
}
.focus-result-metrics article,
.focus-vr-card,
.focus-result-list article {
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: var(--drgba-7-18-31-0-64);
}
.focus-result-metrics article { padding: 20px; }
.focus-result-metrics strong { display: block; font-size: 28px; }
.focus-result-metrics small { display: block; margin-top: 5px; color: var(--d7f94a7); }
.focus-vr-card { margin: 14px 0; padding: 22px; }
.focus-vr-card header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.focus-vr-card h3 { margin: 0; font-size: 19px; }
.focus-vr-card p { margin: 10px 0 0; color: var(--d8fa3b5); line-height: 1.55; }
.focus-vr-badge { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: var(--drgba-82-210-223-0-12); color: var(--cyan); font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.focus-result-list { display: grid; gap: 10px; }
.focus-result-list article { padding: 18px 20px; }
.focus-result-list article header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.focus-result-list h3 { margin: 0; font-size: 16px; }
.focus-result-list b { color: var(--green); font-size: 11px; }
.focus-result-list p { margin: 8px 0 0; color: var(--d8196a8); font-size: 13px; line-height: 1.5; }

/* Project today, the evidence sheet, and the spatial route. Written phone-first:
   the field surface is a phone, and the desktop layout is the widened version of
   the same screen, never a different product. */
.focus-today { display: block; }
.today-head h2 {
  margin: 6px 0 0;
  font-size: clamp(22px, 5.4vw, 32px);
  line-height: 1.2;
  letter-spacing: -0.03em;
}
.today-updated { margin: 10px 0 0; color: var(--muted); font-size: 13px; }
.today-next {
  margin: 20px 0 26px;
  padding: 20px;
  border: 1px solid var(--drgba-82-210-223-0-36);
  border-radius: 14px;
  background: linear-gradient(150deg, var(--drgba-19-61-74-0-7), var(--drgba-11-26-41-0-86));
}
.today-next h3 { margin: 6px 0 0; font-size: clamp(19px, 4.4vw, 24px); line-height: 1.25; }
.today-next > p { margin: 10px 0 18px; color: var(--da9bdcc); font-size: 14px; line-height: 1.55; }
.today-next .focus-primary-action { width: 100%; justify-content: center; margin: 0; }
.today-next small { display: block; margin-top: 12px; color: var(--d74899b); font-size: 12px; }
.today-block { margin: 0 0 26px; }
.today-block h3 {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.today-list { display: grid; gap: 10px; }
.today-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid var(--line-soft);
  border-left: 3px solid var(--line);
  border-radius: 12px;
  background: var(--drgba-12-24-40-0-86);
}
.today-item > div { flex: 1 1 220px; min-width: 0; }
.today-item strong { display: block; font-size: 15px; }
.today-item p { margin: 5px 0 0; color: var(--d8ba0b2); font-size: 13px; line-height: 1.5; }
.today-item button {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--d35506a);
  border-radius: 10px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.today-item button:hover { border-color: var(--cyan); color: var(--cyan); }
.today-item.tone-review { border-left-color: var(--amber); }
.today-item.tone-wait { border-left-color: var(--cyan); }
.today-item.tone-unknown { border-left-color: var(--d6d8296); }
.today-item.tone-capture { border-left-color: var(--green); }
.today-chain { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.today-chain li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: var(--drgba-10-21-35-0-7);
}
.today-chain li > div { flex: 1; min-width: 0; }
.today-chain strong { display: block; font-size: 14px; }
.today-chain small { display: block; margin-top: 4px; color: var(--d7f94a7); font-size: 12px; line-height: 1.45; }
.today-chain i {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  border: 2px solid var(--d37506a);
  border-radius: 50%;
}
.today-chain .chain-done i { border-color: var(--green); background: var(--green); }
.today-chain .chain-active i { border-color: var(--cyan); background: var(--drgba-82-210-223-0-35); }
.today-chain button {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 12px;
  border: 0;
  border-radius: 9px;
  background: var(--drgba-255-255-255-0-05);
  color: var(--db9cad6);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.today-chain button:hover { background: var(--drgba-82-210-223-0-14); color: var(--cyan); }
.today-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.today-quick button {
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid var(--d2c435c);
  border-radius: 12px;
  background: var(--drgba-12-24-40-0-86);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.today-quick button:hover:not(:disabled) { border-color: var(--cyan); color: var(--cyan); }
.today-quick button:disabled { color: var(--d566b7d); cursor: not-allowed; }

.focus-processing-meter { display: flex; align-items: center; gap: 14px; justify-content: center; }
.focus-processing-meter progress { flex: 1 1 auto; max-width: 460px; }
.focus-processing-meter strong { font-variant-numeric: tabular-nums; font-size: 15px; }
.focus-processing-list { display: grid; gap: 8px; margin: 0 0 22px; text-align: left; }
.processing-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border: 1px solid var(--line-soft);
  border-radius: 11px;
  background: var(--drgba-10-21-35-0-8);
}
.processing-row > div { flex: 1; min-width: 0; }
.processing-row strong { display: block; font-size: 14px; }
.processing-row small { display: block; margin-top: 4px; color: var(--d7f94a7); font-size: 12px; overflow: hidden; text-overflow: ellipsis; }
.processing-row > span { flex: 0 0 auto; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.processing-row.state-running > span { color: var(--cyan); }
.processing-row.state-done > span { color: var(--green); }
.processing-row.state-failed { border-color: var(--drgba-244-140-140-0-4); }
.processing-row.state-failed > span { color: var(--red); }
.processing-row button {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--d35506a);
  border-radius: 9px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.focus-result-metrics article em { display: block; margin-top: 6px; color: var(--d63788a); font-size: 11px; font-style: normal; line-height: 1.4; }
.focus-result-heading { margin: 26px 0 12px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.focus-vr-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.focus-vr-actions button { margin: 0; }
.focus-result-card {
  display: block;
  width: 100%;
  padding: 18px 20px;
  border: 1px solid var(--line-soft);
  border-left: 3px solid var(--line);
  border-radius: 12px;
  background: var(--drgba-12-24-40-0-86);
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: 150ms ease;
}
.focus-result-card:hover { border-color: var(--cyan); transform: translateY(-1px); }
.focus-result-card.tone-ok { border-left-color: var(--green); }
.focus-result-card.tone-review { border-left-color: var(--amber); }
.focus-result-card.tone-wait { border-left-color: var(--cyan); }
.focus-result-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.focus-result-card h3 { margin: 0; font-size: 16px; }
.focus-result-card b { flex: 0 0 auto; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.focus-result-card.tone-ok b { color: var(--green); }
.focus-result-card.tone-review b { color: var(--amber); }
.focus-result-card p { margin: 9px 0 0; color: var(--d8196a8); font-size: 13px; line-height: 1.5; }
.focus-result-card footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; }
.focus-result-card footer small { color: var(--d6d8296); font-size: 12px; }
.focus-result-card footer span { color: var(--cyan); font-size: 13px; font-weight: 600; }
.focus-result-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.focus-result-actions button { flex: 1 1 200px; margin: 0; }

.focus-sheet {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}
.focus-sheet[hidden] { display: none; }
.sheet-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: calc(12px + env(safe-area-inset-top)) 16px 12px;
  border-bottom: 1px solid var(--line-soft);
  background: var(--drgba-7-16-29-0-96);
}
.sheet-back {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--d2b425c);
  border-radius: 10px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.sheet-titles { flex: 1; min-width: 0; }
.sheet-titles strong { display: block; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet-titles small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet-status {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--drgba-255-255-255-0-06);
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.sheet-status.is-confirmed { background: var(--drgba-126-224-184-0-14); color: var(--green); }
.sheet-status.is-review { background: var(--drgba-239-193-120-0-14); color: var(--amber); }
.sheet-status.is-waiting { background: var(--drgba-82-210-223-0-12); color: var(--cyan); }
.sheet-body { flex: 1; min-height: 0; overflow: auto; padding: 20px 16px 28px; }
.sheet-section { margin: 0 0 26px; }
.sheet-section-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.sheet-section-head h3 { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.sheet-section-head small { color: var(--d6d8296); font-size: 12px; }
.sheet-tag { padding: 5px 9px; border-radius: 999px; background: var(--drgba-239-193-120-0-12); color: var(--amber); font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.sheet-evidence { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.sheet-evidence-item {
  display: block;
  padding: 0 0 12px;
  overflow: hidden;
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: var(--drgba-12-24-40-0-86);
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.sheet-evidence-item:hover { border-color: var(--cyan); }
.sheet-evidence-item img,
.sheet-evidence-icon {
  display: block;
  width: 100%;
  height: 108px;
  margin-bottom: 10px;
  object-fit: cover;
  background: var(--d0d1a2a);
}
.sheet-evidence-icon {
  display: grid;
  place-items: center;
  background: linear-gradient(150deg, var(--d16324a), var(--d0d1a2a));
  color: var(--cyan);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.sheet-evidence-item span { display: block; padding: 0 12px; }
.sheet-evidence-item strong { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet-evidence-item small { display: block; margin-top: 4px; color: var(--d7f94a7); font-size: 11px; }
.sheet-empty { margin: 0; padding: 16px; border: 1px dashed var(--line); border-radius: 11px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.sheet-summary { margin: 0 0 10px; font-size: 15px; line-height: 1.6; }
.sheet-confidence { margin: 0 0 16px; color: var(--d6d8296); font-size: 12px; }
.sheet-findings-group { margin-bottom: 16px; }
.sheet-findings-group h4 { margin: 0 0 8px; font-size: 13px; color: var(--db9cad6); }
.sheet-findings-group ul { margin: 0; padding-left: 18px; color: var(--d8ba0b2); font-size: 13px; line-height: 1.6; }
/* A marked point is a way into the sphere: the row is a button, and it opens
   the capture already looking at the thing the row names. */
.sheet-marker-list { list-style: none; padding-left: 0; }
.sheet-marker-list li { margin-bottom: 6px; }
.sheet-marker-list button {
  display: flex; width: 100%; align-items: center; gap: 10px; min-height: 46px;
  padding: 8px 12px; border: 1px solid var(--d223649); border-radius: 10px;
  background: var(--drgba-10-20-33-6); color: var(--ddce7ef); font: inherit; font-size: 13px;
  text-align: left; cursor: pointer;
}
.sheet-marker-list button:hover { border-color: var(--d52d2df); }
.sheet-marker-list button span { flex: 1; }
.marker-state {
  flex: 0 0 auto; padding: 3px 9px; border-radius: 999px; border: 1px solid;
  font-size: 11px; font-style: normal; font-weight: 600;
}
.marker-state.review { color: var(--de8b070); border-color: var(--drgba-232-176-112-5); }
.marker-state.ok { color: var(--d6fd8a8); border-color: var(--drgba-111-216-168-5); }
.marker-state.wait { color: var(--d9db4ff); border-color: var(--drgba-157-180-255-5); }
.marker-state.off { color: var(--d93a5b6); border-color: var(--drgba-147-165-182-45); }
.sheet-note-label { display: block; margin-bottom: 14px; color: var(--muted); font-size: 12px; }
.sheet-note-label textarea {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--drgba-8-18-30-0-9);
  color: var(--text);
  font: inherit;
  font-size: 14px;
  resize: vertical;
}
.sheet-verify-actions { display: grid; gap: 10px; }
.sheet-verify-actions button { width: 100%; justify-content: center; margin: 0; }
.sheet-foot {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line-soft);
  background: var(--drgba-7-16-29-0-96);
}
.sheet-foot button {
  min-height: 48px;
  padding: 0 12px;
  border: 1px solid var(--d35506a);
  border-radius: 11px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.sheet-foot button.primary { border-color: var(--cyan); background: var(--cyan); color: var(--d06111d); }
.sheet-foot button.muted { color: var(--d6d8296); }

@media (min-width: 760px) {
  .today-quick { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sheet-body { padding: 26px clamp(20px, 5vw, 60px) 34px; }
  .sheet-bar { padding-left: clamp(20px, 5vw, 60px); padding-right: clamp(20px, 5vw, 60px); }
  .sheet-foot { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-left: clamp(20px, 5vw, 60px); padding-right: clamp(20px, 5vw, 60px); }
  .sheet-verify-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .today-next .focus-primary-action { width: auto; }
}
.focus-project-dialog { width: min(500px, calc(100% - 32px)); }
.focus-project-dialog .focus-project-form-grid { display: block; }
.focus-project-dialog .focus-project-form-grid > label { display: grid; gap: 8px; }
.prototype-gate {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 55% 40%, var(--d13344a) 0, transparent 34%),
    linear-gradient(135deg, var(--d07101d), var(--d050b14));
}
.prototype-gate[hidden] {
  display: none;
}
.property-gate {
  min-height: 100vh;
  padding: 64px clamp(24px, 6vw, 96px);
  background:
    radial-gradient(circle at 80% 15%, var(--drgba-82-210-223-0-12), transparent 28%),
    var(--bg);
}
.property-gate[hidden] {
  display: none;
}
.property-gate-shell {
  width: min(1280px, 100%);
  margin: auto;
}
.property-gate-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line);
}
.property-gate-header .simple-intake-brand { margin-bottom: 62px; }
.property-gate-header h1 {
  max-width: 720px;
  margin: 6px 0 12px;
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.02;
}
.property-gate-header p:not(.eyebrow) {
  margin: 0;
  color: var(--muted);
}
.property-gate-actions {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
}
.property-gate-message {
  min-height: 1.3em;
  margin-top: 12px !important;
  color: var(--muted);
  font-size: 13px;
}
.property-gate-message.error {
  color: var(--df0a861) !important;
}
.property-directory {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding-top: 32px;
}
.property-directory-card {
  min-height: 190px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(145deg, var(--panel-2), var(--panel));
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: 160ms ease;
}
.property-directory-card:hover,
.property-directory-card:focus-visible {
  border-color: var(--cyan);
  transform: translateY(-2px);
}
.property-directory-card > span {
  display: block;
  color: var(--cyan);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.property-directory-card h2 {
  margin: 28px 0 10px;
  font-size: 25px;
}
.property-directory-card p {
  min-height: 44px;
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.property-directory-card small {
  display: block;
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
  color: var(--dc8d5df);
}
.empty-property-state {
  max-width: 680px;
  margin: 72px auto 0;
  padding: 48px;
  border: 1px dashed var(--line);
  text-align: center;
}
.empty-property-state > span {
  color: var(--cyan);
  font-size: 12px;
  letter-spacing: 0.16em;
}
.empty-property-state h2 {
  margin: 16px 0 10px;
  font-size: 30px;
}
.empty-property-state p {
  margin: 0 auto 24px;
  color: var(--muted);
  line-height: 1.65;
}
.property-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.property-form-grid .wide {
  grid-column: 1 / -1;
}
.property-dialog {
  width: min(760px, calc(100vw - 32px));
}
.form-message {
  min-height: 18px;
  margin: 0;
  color: var(--red);
  font-size: 11px;
}
.gate-card {
  width: min(540px, 100%);
  padding: 54px;
  border: 1px solid var(--line);
  background: var(--drgba-12-23-39-0-9);
  box-shadow: var(--shadow);
  text-align: center;
}
.studio-mark {
  position: relative;
  width: 38px;
  height: 38px;
  margin: auto;
}
.studio-mark i {
  position: absolute;
  inset: 5px;
  border: 1.5px solid var(--cyan);
  border-radius: 45% 55%;
  transform: rotate(30deg);
}
.studio-mark i:nth-child(2) {
  transform: rotate(90deg);
}
.studio-mark i:nth-child(3) {
  transform: rotate(150deg);
}
.eyebrow {
  margin: 0 0 10px;
  color: var(--cyan);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}
.gate-card h1 {
  margin: 18px 0 12px;
  font-size: 36px;
}
.gate-card p:not(.eyebrow) {
  color: var(--dafbecc);
  line-height: 1.7;
}
.gate-card small {
  display: block;
  margin-top: 20px;
  color: var(--d73869a);
}
.auth-form {
  display: grid;
  gap: 12px;
  margin-top: 26px;
  text-align: left;
}
.google-auth-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 13px 16px;
  border: 1px solid var(--dd6dce1);
  border-radius: 7px;
  background: var(--dfff);
  color: var(--d17202a);
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
}
.google-auth-button:hover {
  background: var(--df5f7f8);
}
.google-auth-button:disabled {
  cursor: wait;
  opacity: 0.65;
}
.google-auth-button svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
}
.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--d718497);
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.auth-divider::before,
.auth-divider::after {
  height: 1px;
  background: var(--line);
  content: "";
  flex: 1;
}
.auth-form label {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.auth-form input {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--d07111e);
  color: var(--text);
  font: inherit;
  font-size: 12px;
}
.auth-form .primary-button {
  width: 100%;
  margin-top: 4px;
}
.auth-link-button {
  justify-self: center;
  border: 0;
  padding: 3px 8px;
  background: transparent;
  color: var(--cyan);
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
}
.auth-link-button:hover {
  text-decoration: underline;
}
.auth-link-button:disabled {
  cursor: wait;
  opacity: 0.6;
}
.gate-card .auth-message {
  min-height: 18px;
  margin: 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.5;
  text-align: center;
}
.gate-card .auth-message[data-tone="error"] {
  color: var(--red);
}
.gate-card .auth-message[data-tone="success"] {
  color: var(--green);
}
.button-reset,
button {
  font: inherit;
}
.primary-button,
.secondary-button,
.confirm-button,
.icon-button,
.mini-button {
  border: 1px solid transparent;
  border-radius: 7px;
  padding: 11px 15px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}
.primary-button {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  justify-content: center;
  background: var(--cyan);
  color: var(--d06131d);
  border-color: var(--cyan);
}
.secondary-button {
  background: transparent;
  color: var(--dc8d5df);
  border-color: var(--line);
}
.confirm-button {
  background: var(--d183f39);
  color: var(--green);
  border-color: var(--d2a6559);
}
.icon-button,
.mini-button {
  background: transparent;
  color: var(--muted);
  border-color: var(--line);
  padding: 8px 10px;
}
.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-rows: 70px 1fr;
}
.topbar {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  border-bottom: 1px solid var(--line);
  background: var(--d081321);
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
}
.brand .studio-mark {
  width: 30px;
  height: 30px;
  margin: 0;
}
.brand strong {
  color: var(--cyan);
}
.topbar-center,
.topbar-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}
.environment-pill,
.private-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--d28515c);
  background: var(--d102c37);
  color: var(--d93e5e9);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.environment-pill i,
.review-principle i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cyan);
}
.autosave-status {
  font-size: 11px;
  color: var(--muted);
}
.avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 11px;
  color: var(--cyan);
  font-weight: 700;
}
.mobile-menu {
  display: none;
}
.sidebar {
  grid-column: 1;
  grid-row: 2;
  padding: 24px 14px;
  border-right: 1px solid var(--line);
  background: var(--d081321);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.sidebar nav {
  display: grid;
  gap: 6px;
}
.nav-item {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  gap: 5px;
  width: 100%;
  padding: 12px;
  border: 0;
  border-radius: 7px;
  color: var(--d879caf);
  background: transparent;
  text-align: left;
  font-size: 12px;
  cursor: pointer;
  text-decoration: none;
}
.nav-item.active {
  color: var(--text);
  background: var(--panel-2);
}
.nav-item:disabled {
  cursor: default;
  opacity: 0.55;
}
.nav-item small {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--d64778a);
}
.sidebar-footer {
  padding: 16px;
  border: 1px solid var(--line-soft);
  background: var(--d0a1524);
}
.sidebar-footer p {
  margin: 0 0 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
}
.sidebar-footer ol {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  display: grid;
  gap: 8px;
}
.sidebar-footer li {
  position: relative;
  padding-left: 18px;
  font-size: 11px;
  color: var(--d64788d);
}
.sidebar-footer li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 7px;
  height: 7px;
  border: 1px solid var(--d4c6074);
  border-radius: 50%;
}
.sidebar-footer li.done {
  color: var(--green);
}
.sidebar-footer li.done:before {
  background: var(--green);
  border-color: var(--green);
}
.sidebar-footer small {
  color: var(--d65788c);
  font-size: 9px;
  line-height: 1.5;
}
.workspace {
  grid-column: 2;
  grid-row: 2;
  padding: 34px 34px 60px;
  min-width: 0;
}
.property-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 30px;
  margin-bottom: 28px;
}
.property-header h1 {
  margin: 0;
  font-size: 30px;
  letter-spacing: -0.04em;
}
.property-header > div > p:last-child {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.title-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.private-pill {
  color: var(--da9b9c8);
  background: transparent;
  border-color: var(--line);
}
.property-actions {
  display: flex;
  gap: 9px;
}
.upload-button {
  cursor: pointer;
}
.metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
  background: var(--panel);
  margin-bottom: 22px;
}
.metrics article {
  padding: 18px 20px;
  border-right: 1px solid var(--line);
}
.metrics article:last-child {
  border-right: 0;
}
.metrics span,
.metrics small {
  display: block;
  color: var(--muted);
  font-size: 10px;
}
.metrics strong {
  display: block;
  margin: 7px 0 4px;
  font-size: 23px;
  font-weight: 600;
}
.record-grid {
  display: grid;
  grid-template-columns: 240px minmax(360px, 1.25fr) minmax(310px, 0.9fr);
  border: 1px solid var(--line);
  background: var(--panel);
  min-height: 610px;
}
.room-panel,
.evidence-panel,
.review-panel {
  min-width: 0;
}
.room-panel,
.evidence-panel {
  border-right: 1px solid var(--line);
}
.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 18px 16px;
  border-bottom: 1px solid var(--line);
}
.panel-heading p {
  margin: 0 0 5px;
  color: var(--cyan);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.panel-heading h2 {
  margin: 0;
  font-size: 15px;
}
.room-list {
  padding: 10px;
}
.room-card {
  width: 100%;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 11px;
  align-items: center;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.room-card:hover {
  background: var(--d0f1c2e);
}
.room-card.active {
  border-color: var(--d2b5261);
  background: var(--d102632);
}
.room-thumb {
  width: 44px;
  height: 54px;
  border-radius: 5px;
  object-fit: cover;
  background: var(--d142338);
}
.room-card strong,
.room-card small {
  display: block;
}
.room-card strong {
  font-size: 12px;
  margin-bottom: 6px;
}
.room-card small {
  font-size: 9px;
  color: var(--muted);
}
.status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--amber);
}
.status-dot.confirmed {
  background: var(--green);
}
.status-dot.empty {
  background: var(--d465a6e);
}
.evidence-heading {
  min-height: 72px;
}
.evidence-count {
  color: var(--muted);
  font-size: 10px;
}
.evidence-stage {
  position: relative;
  height: 390px;
  margin: 18px;
  background: var(--d050a10);
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line-soft);
}
.evidence-stage img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.evidence-stage video { width:100%; height:100%; object-fit:contain; background:var(--d03070c); }
.document-preview { display:grid; place-items:center; gap:14px; text-align:center; }
.document-preview[hidden] { display:none; }
.document-preview span { display:grid; place-items:center; width:62px; height:78px; border:1px solid var(--cyan); color:var(--cyan); font-size:13px; font-weight:700; }
.document-preview strong { font-size:12px; }
.document-preview a { color:var(--cyan); font-size:10px; text-decoration:none; }
.video-thumb,
.document-thumb,
.strip-thumb.video-thumb,
.strip-thumb.document-thumb,
.review-thumb-media.video-thumb,
.review-thumb-media.document-thumb {
  display: grid;
  place-items: center;
  color: var(--cyan);
  background: linear-gradient(145deg, var(--d10253a), var(--d07111e));
  font-size: 14px;
  letter-spacing: .08em;
}
.strip-thumb { width: 100%; height: 100%; object-fit: cover; }
.review-thumb-media { width: 100%; height: 100%; object-fit: cover; }
.video-thumb { display:grid; place-items:center; width:100%; height:100%; background:var(--d0b1b2a); color:var(--cyan); font-size:18px; }
.stage-toolbar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  padding: 12px;
  background: linear-gradient(transparent, var(--drgba-0-0-0-0-86));
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.stage-toolbar button {
  border: 0;
  background: transparent;
  color: var(--cyan);
  cursor: pointer;
}
.stage-toolbar-actions { align-items:center; display:flex; gap:14px; }
.stage-toolbar .danger-link { color:var(--dff8d91); }
.stage-toolbar .danger-link:hover { color:var(--dffb0b3); }
.evidence-strip {
  display: flex;
  gap: 8px;
  padding: 0 18px 14px;
  overflow: auto;
}
.evidence-thumb {
  width: 70px;
  height: 52px;
  border: 1px solid var(--cyan);
  background: var(--d07101d);
  padding: 2px;
  cursor: pointer;
}
.evidence-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.source-details {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 18px 18px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.source-details div {
  padding: 12px;
  border-right: 1px solid var(--line);
}
.source-details div:last-child {
  border-right: 0;
}
.source-details span,
.source-details strong {
  display: block;
}
.source-details span {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted);
  margin-bottom: 5px;
}
.source-details strong {
  font-size: 9px;
  font-weight: 500;
}

.danger-button {
  background:var(--d7d2831);
  border:1px solid var(--db94d58);
  border-radius:7px;
  color:var(--dfff);
  cursor:pointer;
  font:600 11px/1 Inter, sans-serif;
  min-height:38px;
  padding:0 16px;
}
.danger-button:hover { background:var(--d91313b); }
.danger-button:disabled { cursor:wait; opacity:.55; }
.delete-evidence-summary {
  background:var(--drgba-154-47-58-1);
  border:1px solid var(--drgba-220-89-101-35);
  border-radius:8px;
  margin:20px 0;
  padding:18px;
}
.delete-evidence-summary strong { display:block; font-size:13px; margin-bottom:9px; overflow-wrap:anywhere; }
.delete-evidence-summary p { color:var(--muted); font-size:11px; line-height:1.65; margin:0; }
.inventory-actions { display:flex; gap:7px; justify-content:flex-end; }
.inventory-delete { border-color:var(--drgba-220-89-101-38); color:var(--dff9ca1); }

.guide-header { border-bottom:1px solid var(--line); padding-bottom:30px; }
.guide-foundation {
  align-items:start;
  background:linear-gradient(135deg, var(--drgba-52-211-235-09), var(--drgba-52-211-235-025));
  border:1px solid var(--d285263);
  display:grid;
  gap:40px;
  grid-template-columns:minmax(320px, 1.25fr) minmax(260px, .75fr);
  margin:24px 0;
  padding:26px;
}
.guide-foundation h2 { font-size:clamp(20px, 2vw, 29px); letter-spacing:-.03em; margin:0; }
.guide-foundation > p { color:var(--muted); font-size:12px; line-height:1.75; margin:0; }
.guide-steps { border-left:1px solid var(--line); border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3, 1fr); }
.guide-steps article { border-bottom:1px solid var(--line); border-right:1px solid var(--line); display:grid; gap:16px; grid-template-columns:30px 1fr; min-height:205px; padding:24px; }
.guide-steps article > span { color:var(--cyan); font-size:10px; font-weight:700; }
.guide-steps h2 { font-size:16px; margin:0 0 12px; }
.guide-steps p { color:var(--db8c6d2); font-size:11px; line-height:1.65; margin:0; }
.guide-steps small { color:var(--d6f8497); display:block; font-size:9px; line-height:1.55; margin-top:18px; }
.guide-capture-matrix { border:1px solid var(--line); margin-top:24px; }
.guide-layer { align-items:center; border-top:1px solid var(--line-soft); display:grid; gap:20px; grid-template-columns:170px minmax(280px,1fr) minmax(180px,.6fr); padding:17px 20px; }
.guide-layer span { color:var(--cyan); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.guide-layer strong { font-size:13px; }
.guide-layer p { color:var(--muted); font-size:10px; margin:0; }
.guide-vision { background:var(--panel); border:1px solid var(--line); display:grid; gap:30px; grid-template-columns:.75fr 1.25fr; margin-top:24px; padding:28px; }
.guide-vision h2 { font-size:25px; letter-spacing:-.035em; margin:0; }
.guide-vision ol { list-style:none; margin:0; padding:0; }
.guide-vision li { border-bottom:1px solid var(--line-soft); display:grid; gap:14px; grid-template-columns:30px 1fr; padding:12px 0; }
.guide-vision li:first-child { padding-top:0; }
.guide-vision li > span { color:var(--cyan); font-size:9px; font-weight:700; }
.guide-vision li p { color:var(--muted); font-size:10px; line-height:1.6; margin:0; }
.guide-vision li strong { color:var(--text); display:block; font-size:11px; margin-bottom:3px; }
.guide-status { border-left:2px solid var(--amber); color:var(--muted); font-size:9px; grid-column:1/-1; line-height:1.6; margin:0; padding-left:14px; }
.guide-status strong { color:var(--text); }
.review-panel {
  background: var(--d0a1524);
}
.review-badge {
  padding: 6px 8px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  white-space: nowrap;
}
.review-badge.needs {
  background: var(--d3a2c1c);
  color: var(--amber);
}
.review-badge.confirmed {
  background: var(--d183d36);
  color: var(--green);
}
.ai-result-summary {
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, var(--drgba-35-195-207-0-1), transparent);
  padding: 16px 18px;
}
.ai-result-summary > div {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}
.ai-result-summary span {
  color: var(--cyan);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ai-result-summary strong {
  color: var(--muted);
  font-size: 8px;
  font-weight: 600;
  text-transform: capitalize;
}
.ai-result-summary p {
  color: var(--dc7d6e2);
  font-size: 10px;
  line-height: 1.6;
  margin: 10px 0 0;
}
.observation-block {
  padding: 18px;
  border-bottom: 1px solid var(--line);
}
.observation-label {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.observation-label span {
  font-size: 10px;
  font-weight: 700;
}
.observation-label small {
  font-size: 8px;
  color: var(--muted);
}
.observation-block ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.observation-block li {
  position: relative;
  padding-left: 15px;
  color: var(--db7c5d1);
  font-size: 10px;
  line-height: 1.5;
}
.observation-block li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 5px;
  height: 5px;
  border: 1px solid var(--cyan);
  border-radius: 50%;
}
.muted-block li {
  color: var(--d8295a8);
}
.muted-block li:before {
  border-color: var(--d6b7e92);
}
.review-note {
  display: block;
  padding: 18px;
  color: var(--muted);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.review-note textarea {
  display: block;
  width: 100%;
  margin-top: 8px;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--d07111e);
  color: var(--text);
  padding: 11px;
  font: inherit;
  font-size: 10px;
  line-height: 1.5;
}
.review-actions {
  display: grid;
  gap: 8px;
  padding: 0 18px;
}
.review-principle {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  margin: 18px;
  color: var(--d708397);
  font-size: 9px;
  line-height: 1.5;
}
.review-principle i {
  flex: 0 0 auto;
  margin-top: 4px;
  background: var(--green);
}
dialog {
  width: min(460px, calc(100% - 30px));
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--text);
  padding: 0;
  box-shadow: var(--shadow);
}
dialog::backdrop {
  background: var(--drgba-2-7-13-0-8);
}
dialog form {
  padding: 22px;
}
.dialog-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}
.dialog-heading h2 {
  margin: 0;
  font-size: 21px;
}
.dialog-heading button {
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 24px;
  cursor: pointer;
}
dialog label {
  display: block;
  margin: 14px 0;
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
dialog input,
dialog select,
dialog textarea {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--d07111e);
  color: var(--text);
  font: inherit;
  font-size: 12px;
}
dialog textarea { min-height:78px; resize:vertical; }
.account-security-copy {
  margin: -8px 0 18px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}
.account-security-message {
  min-height: 18px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}
.account-security-message[data-tone="error"] {
  color: var(--red);
}
.account-security-message[data-tone="success"] {
  color: var(--green);
}
.dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 22px;
}
.upload-summary {
  padding: 12px;
  border: 1px solid var(--line);
  background: var(--d091522);
  color: var(--db9c8d3);
  font-size: 11px;
  line-height: 1.5;
}
.dialog-notice {
  color: var(--d73879a);
  font-size: 9px;
  line-height: 1.5;
}
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 30px;
  background: var(--drgba-0-0-0-0-92);
}
.lightbox[hidden] {
  display: none;
}
.lightbox img {
  max-width: 95vw;
  max-height: 92vh;
  object-fit: contain;
}
.lightbox button {
  position: fixed;
  right: 24px;
  top: 20px;
  border: 0;
  background: transparent;
  color: white;
  font-size: 32px;
  cursor: pointer;
}
.toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 70;
  padding: 13px 16px;
  border: 1px solid var(--d2a5961);
  background: var(--d0f2b35);
  color: var(--db9f0ee);
  border-radius: 7px;
  font-size: 11px;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: 0.2s;
}
.toast.show {
  opacity: 1;
  transform: none;
}
@media (max-width: 1180px) {
  .record-grid {
    grid-template-columns: 210px 1fr;
  }
  .review-panel {
    grid-column: 1/-1;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .review-panel > .panel-heading {
    grid-column: 1/-1;
  }
  .ai-result-summary {
    grid-column: 1/-1;
  }
  .review-note,
  .review-actions,
  .review-principle {
    grid-column: 1/-1;
  }
  .room-panel {
    border-right: 1px solid var(--line);
  }
  .evidence-panel {
    border-right: 0;
  }
  .guide-steps { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 800px) {
  .property-gate-header {
    align-items: stretch;
    flex-direction: column;
  }
  .property-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .app-shell {
    grid-template-columns: 1fr;
  }
  .topbar {
    padding: 0 14px;
  }
  .topbar-center,
  .topbar .secondary-button {
    display: none;
  }
  .mobile-menu {
    display: block;
  }
  .sidebar {
    position: fixed;
    left: 0;
    top: 70px;
    bottom: 0;
    width: 240px;
    z-index: 18;
    transform: translateX(-100%);
    transition: 0.2s;
  }
  .sidebar.open {
    transform: none;
  }
  .workspace {
    grid-column: 1;
    padding: 24px 14px 50px;
  }
  .property-header {
    display: block;
  }
  .property-actions {
    margin-top: 18px;
  }
  .metrics {
    grid-template-columns: 1fr 1fr;
  }
  .metrics article:nth-child(2) {
    border-right: 0;
  }
  .metrics article:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }
  .record-grid {
    grid-template-columns: 1fr;
  }
  .room-panel,
  .evidence-panel {
    border: 0;
    border-bottom: 1px solid var(--line);
  }
  .room-list {
    display: flex;
    overflow: auto;
  }
  .room-card {
    min-width: 210px;
  }
  .evidence-stage {
    height: 410px;
  }
  .review-panel {
    grid-column: auto;
    display: block;
  }
  .source-details {
    grid-template-columns: 1fr;
  }
  .source-details div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .guide-foundation,
  .guide-vision { grid-template-columns:1fr; }
  .guide-steps { grid-template-columns:1fr; }
  .guide-layer { align-items:start; grid-template-columns:1fr; gap:7px; }
  .property-header h1 {
    font-size: 25px;
  }
}
@media (max-width: 520px) {
  .simple-intake-landing,.simple-project{padding:24px 18px}.simple-intake-main{padding-top:84px}.simple-intake-main h1{font-size:45px}.simple-intake-actions{display:grid}.simple-intake-primary,.simple-intake-secondary{width:100%}#simple-recent-projects{grid-template-columns:1fr}.simple-project-main{padding-top:64px}.simple-add-evidence{min-height:270px}.simple-upload-list article{grid-template-columns:32px minmax(0,1fr) auto;padding:15px 12px}
  .focus-topbar { min-height: 62px; padding: 0 16px; }
  .focus-brand > span:last-child { display: none; }
  .focus-top-actions { gap: 0; }
  .focus-text-button { padding: 0 9px; font-size: 12px; }
  .focus-main { width: calc(100% - 28px); padding: 38px 0 64px; }
  .focus-project-heading h1 { font-size: 43px; }
  .focus-project-heading > p:last-child { font-size: 15px; }
  .focus-roadmap { margin-top: 32px; }
  .focus-roadmap li { display: flex; align-items: center; gap: 7px; padding: 12px 8px; }
  .focus-roadmap li > span { width: 25px; height: 25px; font-size: 10px; }
  .focus-roadmap strong { font-size: 11px; }
  .focus-roadmap small { display: none; }
  .focus-stage { padding: 24px 18px; border-radius: 14px; }
  .focus-stage-copy h2 { font-size: 34px; }
  .focus-stage-copy > p:last-child { font-size: 14px; }
  .focus-upload-card { min-height: 230px; margin-top: 24px; }
  .focus-upload-card strong { font-size: 26px; }
  .focus-ready-summary article { padding: 14px; }
  .focus-result-metrics { grid-template-columns: 1fr; }
  .focus-vr-card header { align-items: flex-start; }
  .property-gate {
    padding: 34px 18px;
  }
  .property-gate-header .simple-intake-brand { margin-bottom: 40px; }
  .property-gate-actions,
  .property-directory {
    display: grid;
    grid-template-columns: 1fr;
  }
  .property-form-grid {
    grid-template-columns: 1fr;
  }
  .property-form-grid .wide {
    grid-column: auto;
  }
  .brand > span:last-child {
    display: none;
  }
  .property-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .metrics {
    font-size: 90%;
  }
  .evidence-stage {
    height: 360px;
    margin: 12px;
  }
  .source-details,
  .evidence-strip {
    margin-left: 12px;
    margin-right: 12px;
  }
  .gate-card {
    padding: 36px 24px;
  }
  .title-row {
    align-items: flex-start;
  }
  .private-pill {
    margin-top: 4px;
  }
}

/* Spatial Intelligence Studio workflow */
.view[hidden] {
  display: none;
}
.ai-button {
  display: flex;
  justify-content: space-between;
  border: 1px solid var(--d2b6570);
  border-radius: 7px;
  padding: 11px 15px;
  background: var(--d102e3c);
  color: var(--d8de7ed);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.connector-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid var(--d5b4530);
  border-radius: 999px;
  background: var(--d2c2117);
  color: var(--amber);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
}
.connector-button i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber);
}
.nav-item small {
  min-width: 18px;
  padding: 3px 5px;
  border-radius: 999px;
  background: var(--d142439);
  text-align: center;
}
.view-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 28px;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--line);
}
.view-header > div {
  max-width: 760px;
}
.view-header h1 {
  max-width: 720px;
  margin: 0;
  font-size: 34px;
  line-height: 1.12;
  letter-spacing: -0.045em;
}
.view-header > div > p:last-child {
  max-width: 690px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.vision-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  max-width: 520px;
}
.vision-actions .text-button {
  min-height: 38px;
  padding: 0 10px;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 10px;
}
.intake-layout {
  display: grid;
  grid-template-columns: 1.45fr 0.75fr;
  gap: 20px;
}
.drop-zone,
.governance-card,
.queue-board,
.pipeline-card,
.vision-preview,
.readiness-card,
.inventory-section,
.release-contents {
  border: 1px solid var(--line);
  background: var(--panel);
}
.drop-zone {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 42px;
  text-align: center;
  background:
    radial-gradient(
      circle at 50% 40%,
      var(--drgba-82-210-223-0-1),
      transparent 36%
    ),
    var(--panel);
}
.drop-zone.dragging {
  border-color: var(--cyan);
  background: var(--d0f2732);
}
.drop-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid var(--d2d6572);
  border-radius: 50%;
  color: var(--cyan);
  font-size: 26px;
}
.drop-zone h2 {
  margin: 20px 0 8px;
}
.drop-zone p {
  max-width: 510px;
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.drop-zone small {
  margin-top: 20px;
  color: var(--d60758a);
  font-size: 9px;
}
.governance-card {
  padding: 28px;
}
.governance-card h2 {
  margin: 0 0 20px;
}
.governance-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 16px;
}
.governance-card li {
  position: relative;
  padding-left: 22px;
  color: var(--db8c6d2);
  font-size: 11px;
  line-height: 1.5;
}
.governance-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--green);
}
.inventory-section {
  margin-top: 20px;
}
.section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
}
.section-heading p {
  margin: 0 0 5px;
  color: var(--cyan);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.section-heading h2 {
  margin: 0;
  font-size: 16px;
}
.section-heading > span,
.section-heading > strong {
  color: var(--muted);
  font-size: 11px;
}
.inventory-table {
  display: grid;
}
.inventory-row {
  display: grid;
  grid-template-columns: 42px minmax(220px, 1fr) 150px 130px auto;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--line-soft);
}
.inventory-edit { white-space: nowrap; }
.new-room-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  background: var(--drgba-52-211-235-035);
}
.new-room-fields[hidden] { display: none; }
.new-room-fields label:first-child { grid-column: 1 / -1; }
.inventory-row:last-child {
  border-bottom: 0;
}
.file-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  color: var(--cyan);
}
.inventory-row strong,
.inventory-row small {
  display: block;
}
.inventory-row strong {
  font-size: 11px;
}
.inventory-row small,
.inventory-row > span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 9px;
}
.inventory-status {
  padding: 6px 8px;
  border-radius: 999px;
  text-align: center;
}
.inventory-status.confirmed {
  background: var(--d173a34);
  color: var(--green);
}
.inventory-status.needs {
  background: var(--d33281a);
  color: var(--amber);
}
.connector-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 20px;
  border: 1px solid var(--line);
  background: var(--panel);
}
.connector-strip div {
  padding: 18px;
  border-right: 1px solid var(--line);
}
.connector-strip div:last-child {
  border-right: 0;
}
.connector-strip span,
.connector-strip strong {
  display: block;
}
.connector-strip span {
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.connector-strip strong {
  font-size: 11px;
}
.processing-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.75fr;
  gap: 20px;
}
.queue-board {
  min-height: 430px;
}
.job-list {
  padding: 12px;
}
.job-card {
  display: grid;
  grid-template-columns: 145px 1fr 110px auto;
  align-items: center;
  gap: 16px;
  padding: 15px;
  border-bottom: 1px solid var(--line-soft);
}
.job-card:last-child {
  border-bottom: 0;
}
.job-state {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--amber);
  font-size: 9px;
}
.job-state i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--amber);
}
.job-card strong {
  font-size: 11px;
}
.job-card p,
.job-card time {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 9px;
}
.job-card .job-error {
  display: block;
  margin-top: 7px;
  color: var(--df2b27f);
  font-size: 9px;
  line-height: 1.45;
}
.pipeline-card {
  padding: 28px;
}
.pipeline-card h2 {
  margin: 0 0 22px;
}
.contract-list {
  display: grid;
  gap: 18px;
}
.contract-list > div {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
}
.contract-list > div > span {
  color: var(--cyan);
  font-size: 9px;
}
.contract-list p {
  margin: 0;
}
.contract-list strong,
.contract-list small {
  display: block;
}
.contract-list strong {
  font-size: 11px;
}
.contract-list small {
  margin-top: 6px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.5;
}
.empty-state {
  padding: 70px 25px;
  text-align: center;
  color: var(--muted);
}
.empty-state strong {
  color: var(--text);
  font-size: 13px;
}
.empty-state p {
  font-size: 10px;
  line-height: 1.6;
}
.review-queue {
  display: grid;
  gap: 12px;
}
.review-queue-card {
  display: grid;
  grid-template-columns: 92px 1fr auto auto;
  align-items: center;
  gap: 20px;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--panel);
}
.review-card-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.review-card-actions .mini-button {
  color: var(--da9c0d0);
}
.space-dialog-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-top: 22px;
}
.space-dialog-footer > div:first-child {
  display: grid;
  gap: 7px;
  max-width: 255px;
}
.space-dialog-footer small {
  color: var(--muted);
  font-size: 8px;
  line-height: 1.45;
}
.space-dialog-footer .dialog-actions {
  margin-top: 0;
}
.review-room-thumb {
  width: 92px;
  height: 70px;
  background: var(--d0a1422);
  display: grid;
  place-items: center;
}
.review-room-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.review-queue-card p {
  margin: 0 0 5px;
  color: var(--cyan);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.review-queue-card h2 {
  margin: 0 0 7px;
  font-size: 15px;
}
.review-queue-card small {
  color: var(--muted);
  font-size: 9px;
}
.vision-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 20px;
}
.vision-preview {
  min-height: 430px;
  padding: 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: radial-gradient(circle, var(--d103747) 0, transparent 38%), var(--d081321);
}
.vision-preview h2 {
  margin: 8px 0;
  font-size: 24px;
}
.vision-preview > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 11px;
}
.vision-preview .vision-release-status {
  max-width: 560px;
  margin: 12px 0 0;
  color: var(--db7c7d4);
  line-height: 1.55;
}
.vision-preview .vision-release-status.blocked {
  color: var(--amber);
}
.vision-preview .vision-release-status.approved {
  color: var(--green);
}
.vision-orbit {
  position: relative;
  width: 120px;
  height: 120px;
  margin-bottom: 24px;
  display: grid;
  place-items: center;
}
.vision-orbit i {
  position: absolute;
  inset: 18px;
  border: 1px solid var(--cyan);
  border-radius: 48%;
  transform: rotate(35deg);
}
.vision-orbit i:nth-child(2) {
  transform: rotate(125deg);
}
.vision-orbit span {
  font-size: 27px;
  color: var(--cyan);
}
.vision-flow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
  color: var(--d93a5b6);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.vision-flow i {
  color: var(--cyan);
  font-style: normal;
}
.readiness-card {
  min-height: 430px;
}
.readiness-list {
  padding: 12px 20px;
}
.readiness-item {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 10px;
  align-items: center;
  padding: 13px 0;
  border-bottom: 1px solid var(--line-soft);
}
.readiness-item i {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 9px;
  font-style: normal;
}
.readiness-item.ready i {
  background: var(--d173d36);
  color: var(--green);
}
.readiness-item.blocked i {
  background: var(--d342818);
  color: var(--amber);
}
.readiness-item p {
  margin: 0;
}
.readiness-item strong,
.readiness-item small {
  display: block;
}
.readiness-item strong {
  font-size: 10px;
}
.readiness-item small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 8px;
}
.manifest-note {
  margin: 12px 20px 20px;
  padding: 12px;
  border-left: 2px solid var(--amber);
  background: var(--d171710);
  color: var(--d9ca7ad);
  font-size: 9px;
  line-height: 1.6;
}
.release-contents {
  margin-top: 20px;
}
.release-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.release-cards article {
  padding: 22px;
  border-right: 1px solid var(--line);
}
.release-cards article:last-child {
  border-right: 0;
}
.release-cards span {
  color: var(--cyan);
  font-size: 9px;
}
.release-cards h3 {
  margin: 18px 0 8px;
  font-size: 13px;
}
.release-cards p {
  margin: 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.6;
}
.security-callout {
  padding: 15px;
  border: 1px solid var(--d5b4530);
  background: var(--d211a12);
}
.security-callout strong {
  color: var(--amber);
  font-size: 11px;
}
.security-callout p {
  margin: 7px 0 0;
  color: var(--da9a49b);
  font-size: 9px;
  line-height: 1.6;
}
@media (max-width: 1180px) {
  .connector-strip {
    grid-template-columns: 1fr 1fr;
  }
  .connector-strip div:nth-child(2) {
    border-right: 0;
  }
  .connector-strip div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }
  .processing-grid,
  .vision-grid {
    grid-template-columns: 1fr;
  }
  .release-cards {
    grid-template-columns: 1fr 1fr;
  }
  .release-cards article:nth-child(2) {
    border-right: 0;
  }
  .release-cards article:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }
}
@media (max-width: 800px) {
  .connector-button {
    display: none;
  }
  .view-header {
    display: block;
  }
  .view-header > .primary-button,
  .view-header > .secondary-button {
    margin-top: 18px;
  }
  .view-header h1 {
    font-size: 28px;
  }
  .intake-layout {
    grid-template-columns: 1fr;
  }
  .inventory-row {
    grid-template-columns: 38px 1fr;
  }
  .inventory-row > span {
    display: none;
  }
  .inventory-edit { justify-self: start; }
  .new-room-fields { grid-template-columns: 1fr; }
  .new-room-fields label:first-child { grid-column: auto; }
  .job-card {
    grid-template-columns: 1fr auto;
  }
  .job-state,
  .job-card time {
    grid-column: 1;
  }
  .review-queue-card {
    grid-template-columns: 72px 1fr;
  }
  .review-room-thumb {
    width: 72px;
    height: 60px;
  }
  .review-queue-card > .review-badge,
  .review-queue-card > button,
  .review-queue-card > .review-card-actions {
    grid-column: 2;
  }
  .space-dialog-footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }
  .space-dialog-footer > div:first-child {
    max-width: none;
  }
  .vision-flow {
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (max-width: 520px) {
  .connector-strip,
  .release-cards {
    grid-template-columns: 1fr;
  }
  .connector-strip div,
  .release-cards article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .vision-preview {
    padding: 28px 18px;
  }
  .drop-zone {
    padding: 32px 18px;
  }
}

/* One obvious action per stage. The upload card is the project screen, the
   record only appears once processing is done. */
.focus-roadmap li small { display: none; }
.focus-stage-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.focus-stage-actions .focus-primary-action,
.focus-stage-actions .focus-secondary-action { flex: 1 1 200px; margin: 0; justify-content: center; }
.focus-upload-done {
  margin: 18px 0 0;
  padding: 16px 18px;
  border: 1px solid var(--drgba-126-224-184-34);
  border-radius: 11px;
  background: var(--drgba-23-68-57-28);
}
.focus-upload-done[hidden] { display: none; }
.focus-upload-done p { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 15px; }
.focus-upload-done b { color: var(--green); font-size: 19px; }
.focus-results-stage .today-head .eyebrow b,
#focus-results-stage .today-head .eyebrow b { color: var(--green); }
#focus-results-stage .today-head .eyebrow { color: var(--green); }
.property-directory-card h2 { margin: 0; font-size: clamp(19px, 2.4vw, 24px); }
.property-directory-card small { color: var(--cyan); font-size: 18px; }
.property-gate-header h1 { margin: 6px 0 0; }
.property-directory-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 78px;
  padding: 20px 24px;
}
@media (max-width: 640px) {
  .focus-roadmap { display: flex; }
  .focus-roadmap li { flex: 1 1 0; min-width: 0; padding: 12px 6px; text-align: center; }
  .focus-roadmap li > span { margin: 0 auto 6px; }
  .focus-roadmap strong { font-size: 11px; line-height: 1.2; overflow-wrap: anywhere; }
}
/* A step already reached is a way back, so it has to look like one. */
.focus-roadmap li.reachable { cursor: pointer; }
.focus-roadmap li.reachable:hover,
.focus-roadmap li.reachable:focus-visible { background: var(--drgba-82-210-223-0-1); color: var(--text); outline: none; }
.focus-roadmap li.reachable:hover > span,
.focus-roadmap li.reachable:focus-visible > span { border-color: var(--cyan); color: var(--cyan); }


/* --------------------------------------------------- Results, quieted down */
/* One screen answers three things: what changed, what to do, and open the
   record. Everything that describes the machinery instead of the object lives
   behind this one control. */
.focus-more {
  margin: 24px 0 8px;
  border: 1px solid var(--d1c2c3c);
  border-radius: 14px;
  background: var(--drgba-10-20-33-4);
}
.focus-more > summary {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px;
  color: var(--d8ba0b2);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.focus-more > summary::-webkit-details-marker { display: none; }
.focus-more > summary::before {
  content: "▸";
  color: var(--d52d2df);
  transition: transform 140ms ease;
}
.focus-more[open] > summary::before { transform: rotate(90deg); }
.focus-more > summary:hover { color: var(--ddce7ef); }
.focus-more > *:not(summary) { padding: 0 18px; }
.focus-more > *:last-child { padding-bottom: 18px; }

/* Delete lives beside the file it removes, and looks like what it is. */
.sheet-evidence-row { display: flex; align-items: stretch; gap: 8px; }
.sheet-evidence-row .sheet-evidence-item { flex: 1; min-width: 0; }
.sheet-evidence-remove {
  flex: 0 0 auto; min-width: 64px; min-height: 44px; align-self: center;
  padding: 0 12px; border: 1px solid var(--d4a2b33); border-radius: 10px;
  background: var(--drgba-74-25-33-35); color: var(--de8a0a8); font: inherit; font-size: 12px;
  font-weight: 600; cursor: pointer;
}
.sheet-evidence-remove:hover { border-color: var(--de8a0a8); }

.sheet-edit {
  flex: 0 0 auto; min-height: 40px; padding: 0 14px; margin-right: 8px;
  border: 1px solid var(--d2b425c); border-radius: 10px; background: var(--drgba-10-20-33-6);
  color: var(--db9cad6); font: inherit; font-size: 13px; cursor: pointer;
}
.sheet-edit:hover { border-color: var(--d52d2df); color: var(--dedf4f7); }

/* The processing queue reports itself quietly, beside the captures it concerns. */
.focus-vr-note {
  margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--drgba-255-255-255-07);
  color: var(--d8ba0b2); font-size: 12px; line-height: 1.5;
}

/* What appeared since last time — the answer a single capture cannot give. */
.sheet-change { border-left: 2px solid var(--d52d2df); padding-left: 14px; }
.sheet-change-headline { margin: 0 0 8px; color: var(--dedf4f7); font-size: 15px; font-weight: 600; line-height: 1.35; }
.sheet-change-list { list-style: none; padding-left: 0; margin: 10px 0 6px; }
.sheet-change-list li { margin-bottom: 6px; color: var(--ddce7ef); font-size: 13px; line-height: 1.5; }
.sheet-change-list li b { display: inline-block; min-width: 18px; font-weight: 700; }
.sheet-change-list.appeared li b { color: var(--d6fd8a8); }
.sheet-change-list.gone li b { color: var(--de8b070); }
.sheet-change-list li em { color: var(--d7f96aa); font-style: normal; font-size: 12px; }
.sheet-change-empty { margin: 6px 0 0; color: var(--d8ba0b2); font-size: 12px; line-height: 1.5; }

/* Work and money, one row per kind of work. */
.focus-money-card { margin: 18px 0; padding: 18px; border: 1px solid var(--d1c2c3c); border-radius: 14px; background: var(--drgba-10-20-33-5); }
.focus-money-card header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.focus-money-card h3 { margin: 0; font-size: 17px; }
.money-headline { margin: 0 0 14px; color: var(--db9cad6); font-size: 14px; line-height: 1.5; }
.money-headline.alarm { color: var(--de8b070); font-weight: 600; }
.money-rows { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.money-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; min-height: 52px; padding: 8px 12px; border: 1px solid var(--d22364a);
  border-left: 3px solid var(--d22364a); border-radius: 10px; background: var(--drgba-10-20-33-6);
  color: var(--ddce7ef); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
}
.money-row:hover { border-color: var(--d52d2df); }
.money-row.tone-ok { border-left-color: var(--d6fd8a8); }
.money-row.tone-ask { border-left-color: var(--d7f96aa); }
.money-row.tone-alarm { border-left-color: var(--de8b070); background: var(--drgba-232-176-112-07); }
.money-row-work { flex: 1; min-width: 0; }
.money-row-work small { display: block; margin-top: 2px; color: var(--d7f96aa); font-size: 11px; }
.money-row-amount { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; }
.money-row-amount em { color: var(--d7f96aa); font-style: normal; font-weight: 400; font-size: 12px; }
.money-row-amount b { color: var(--de8b070); font-size: 12px; }
.money-dialog .dialog-form { max-width: 460px; }
/* A question a person reads, not a form label they decode. The dialog's own
   uppercase label style is deliberately overridden here. */
.money-question { display: block; margin-bottom: 16px; text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--dedf4f7); }
.money-question-head b { display: block; font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--dedf4f7); text-transform: none; letter-spacing: 0; }
.money-question-head small { display: block; margin: 3px 0 8px; color: var(--d7f96aa); font-size: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.money-question input { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid var(--d35506a); border-radius: 10px; background: var(--drgba-4-9-15-6); color: var(--dedf4f7); font: inherit; font-size: 16px; }
.cost-recorded { margin: 4px 0 10px; }
.cost-recorded h4 { margin: 0 0 6px; font-size: 12px; color: var(--d8ba0b2); }
.cost-recorded ul { margin: 0; padding-left: 16px; color: var(--ddce7ef); font-size: 13px; }
.cost-recorded li { margin-bottom: 4px; }

/* Work against money against paper. */
.sheet-ledger { border-left: 2px solid var(--d6fd8a8); padding-left: 14px; }
.ledger-table { width: 100%; border-collapse: collapse; margin: 10px 0 6px; }
.ledger-table td { border-bottom: 1px solid var(--d1c2c3c); padding: 8px 6px 8px 0; vertical-align: top; font-size: 13px; color: var(--ddce7ef); }
.ledger-work small { display: block; margin-top: 2px; color: var(--d7f96aa); font-size: 11px; }
.ledger-amount { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.ledger-table em { color: var(--d7f96aa); font-style: normal; font-size: 12px; }
.ledger-doc b { color: var(--de8b070); font-weight: 600; }
.ledger-actions { white-space: nowrap; text-align: right; }
.ledger-actions .mini-button { margin-left: 4px; min-height: 32px; }
.ledger-actions .mini-button.ask { border-color: var(--de8b070); color: var(--de8b070); }

.money-dialog menu { display: flex; gap: 10px; justify-content: flex-end; margin: 6px 0 0; padding: 0; }
.money-dialog menu button { min-height: 46px; padding: 0 20px; border-radius: 10px; font-size: 14px; }

/* Building → room, the only way a file learns where it belongs. */
.room-picker { margin-bottom: 18px; padding: 16px; border: 1px solid var(--d1c2c3c); border-radius: 14px; background: var(--drgba-10-20-33-5); }
.room-picker .eyebrow { margin: 0 0 10px; }
.room-picker-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.room-picker label { display: block; margin: 0; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.room-picker select {
  width: 100%; min-height: 48px; margin-top: 6px; padding: 0 10px;
  border: 1px solid var(--d35506a); border-radius: 10px; background: var(--drgba-4-9-15-6);
  color: var(--dedf4f7); font: inherit; font-size: 15px; text-transform: none; letter-spacing: 0;
}
.room-picker-note { margin: 10px 0 0; color: var(--d8ba0b2); font-size: 12px; line-height: 1.5; }
.room-picker-note.warn { color: var(--de8b070); }
.room-picker > .focus-primary-action { margin-top: 14px; width: 100%; }
@media (max-width: 520px) { .room-picker-fields { grid-template-columns: 1fr; } }

/* The quick drop box used to end here: files stored, a code printed, and no
   sentence anywhere saying what had happened to them or where the rest of the
   product was. Somebody uploaded plans and two 360 captures and was left
   looking at a page with one button on it. */
.simple-next {
  margin: 26px 0 0;
  padding: 18px 20px;
  border: 1px solid var(--drgba-72-211-232-0-22);
  border-radius: 12px;
  background: var(--drgba-72-211-232-0-05);
  display: grid;
  gap: 14px;
  justify-items: start;
}
.simple-next p { margin: 0; color: var(--d9fb4c4); font-size: 14px; line-height: 1.55; }
.simple-next .primary-button { width: 100%; }
@media (min-width: 620px) { .simple-next .primary-button { width: auto; } }

/* The front door lists two kinds of project. They behave completely differently
   and used to be indistinguishable, so each group now says what it is and what
   opening it gives you. */
.simple-recent-group { margin-bottom: 18px; }
.simple-recent-group:last-child { margin-bottom: 0; }
.simple-recent-kind {
  margin: 0 0 8px;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--d6f8797);
  display: grid;
  gap: 3px;
}
.simple-recent-kind small {
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--d55697a);
}
.simple-intake-difference {
  margin: 14px 0 0;
  max-width: 52ch;
  font-size: 13px;
  line-height: 1.55;
  color: var(--d6f8797);
}

/* A sentence that names the next step should be the next step. */
.room-picker-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, var(--d5bd8ce));
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.room-picker-link:hover { color: var(--dfff); }

/* A roadmap step that cannot be opened yet still answers when pressed, so it
   behaves like something pressable rather than like dead paint. */
.focus-roadmap li.answers { cursor: pointer; }
.focus-roadmap li.answers:hover,
.focus-roadmap li.answers:focus-visible { background: var(--drgba-255-255-255-0-04); outline: none; }

/* The way forward when the AI cannot read a room yet. Not an error panel — the
   evidence is safe, it just is not readable in this form today. */
.focus-processing-alt {
  margin: 0; padding: 13px 15px; border-radius: 11px;
  background: var(--drgba-91-216-206-0-07); border: 1px solid var(--drgba-91-216-206-0-18);
  color: var(--db9cdd9); font-size: 14px; line-height: 1.6;
}

/* A project row does two things now: open it, or take it off the list. The
   remove control is deliberately quiet — it is the rarer action, and a
   destructive-looking button next to every project invites the wrong click. */
.property-directory-card { position: relative; padding: 0; }
.property-open {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 78px;
  padding: 20px 24px;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.property-remove {
  align-self: stretch;
  padding: 0 18px;
  border: 0;
  border-left: 1px solid var(--line);
  background: none;
  color: var(--d6f8797);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  transition: 140ms ease;
}
.property-remove:hover,
.property-remove:focus-visible { background: var(--drgba-255-120-120-0-09); color: var(--dff9d9d); outline: none; }

/* Nothing was destroyed, so the way back is on the same screen as the way out. */
.removed-projects {
  margin-top: 26px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--drgba-10-20-33-0-4);
}
.removed-projects > summary {
  padding: 15px 20px;
  cursor: pointer;
  font-size: 14px;
  color: var(--d93a7b6);
  list-style: none;
}
.removed-projects > summary::-webkit-details-marker { display: none; }
.removed-projects > summary::before { content: "▸ "; color: var(--d6f8797); }
.removed-projects[open] > summary::before { content: "▾ "; }
.removed-project {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  border-top: 1px solid var(--line);
}
.removed-project strong { display: block; font-size: 15px; }
.removed-project small { color: var(--d6f8797); font-size: 12.5px; }

/* Finding things in the record. One field, always in reach inside a project. */
.focus-search { position: relative; flex: 1 1 320px; max-width: 460px; margin: 0 16px; }
.focus-search input {
  width: 100%;
  padding: 9px 14px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--drgba-255-255-255-0-04);
  color: var(--text);
  font: inherit;
  font-size: 14px;
}
.focus-search input::placeholder { color: var(--d6f8797); }
.focus-search input:focus-visible { outline: none; border-color: var(--cyan); background: var(--drgba-255-255-255-0-06); }
.focus-search-results {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 40;
  max-height: min(62vh, 520px);
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  box-shadow: 0 24px 60px var(--drgba-0-0-0-0-55);
}
.focus-search-note { margin: 0; padding: 16px 18px; color: var(--d93a7b6); font-size: 14px; line-height: 1.55; }
.focus-search-hit {
  display: block;
  width: 100%;
  padding: 13px 18px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.focus-search-hit:last-child { border-bottom: 0; }
.focus-search-hit:hover,
.focus-search-hit:focus-visible { background: var(--drgba-82-210-223-0-08); outline: none; }
.focus-search-hit .search-kind {
  display: block;
  margin-bottom: 3px;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--d6f8797);
}
.focus-search-hit strong { display: block; font-size: 15px; line-height: 1.4; }
.focus-search-hit small { display: block; margin-top: 2px; color: var(--d93a7b6); font-size: 13px; }
/* An interpretation is a suggestion until a person confirms it, and a search
   result is exactly where that could be forgotten. */
.focus-search-hit em { display: block; margin-top: 5px; font-style: normal; font-size: 12px; }
.search-unconfirmed { color: var(--dffcf9a); }
.search-confirmed { color: var(--d7fd6a8); }
@media (max-width: 720px) {
  .focus-search { flex-basis: 100%; order: 3; margin: 10px 0 0; max-width: none; }
}

/* The link to open a capture in a headset. Shown rather than announced: a
   clipboard that refused leaves nothing to paste, and a toast that fades leaves
   nothing to read. */
.headset-link {
  max-width: 520px; width: calc(100% - 36px);
  border: 1px solid var(--line); border-radius: 14px;
  background: var(--panel); color: var(--text); padding: 22px 24px;
}
.headset-link::backdrop { background: var(--drgba-2-8-14-0-72); }
.headset-link h3 { margin: 0 0 8px; font-size: 19px; }
.headset-link p { margin: 0 0 14px; color: var(--d93a7b6); font-size: 14px; line-height: 1.6; }
.headset-link input {
  width: 100%; padding: 11px 13px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--drgba-255-255-255-0-04);
  color: var(--text); font: inherit; font-size: 13px;
}
.headset-link-actions { display: flex; gap: 10px; margin-top: 14px; }
.headset-link-actions button { flex: 1; }
.headset-link-note { margin: 16px 0 0; font-size: 13px; color: var(--d6f8797); }

/* Every file in the project, with the room it sits in.
   Built because "31 files in this project" was a number with nothing under it.
   The room is the loudest column after the name, because which room a file is
   in is the thing that goes wrong and the thing nobody could see. */
.focus-file-list-open {
  margin: 12px 0 0; padding: 0; border: 0; background: none;
  color: var(--cyan); font: inherit; font-size: 13px; cursor: pointer; text-align: left;
}
.focus-file-list-open:hover { text-decoration: underline; }

.focus-files { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center; padding: 18px; background: var(--drgba-4-9-15-72); }
.focus-files[hidden] { display: none; }
.focus-files-panel {
  width: min(880px, 100%); max-height: min(88vh, 900px);
  display: flex; flex-direction: column;
  border: 1px solid var(--line); border-radius: 14px; background: var(--panel); box-shadow: var(--shadow);
}
.focus-files-panel header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 20px 22px 14px; border-bottom: 1px solid var(--line-soft); }
.focus-files-panel header h2 { margin: 4px 0 0; font-size: 19px; }
.focus-files-close { min-width: 40px; min-height: 40px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel-2); color: var(--text); font-size: 18px; cursor: pointer; }
.focus-files-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 14px 22px; border-bottom: 1px solid var(--line-soft); }
.focus-files-tools input[type="search"] { flex: 1 1 240px; min-height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel-2); color: var(--text); font: inherit; font-size: 14px; }
.focus-files-tools label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.focus-files-list { flex: 1; min-height: 0; overflow-y: auto; }
.focus-file-row { display: grid; grid-template-columns: minmax(0, 1fr) 190px auto; gap: 14px; align-items: center; padding: 13px 22px; border-bottom: 1px solid var(--line-soft); }
.focus-file-row:last-child { border-bottom: 0; }
.focus-file-name { min-width: 0; }
.focus-file-name strong { display: block; font-size: 14px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.focus-file-name small { color: var(--muted); font-size: 11px; }
/* Not an error by itself — the same capture legitimately appears in two rooms —
   but it is the shape of every filing mistake so far. */
.focus-file-dupe { color: var(--amber); }
.focus-file-room { min-height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel-2); color: var(--text); font: inherit; font-size: 12px; max-width: 100%; }
.focus-file-actions { display: flex; gap: 8px; justify-self: end; }
.focus-file-actions button { min-height: 36px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel-2); color: var(--text); font: inherit; font-size: 12px; cursor: pointer; }
.focus-file-actions button:hover:not(:disabled) { border-color: var(--cyan); color: var(--cyan); }
.focus-file-actions button:disabled { opacity: .45; cursor: default; }
.focus-files-note { margin: 0; padding: 12px 22px; border-top: 1px solid var(--line-soft); color: var(--muted); font-size: 11px; }
.focus-files-empty { padding: 40px 22px; text-align: center; color: var(--muted); }

@media (max-width: 720px) {
  .focus-file-row { grid-template-columns: minmax(0, 1fr); }
  .focus-file-actions { justify-self: start; }
}
/* Said out loud when the screen is showing a capture from a room other than the
   one somebody is standing in. Silently swapping one room for another is how
   "show me the result" answered with a different floor of the building. */
.focus-vr-elsewhere { margin: 10px 0 0; color: var(--amber); font-size: 12px; }

/* The record, examined. Findings sit above the list because they are the
   reason to have opened it; each carries its remedy, because a warning without
   one is a chore assigned to the reader. Amber, not red: nothing is broken,
   something needs a decision. */
.focus-files-findings { border-bottom: 1px solid var(--line-soft); background: var(--drgba-56-44-21-18); }
.focus-files-findings[hidden] { display: none; }
.focus-findings-head { margin: 0; padding: 12px 22px 6px; color: var(--amber); font-size: 12px; }
.focus-findings-clear { margin: 0; padding: 12px 22px; color: var(--green); font-size: 12px; }
.focus-finding { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 10px 22px; }
.focus-finding strong { display: block; font-size: 13px; font-weight: 500; }
.focus-finding small { color: var(--muted); font-size: 11px; }
.focus-finding button { min-height: 34px; padding: 0 12px; border: 1px solid var(--drgba-239-193-120-45); border-radius: 9px; background: var(--drgba-56-44-21-4); color: var(--amber); font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.focus-finding button:hover { border-color: var(--amber); }
@media (max-width: 720px) { .focus-finding { grid-template-columns: minmax(0, 1fr); } .focus-finding button { justify-self: start; } }
/* The finding being worked on: the panel is this and the way back, so pressing
   a remedy visibly changed the screen. */
.focus-finding.working { background: var(--drgba-56-44-21-32); }

/* Owner access: the emailed, revocable key to one project's published record. */
.owner-view-access { margin-top: 14px; border-top: 1px solid var(--drgba-255-255-255-08); padding-top: 14px; display: grid; gap: 10px; }
.owner-view-access .eyebrow { margin: 0; }
#owner-invite-form { display: flex; gap: 8px; flex-wrap: wrap; }
#owner-invite-form input { flex: 1 1 180px; min-width: 0; background: var(--drgba-255-255-255-04); border: 1px solid var(--drgba-255-255-255-14); border-radius: 8px; padding: 9px 12px; color: inherit; }
.owner-grant-row { display: flex; align-items: baseline; gap: 10px; font-size: 12px; }
.owner-grant-row small { color: var(--drgba-255-255-255-5); }
.owner-grant-row .text-button { margin-left: auto; }
.owner-view-access > small { color: var(--drgba-255-255-255-45); line-height: 1.5; }
