:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;--bg:#0f1117;--rail:#12151b;--sidebar:#181c24;--surface:#1d222b;--surface2:#252b35;--panel:#191d25;--hover:#282e39;--border:#2d343f;--border2:#363e49;--text:#f0f3f6;--muted:#9da6b3;--quiet:#6f7b8b;--accent:#53dec0;--accent-weak:#203e38;--accent-ink:#092c25;--danger:#ee857f;--shadow:0 26px 70px #0007;font-synthesis:none}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px;letter-spacing:-.01em}button,input,textarea{font:inherit}button{cursor:pointer}a{color:var(--accent)}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.52;cursor:not-allowed}svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.hide{display:none!important}.page-loading{height:100dvh;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted)}.brand-mark{display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);width:40px;height:40px;border-radius:13px;font-size:22px;font-weight:900;letter-spacing:-.16em;padding-right:4px}.btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border2);border-radius:9px;background:var(--surface);color:var(--text);padding:8px 13px;font-weight:550;transition:background .15s,border-color .15s}.btn:hover{background:var(--hover)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.btn-primary:hover{background:#8bf2dc}.btn-quiet{background:transparent;border-color:transparent}.btn-small{min-height:31px;padding:5px 9px;font-size:12px}.icon-btn{width:36px;height:36px;padding:0}.text-muted{color:var(--muted)}.eyebrow{color:var(--quiet);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.status-dot{height:7px;width:7px;display:inline-block;border-radius:50%;background:var(--accent)}.status-dot.offline{background:#e6ae6a}.status-dot.disconnected{background:#f2847a}.tag{display:inline-flex;gap:7px;align-items:center;padding:5px 9px;border-radius:7px;background:#1e3b35;color:#80ebce;font-size:11px;font-weight:650}.tag.warning{background:#443526;color:#ffce95}.tag.neutral{background:#2b313b;color:#c9d3e0}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(30px);background:#e9f9f3;color:#0e2b24;padding:11px 16px;border-radius:9px;box-shadow:var(--shadow);opacity:0;transition:.2s;z-index:100;max-width:min(460px,92vw)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{background:#ffe5df;color:#682a21}
/* onboarding */
.auth-shell{min-height:100dvh;display:grid;grid-template-columns:1.1fr 0.9fr}.auth-story{position:relative;overflow:hidden;padding:50px max(40px,8vw);background:radial-gradient(ellipse at 86% 18%,#284942 0%,transparent 38%),radial-gradient(ellipse at 15% 90%,#242d41 0%,transparent 45%),#151922;display:flex;flex-direction:column}.auth-story:after{content:"";position:absolute;bottom:-240px;right:-110px;border:1px solid #53dec025;border-radius:50%;width:660px;height:660px;box-shadow:0 0 0 95px #53dec00b,0 0 0 190px #53dec007;pointer-events:none}.brand{display:flex;align-items:center;gap:11px;font-weight:760;letter-spacing:-.045em;font-size:21px}.auth-story .hero{position:relative;z-index:1;margin:auto 0;max-width:690px}.auth-story h1{font-size:clamp(44px,5vw,76px);line-height:1.05;letter-spacing:-.075em;margin:20px 0 26px;font-weight:740}.auth-story h1 span{color:var(--accent)}.auth-story p{max-width:465px;color:#b3bdc9;line-height:1.65;font-size:17px}.auth-story .foot{color:#8696a5;font-size:12px}.auth-form-area{display:flex;align-items:center;justify-content:center;padding:34px 28px}.auth-card{width:min(400px,100%)}.auth-card h2{font-size:30px;letter-spacing:-.05em;margin:16px 0 8px}.auth-card p{line-height:1.5;color:var(--muted);margin:0 0 28px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{font-size:12px;color:#c6cdd7;font-weight:600}.field input,.field textarea{width:100%;min-height:44px;border-radius:8px;background:var(--surface);border:1px solid var(--border2);color:var(--text);padding:10px 12px;outline:none}.field textarea{resize:vertical;min-height:76px}.field input:focus,.field textarea:focus{border-color:var(--accent)}.auth-card .btn-primary{width:100%;min-height:45px;margin:6px 0 18px}.auth-switch{font-size:13px;text-align:center;color:var(--muted)}.auth-switch button{background:none;color:var(--accent);border:none;padding:4px;font-weight:600}.auth-note{display:flex;gap:10px;font-size:12px;color:var(--muted);padding:13px;background:var(--surface);border:1px solid var(--border);border-radius:9px;margin-top:22px;line-height:1.55}
/* app shell */
.shell{height:100dvh;display:grid;grid-template-columns:66px 258px minmax(300px,1fr);overflow:hidden}.rail{display:flex;flex-direction:column;align-items:center;padding:19px 9px 15px;background:var(--rail);border-right:1px solid var(--border);gap:12px}.rail .brand-mark{height:39px;width:39px;border-radius:12px;margin-bottom:24px}.rail-button{height:42px;width:44px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:#8c96a4;border-radius:11px}.rail-button svg{width:20px;height:20px}.rail-button:hover{background:var(--hover);color:var(--text)}.rail-button.active{background:#243b37;color:var(--accent)}.rail-spacer{flex:1}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#39475b;color:#dce8f7;font-weight:750;font-size:11px;flex:none}.avatar.accent{background:#30584c;color:#abfae6}.avatar.purple{background:#51405d;color:#e7d4f4}.avatar.amber{background:#594a37;color:#ffdfb2}.workspace-panel{display:flex;flex-direction:column;min-height:0;background:var(--sidebar);border-right:1px solid var(--border)}.workspace-head{height:78px;padding:21px 16px 15px;border-bottom:1px solid var(--border)}.workspace-title{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px;font-weight:750;letter-spacing:-.03em}.workspace-sub{font-size:11px;color:var(--quiet);margin-top:5px}.search-wrap{position:relative;margin:16px 13px 17px}.search-wrap svg{position:absolute;top:10px;left:10px;width:17px;color:#8f99a6}.search-wrap input{background:#252a34;border:1px solid #303742;border-radius:9px;min-height:37px;padding:8px 9px 8px 35px;width:100%;color:var(--text);font-size:12px}.search-wrap input::placeholder{color:#8591a0}.side-section{display:flex;align-items:center;justify-content:space-between;margin:8px 18px 10px;font-size:11px;font-weight:750;color:#b2bcc8}.sidebar-items{overflow:auto;min-height:0;flex:1;padding:0 8px 20px}.channel-btn{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:10px 11px;min-height:40px;background:transparent;color:#aab4c1;border:1px solid transparent;border-radius:8px;font-size:13px}.channel-btn:hover{background:#242a34;color:var(--text)}.channel-btn.selected{background:#2a3737;color:#f2faf7}.channel-btn .hash{color:#82909d;font-size:20px;line-height:1;transform:translateY(-1px);font-weight:400}.channel-btn.selected .hash{color:var(--accent)}.channel-btn .channel-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-bottom{padding:13px;border-top:1px solid var(--border)}.edge-mini{padding:11px;background:#222c2d;border:1px solid #30504a;border-radius:10px}.edge-mini strong{font-size:12px;font-weight:650}.edge-mini small{display:block;color:#92aaa4;margin-top:6px;font-size:11px;line-height:1.4}
.main{display:flex;flex-direction:column;min-width:0;background:var(--panel)}.main-header{height:78px;min-height:78px;padding:15px 30px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:20px}.header-title{display:flex;gap:12px;align-items:center;min-width:0}.header-icon{display:grid;place-items:center;border:1px solid var(--border2);width:39px;height:39px;border-radius:11px;color:#a6b4c3}.main-header h2{margin:0;font-size:17px;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-header p{color:var(--quiet);margin:4px 0 0;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:8px}.mobile-only{display:none}.conversation{min-height:0;flex:1;overflow:auto;padding:24px 6.4% 10px;scroll-behavior:smooth}.channel-intro{border-bottom:1px solid var(--border);margin:20px 0 22px;padding-bottom:30px}.channel-intro .intro-icon{display:grid;place-items:center;width:49px;height:49px;border:1px solid var(--border2);border-radius:14px;color:var(--accent);background:#24322f;margin-bottom:16px}.channel-intro h3{font-size:24px;letter-spacing:-.05em;margin:0 0 9px}.channel-intro p{color:var(--muted);line-height:1.6;margin:0}.date-separator{display:flex;align-items:center;gap:15px;color:#7f8a98;font-size:11px;margin:19px 0 23px}.date-separator:before,.date-separator:after{content:"";height:1px;background:var(--border);flex:1}.message{display:flex;gap:13px;padding:12px 0;border-radius:8px;position:relative}.message .avatar{margin-top:2px}.message-body{min-width:0;flex:1}.message-meta{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap}.message-meta strong{font-weight:700;font-size:13px}.message-meta time{font-size:10px;color:#768392}.message-body p{margin:7px 0 0;line-height:1.65;font-size:13px;color:#d5dae1;overflow-wrap:anywhere;white-space:pre-wrap}.message-actions{opacity:0;margin-left:auto}.message:hover .message-actions,.message:focus-within .message-actions{opacity:1}.message.is-reply{margin-left:35px;border-left:2px solid var(--border);padding-left:12px}.reply-link{color:#73dec5;font-size:11px;display:flex;align-items:center;gap:5px;margin-top:10px;background:transparent;border:0;padding:1px 0}.reply-label{font-size:11px;color:var(--quiet);margin-bottom:4px}.composer-wrap{padding:12px 5.8% 22px}.reply-banner{display:flex;align-items:center;justify-content:space-between;border:1px solid #356457;border-bottom:0;border-radius:10px 10px 0 0;padding:9px 12px;background:#243c36;font-size:12px;color:#a8e8d6}.composer{background:#252a34;border:1px solid #3a444f;border-radius:11px;overflow:hidden}.composer:focus-within{border-color:#64baa5}.composer textarea{resize:none;width:100%;border:0;background:transparent;color:var(--text);padding:16px 18px 5px;min-height:69px;max-height:190px;outline:0;display:block;line-height:1.5}.composer textarea::placeholder{color:#7c8896}.composer-footer{display:flex;align-items:center;justify-content:space-between;padding:2px 9px 9px 16px;color:#7d8999;font-size:11px}.composer-footer .btn{min-height:32px}.queue-count{color:#d2b181}.footer-status{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--border);padding:9px 25px;min-height:39px;background:#171b22;color:#8996a5;font-size:11px}.footer-status .left{display:flex;gap:9px;align-items:center}.footer-status .status-dot{width:6px;height:6px}.empty{display:flex;align-items:center;justify-content:center;flex:1;text-align:center;padding:40px;min-height:0}.empty-card{max-width:360px}.empty-art{margin:0 auto 20px;display:grid;place-items:center;width:82px;height:82px;border-radius:25px;background:#243c36;color:var(--accent)}.empty-art svg{width:36px;height:36px}.empty h3{font-size:22px;letter-spacing:-.05em;margin:0 0 10px}.empty p{color:var(--muted);line-height:1.6;margin:0 0 20px}.empty-header{font-size:23px;letter-spacing:-.045em;margin:0}.detail-screen{flex:1;overflow-y:auto;padding:30px max(32px,7%)}.detail-kicker{color:var(--accent);font-weight:750;text-transform:uppercase;letter-spacing:.13em;font-size:10px}.detail-screen h2{font-size:29px;letter-spacing:-.055em;margin:10px 0}.detail-screen>p{color:var(--muted);max-width:640px;line-height:1.65}.list-card{margin-top:25px;border:1px solid var(--border);border-radius:13px;overflow:hidden;max-width:780px}.list-row{padding:14px 17px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.list-row .copy{flex:1;min-width:0}.list-row strong{display:block;font-size:13px}.list-row small{display:block;color:var(--quiet);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radio-art{width:100px;height:100px;border-radius:50%;display:grid;place-items:center;color:#80e8d2;border:2px solid #4bd9b6;background:radial-gradient(circle,#325c52,#1d302c);box-shadow:0 0 0 15px #2d4a403d,0 0 0 35px #2d4a4021;margin:48px auto 54px}.radio-art svg{height:40px;width:40px}.notice{padding:14px 17px;background:#242d33;border:1px solid #394751;border-radius:11px;color:#bfccd6;font-size:12px;line-height:1.6;max-width:780px}.settings-table{width:100%;max-width:780px;margin-top:24px;border-collapse:collapse;font-size:13px}.settings-table td{border-bottom:1px solid var(--border);padding:14px 8px}.settings-table td:first-child{color:var(--quiet);width:35%}
/* modal */
.overlay{position:fixed;inset:0;background:#030609bb;backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;padding:18px;z-index:50}.dialog{background:#20252e;border:1px solid #46505a;border-radius:16px;box-shadow:var(--shadow);width:min(460px,100%);padding:23px}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.dialog h2{font-size:21px;margin:0;letter-spacing:-.045em}.dialog p{color:var(--muted);line-height:1.5;font-size:12px;margin:0 0 22px}.dialog-actions{display:flex;gap:9px;justify-content:flex-end}.dialog select{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border2);padding:10px;border-radius:8px;min-height:42px}.mobile-shade{display:none}
@media(max-width:1040px){.shell{grid-template-columns:57px 215px minmax(300px,1fr)}.rail{padding-left:6px;padding-right:6px}.rail-button{width:41px}.main-header{padding:14px 21px}.conversation{padding-left:5%;padding-right:5%}.composer-wrap{padding-left:4%;padding-right:4%}}
@media(max-width:760px){.auth-shell{grid-template-columns:1fr}.auth-story{min-height:210px;padding:25px 25px 20px}.auth-story .hero{margin:22px 0 8px}.auth-story h1{font-size:32px;letter-spacing:-.055em;margin:8px 0}.auth-story p{font-size:13px;margin-bottom:12px}.auth-story .foot{display:none}.auth-form-area{padding:28px 23px 45px}.auth-card h2{font-size:24px}.shell{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 61px}.rail{grid-column:1;grid-row:2;flex-direction:row;justify-content:space-around;border-right:0;border-top:1px solid var(--border);padding:8px 12px;gap:8px;order:2}.rail .brand-mark,.rail-spacer,.rail .avatar{display:none}.rail-button{height:42px;flex:1;max-width:75px}.workspace-panel{position:fixed;z-index:21;inset:0 auto 61px 0;width:min(310px,83vw);box-shadow:var(--shadow);transform:translateX(-105%);transition:transform .2s}.shell.sidebar-open .workspace-panel{transform:translateX(0)}.mobile-shade{display:block;position:fixed;inset:0;background:#0008;z-index:19;opacity:0;pointer-events:none;transition:opacity .2s}.shell.sidebar-open .mobile-shade{opacity:1;pointer-events:auto}.main{grid-column:1;grid-row:1;min-height:0}.mobile-only{display:inline-flex}.main-header{padding:12px 13px;height:66px;min-height:66px}.main-header h2{font-size:15px}.header-icon{width:35px;height:35px}.header-actions .btn-label{display:none}.conversation{padding:14px 17px 5px}.channel-intro{margin:12px 0 20px;padding-bottom:22px}.channel-intro h3{font-size:21px}.composer-wrap{padding:10px 12px 13px}.composer textarea{min-height:57px}.message-body p{font-size:13px}.message-actions{opacity:1}.footer-status{padding:7px 12px;min-height:32px}.footer-status .secondary-status{display:none}.detail-screen{padding:23px 20px}.detail-screen h2{font-size:24px}.radio-art{margin:40px auto 48px}.auth-note{margin-top:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.channel-btn[hidden]{display:none!important}

@media(max-width:760px){.desktop-help{display:none}.composer-footer{gap:8px}.composer-footer>span{font-size:10px;color:var(--quiet)}}


/* R0.6 — private message navigation */
.dm-section{margin-top:13px;border-top:1px solid var(--border);padding-top:14px}.dm-items{min-height:38px}.dm-hint{color:var(--quiet);font-size:11px;padding:4px 16px}.dm-avatar{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:7px;background:#2c5148;color:#91efd4;font-size:9px;font-weight:750}.dm-items .channel-btn{gap:9px}.dm-items .channel-btn.selected .dm-avatar{background:#3a8170;color:white}

/* Hide channel membership control for strictly two-person direct messages */
[data-action="channel-members"][hidden]{display:none!important}

/* R0.7 — author-scoped message editing and tombstones */
.message-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:166px}
.message-actions .btn{font-size:11px;padding:4px 6px;min-height:30px}
.message-edited{color:var(--quiet);font-size:10px;display:inline-block;margin-top:4px}
.message-body p.message-tombstone{font-style:italic;color:#85909d}
.message-delete-action{color:#e8a3a1}.message-delete-action:hover{color:#ffb5b1}
.message-danger-btn{color:#fff;background:#973d3d;border-color:#a95353}.message-danger-btn:hover{background:#ac4646}
#edit-message-text{width:100%;min-height:100px;resize:vertical;color:var(--text);background:var(--surface);border:1px solid var(--border2);border-radius:8px;padding:10px;font:inherit}
@media(max-width:760px){.message-actions{max-width:145px}.message-actions .btn{font-size:10px;padding:4px 5px}}

/* R0.8 — message reactions; same affordance in channels and participant-only DMs */
.reaction-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.reaction-chip{border:1px solid #3f4b56;border-radius:7px;background:#262d37;color:#d8e4e9;min-height:29px;padding:4px 9px;display:inline-flex;align-items:center;gap:7px;font-size:13px}
.reaction-chip.mine{background:#203e38;border-color:#5acdb1;color:#9ff6df}
.reaction-chip span{font-size:11px;font-variant-numeric:tabular-nums}
.reaction-chip:hover,.reaction-choice:hover{border-color:#79e5cd;background:#2c4b44}
.reaction-picker{display:flex;flex-wrap:wrap;gap:9px;padding:6px 0 10px}
.reaction-choice{border:1px solid var(--border2);border-radius:12px;background:var(--surface2);min-width:55px;min-height:54px;font-size:26px}
@media(max-width:760px){.reaction-picker{justify-content:space-between}.reaction-choice{min-width:44px;min-height:48px}.reaction-chip{min-height:33px}}
/* Mobile actions stay on their own touch row rather than wrapping beside text. */
@media(max-width:760px){.message{flex-wrap:wrap;gap:7px 11px}.message-body{flex:1 1 calc(100% - 48px)}.message-actions{margin-left:43px;max-width:calc(100% - 43px);width:calc(100% - 43px);justify-content:flex-start;flex-wrap:nowrap;gap:6px}.message-actions .btn{min-height:32px;padding:5px 7px}.message-quick-react{font-size:15px!important}}

/* R0.9 v0.3 product reconciliation: Command site registry (not a simulated map). */
.site-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#244138;color:#73e5c9;flex:0 0 38px}.site-mark svg{width:19px;height:19px}.command-empty{margin-top:28px;padding:32px;background:#1e252c;max-width:780px;border-radius:14px;display:flex;align-items:flex-start;flex-direction:column;gap:10px}.command-empty strong{font-size:18px;letter-spacing:-.03em}.command-empty p{color:var(--muted);font-size:13px;line-height:1.6;max-width:470px}.command-empty .site-mark{width:54px;height:54px}.command-empty .site-mark svg{width:26px;height:26px}

/* R1.0 — site level, zone and planned post inventory; not an actual map or presence product. */
.command-layout{max-width:1250px}.command-breadcrumb{display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:var(--quiet);font-size:12px;margin-bottom:18px}.command-breadcrumb button{min-height:36px}.command-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:900px;margin:22px 0}.command-stats>div{padding:16px 18px;background:#222b33;border-radius:12px;display:flex;flex-direction:column;gap:6px}.command-stats strong{font-size:27px;line-height:1;font-variant-numeric:tabular-nums}.command-stats span{color:var(--muted);font-size:11px}.command-notice{margin-top:23px;margin-bottom:23px;max-width:900px}.command-list-link{width:100%;text-align:left;background:transparent;color:inherit;border:0;cursor:pointer;font:inherit}.command-list-link:hover,.command-list-link:focus-visible{background:#27332f}.command-level{margin:26px 0 30px;max-width:1020px}.command-level-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.command-level-head h3{font-size:21px;letter-spacing:-.04em;margin:5px 0}.command-level-head small{font-size:11px;color:var(--quiet)}.command-zone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:12px}.command-zone{padding:18px;border-radius:14px;background:#222d32;min-width:0}.zone-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.zone-title strong{font-size:15px}.zone-title small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.zone-count{flex-shrink:0;color:#8fe2c8;font-size:10px;padding:5px 8px;background:#25413a;border-radius:6px}.command-posts{margin-top:14px;margin-bottom:10px;border-top:1px solid #3b484c}.command-post{display:flex;justify-content:space-between;gap:12px;padding:11px 0;font-size:12px;border-bottom:1px solid #3b484c}.command-post span{color:#c7d3d6}.command-post strong{font-variant-numeric:tabular-nums;color:#9cebd6}.command-muted{font-size:12px;color:var(--quiet);line-height:1.5}.command-empty-zone{padding:22px 16px;background:#232a31;border-radius:12px}.command-zone>.btn{margin-top:12px}
@media(max-width:760px){.command-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.command-stats>div{padding:13px}.command-level-head{align-items:flex-start;flex-direction:column}.command-level-head .btn{min-height:39px}.command-zone-grid{grid-template-columns:1fr}.zone-title{gap:8px}}

/* R1.1 explicit human acknowledgment — no device-delivery claim */
.message-acknowledgments{display:inline-block;margin:3px 0 0 9px;padding:0;border:0;background:none;color:#66d9bc;font-size:11px;font-weight:550;cursor:pointer;text-align:left;} .message-acknowledgments:hover{text-decoration:underline;} .message-acknowledgments:focus-visible{outline:2px solid #66d9bc;outline-offset:3px;border-radius:2px;}
.message-ack-action:disabled{opacity:.62;cursor:default;color:#66d9bc;}
@media(max-width:430px){.message-ack-action{min-height:34px;}}

/* R1.2 property Command canvas: spatial shapes come from tenant-scoped records. */
.property-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;margin-top:24px;align-items:stretch;max-width:1200px}
.property-canvas-wrap{min-width:0;border-radius:16px;background:#1b282e;padding:16px;box-shadow:inset 0 0 0 1px #354349}
.property-canvas-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.property-canvas-heading strong{display:block;font-size:14px}.property-canvas-heading small{display:block;color:#9eafbb;font-size:11px;margin-top:3px}.property-canvas-heading>span{color:#8e9eaa;font-size:10px}
.property-canvas{display:block;width:100%;height:auto;max-height:480px;background:#202e34;border-radius:10px}.canvas-land{fill:#2e403c;stroke:#648b7f;stroke-width:.45;stroke-dasharray:1.3 1.1}.canvas-path{stroke:#647882;stroke-width:2.5;opacity:.3;fill:none}.property-shape rect{stroke-width:.4}.property-shape text{fill:#edf4f4;font-weight:650;pointer-events:none;paint-order:stroke;stroke:#122126;stroke-width:.2}.property-shape.area rect{fill:#315b4f;stroke:#74b79e}.property-shape.building rect{fill:#4e6577;stroke:#a8bfcb}.property-shape.building{cursor:pointer}.property-shape.building:hover rect,.property-shape.building.selected rect{stroke:#50e1bd;stroke-width:1}.property-shape:focus-visible rect{stroke:#50e1bd;stroke-width:1.5}
.property-legend{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:#adbfca;margin-top:12px}.property-legend span{display:inline-flex;align-items:center;gap:5px}.property-legend span:last-child{margin-left:auto;color:#8296a3}.property-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.legend-building{background:#4e6577}.legend-outdoor{background:#315b4f}
.property-aside{padding:20px;background:#212c32;border-radius:15px;min-width:0}.property-aside-head h3{font-size:16px;margin:0 0 5px}.property-aside-head small{color:#98a9b4;font-size:11px}.property-building{display:flex;align-items:center;width:100%;gap:10px;text-align:left;border:0;border-radius:10px;background:transparent;color:inherit;padding:11px 9px;cursor:pointer;margin-top:7px}.property-building.active,.property-building:hover{background:#2f4443}.property-building-icon{background:#2e4c46;color:#65debb;padding:10px;border-radius:9px}.property-building-icon svg{width:18px;height:18px}.property-building strong,.property-building small{display:block}.property-building strong{font-size:12px}.property-building small{font-size:10px;color:#a5b8bf;margin-top:4px}.property-aside-section{margin:20px 0 10px;color:#96a9b6;font-weight:700;font-size:10px;letter-spacing:.08em}.property-ground{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:12px}.property-ground svg{width:16px;height:16px;color:#61d7b2}.property-ground small{margin-left:auto;color:#9dabb4;font-size:10px}.property-aside-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.property-floors-head{max-width:1100px;margin-top:35px}.property-floors-actions{display:flex;gap:8px;flex-wrap:wrap}.property-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(max-width:940px){.property-layout{grid-template-columns:1fr}.property-aside{padding:16px}.property-canvas-heading>span{display:none}}@media(max-width:560px){.property-form-grid{grid-template-columns:1fr 1fr}.property-canvas-wrap{padding:10px}.property-legend{gap:8px}.property-legend span:last-child{margin-left:0}.property-aside-actions .btn{flex:1}}

/* R1.3 geographic overlay: coordinates are real WGS84; no basemap/provider dependencies. */
.geo-land{fill:#122827}.geo-site polygon{fill:#20443b;stroke:#62dbad;stroke-width:.65;stroke-dasharray:1 0.45}.geo-building polygon{fill:#526c7d;stroke:#a5c7d4;stroke-width:.55}.geo-outdoor polygon{fill:#315d46;stroke:#82cba6;stroke-width:.45}.geo-shape text{font-size:2.6px;fill:#f3f9f8;font-weight:650;paint-order:stroke;stroke:#23363c;stroke-width:.3px;pointer-events:none}.geo-shape.selected polygon{stroke:#63eed2;stroke-width:1.1}.geo-shape[data-action]{cursor:pointer}.geo-shape[data-action]:focus-visible polygon{stroke:#fff;stroke-width:1.1}.geo-canvas-wrap .property-canvas{background:#122827}.property-ground button{margin-left:auto}

/* R2.1: contextual conversations use Yardlight's existing action language. */
.place-conversation-button{margin:6px 0;min-height:32px;max-width:100%;white-space:normal;text-align:left;gap:5px}
.place-conversation-new{border-color:var(--sodium,#d68135);color:var(--sodium,#e2a063)}
.property-ground .place-conversation-button{margin:1px 4px}
@media(max-width:820px){.place-conversation-button{min-height:38px}}

/* R2.14 dedicated, opt-in two-browser PTT feasibility; never a certified operational radio. */
.radio-lab-panel{display:flex;flex-direction:column;gap:13px;padding:22px;background:#1f2b30;border:1px solid #3c5153;border-radius:16px;max-width:640px;margin:22px 0 18px}.radio-lab-panel label{font-size:13px;font-weight:700}.radio-lab-panel select{background:#112026;color:#ecf5f2;border:1px solid #466063;border-radius:10px;min-height:44px;padding:8px 12px;font-size:14px}.radio-lab-control{display:flex;flex-wrap:wrap;gap:10px}.radio-lab-panel p{font-size:14px;line-height:1.45;color:#b5cec8;margin:3px 0}.radio-lab-panel small{color:#a5b7b8;line-height:1.5;font-size:12px}.radio-lab-panel audio{width:100%;height:0;visibility:hidden}.radio-lab-panel #radio-lab-ptt{width:180px;height:180px;min-width:150px;max-width:100%;border-radius:50%;align-self:center;cursor:pointer;background:#365d55;color:#f2faf8;border:2px solid #61c9aa;font-weight:750;font-size:18px;touch-action:none;user-select:none}.radio-lab-panel #radio-lab-ptt.on-air{background:#a83e37;border-color:#f48d7b}.radio-lab-panel #radio-lab-ptt:disabled{opacity:.45;cursor:not-allowed}.radio-lab-panel #radio-lab-ptt:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(max-width:430px){.radio-lab-panel{padding:15px}.radio-lab-control>*{flex:1}}

/* R2.15: readable, self-contained feasibility diagnostics. Never claim playback from RTP counters. */
.radio-lab-diagnostics{border:1px solid #496266;border-radius:12px;padding:12px 14px;background:#14252a;display:flex;flex-direction:column;gap:8px}
.radio-lab-diagnostics strong{font-size:13px;color:#e8f1ed}
.radio-lab-diagnostics p{overflow-wrap:anywhere;color:#bbd6ce!important;line-height:1.5;margin:0!important}
.radio-lab-diagnostics button{align-self:flex-start;min-height:40px}

/* R2.16 observer-only acceptance: no safety-certified state colors. */
.radio-observation{margin-top:18px;padding:16px 18px;border:1px solid var(--stroke, #424851);border-radius:12px;background:rgba(160,175,188,.045)}
.radio-observation h3{font-size:15px;margin:0 0 10px}.radio-observation ol{padding-left:20px;margin:8px 0 15px;line-height:1.6;font-size:13px}.radio-observation li{margin-bottom:6px}.radio-observation label{display:block;font-size:13px;margin:10px 0 6px}.radio-observation input:not([type=checkbox]){max-width:290px;width:100%;min-height:38px;padding:8px;border:1px solid var(--stroke,#555);border-radius:7px;background:var(--surface,#1c222c);color:inherit}.radio-observation .radio-listen-check{display:flex;gap:10px;align-items:flex-start;line-height:1.45}.radio-observation .radio-listen-check input{margin-top:3px;flex-shrink:0}.radio-observation code{word-break:break-word}.radio-observation p{font-size:12px}

/* R2.16 explicit previous/current progress and release evidence */
.progress-build-change{margin:10px 0 4px;font-size:12px;line-height:1.6;color:var(--text-muted,#aeb9c5);padding:10px 12px;border-radius:8px;background:rgba(255,255,255,.035)}.progress-build-change strong{color:var(--text,#e7eaf0)}.progress-build-change p{margin:5px 0 0}.progress-delta{white-space:normal!important;text-align:right}
