:root{--ink:#172936;--muted:#677782;--canvas:#f7f8fa;--surface:#fff;--line:#e2e8ec;--brand:#285fce;--brand-dark:#1d4aab;--brand-soft:#edf3ff;--free:#447a76;--free-soft:#edf5f3;--busy:#a5b1bb;--restricted:#898397;--warning:#986b27;--danger:#ac4141;--shadow:0 12px 34px #243d5210;--radius:18px;--scroll-thumb:#a5b3c0;--scroll-track:#eef2f5;--scroll-hover:#71889a;color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;-webkit-font-smoothing:antialiased;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}
*{box-sizing:border-box;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}*::-webkit-scrollbar{width:5px;height:4px}*::-webkit-scrollbar-track{background:var(--scroll-track)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:6px}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}html,body{margin:0;min-height:100%;min-width:320px}body{font-size:14px}button,input,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a[href]{cursor:pointer}button{border:0;background:none}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #7c9feb;outline-offset:3px}button:disabled{cursor:default;opacity:.55}button:active:not(:disabled){transform:scale(.98)}h1,h2,h3,p{margin:0}p{line-height:1.5}button{touch-action:manipulation}button svg,button span{pointer-events:none}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.full{width:100%}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;color:var(--brand);font-size:12px;font-weight:650;padding:0 5px;white-space:nowrap}.text-button:hover{color:var(--brand-dark);background:var(--brand-soft);border-radius:9px}.text-button .icon{width:17px;height:17px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 16px;border-radius:13px;font-size:14px;font-weight:650;line-height:1.25;text-align:center}.primary{background:var(--brand);color:#fff;box-shadow:0 3px 6px #285fce10}.primary:hover{background:var(--brand-dark)}.secondary{background:#f1f4f7;color:#3a5264}.secondary:hover{background:#e7edf2}.danger{color:var(--danger)}.danger-solid{background:var(--danger)}.danger-solid:hover{background:#8f3030}.miniapp{max-width:480px;min-height:100dvh;margin:0 auto;padding:calc(8px + env(safe-area-inset-top,0px)) 0 calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface);position:relative}.intro{padding:0 20px 13px}.context-line{display:flex;align-items:center;justify-content:space-between;min-height:39px;margin-bottom:4px;font-size:11px;color:var(--muted);gap:6px}.context-line>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.context-line .icon{width:14px;height:14px}.context-line b{font-weight:400;color:#b1bdc5;margin:0 2px}.context-line .text-button{font-size:11px}.intro h1{font-size:25px;letter-spacing:-1px;font-weight:700;line-height:1.2}.intro p{font-size:12px;margin-top:5px;color:var(--muted)}.search-controls{display:grid;grid-template-columns:1fr 1fr;margin:0 20px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 2px 4px #17293602}.date-trigger{display:flex;align-items:center;gap:9px;padding:11px 12px;min-height:60px;text-align:left;min-width:0}.date-trigger:hover{background:var(--canvas)}.date-trigger:first-child{border-right:1px solid var(--line)}.date-trigger>.icon:first-child{width:18px;color:var(--brand)}.date-trigger>.icon:last-child{margin-left:auto;width:14px}.date-trigger span{font-size:12px;line-height:1.5;font-weight:650;white-space:nowrap}.date-trigger small{display:block;font-size:9px;color:var(--muted);font-weight:450}.filter-row{display:flex;gap:9px;padding:12px 0 6px 20px;align-items:center}.filter-trigger{min-width:44px;height:44px;display:flex;align-items:center;justify-content:center;position:relative;border:1px solid var(--line);border-radius:12px;background:#fff}.filter-trigger:hover,.filter-trigger.active{border-color:#9ab8e9;background:var(--brand-soft);color:var(--brand)}.filter-trigger b{position:absolute;right:-4px;top:-5px;border:2px solid #fff;background:var(--brand);color:#fff;border-radius:50%;width:18px;height:18px;font-size:9px;line-height:14px}.chips{display:flex;gap:7px;overflow-x:auto;min-width:0;padding:2px 20px 5px 0}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:22px;min-height:40px;padding:8px 12px;white-space:nowrap;font-size:11px;font-weight:550;flex-shrink:0}.chip .icon{width:15px;height:15px;color:#647c8e}.chip:hover{background:#f0f4f8}.chip.active{color:var(--brand);background:var(--brand-soft);border-color:#9cb9ef}.chip.active .icon{color:var(--brand)}.floor-toolbar{display:flex;align-items:center;padding:0 20px;gap:9px;min-height:54px}.floor-trigger{display:flex;align-items:center;gap:7px;min-height:44px;font-size:14px;padding:0}.floor-trigger:hover{color:var(--brand)}.floor-trigger .icon{width:15px}.available-count{font-size:10px;color:var(--free);padding:4px 7px;background:var(--free-soft);border-radius:6px;white-space:nowrap}.view-switch{display:flex;margin-left:auto;gap:2px;background:#edf1f5;border-radius:11px;padding:3px}.icon-button{width:39px;min-height:36px;display:grid;place-items:center;border-radius:8px;color:#748896}.icon-button.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #1e374019}.icon-button .icon{width:17px;height:17px}.icon-button:hover{color:var(--brand)}
.map-viewport{position:relative;overflow:hidden;margin:0 12px;border-radius:18px;background:radial-gradient(ellipse at 50% 60%,#f8fafb,#f1f4f6);height:clamp(280px,calc(100svh - 462px),410px);min-height:280px;touch-action:pan-y;border:1px solid #e9edf0;isolation:isolate}.map-caption{position:absolute;left:16px;top:15px;font-size:8px;letter-spacing:1.5px;color:#83939e;z-index:2;pointer-events:none;font-weight:650}.map-transform{position:absolute;inset:12px 4px 8px;transform-origin:50% 50%;will-change:transform}.map-world{width:100%;height:100%;position:relative;aspect-ratio:560/480}.map-transform>.map-world{width:100%;height:auto;top:50%;transform:translateY(-50%)}.floor-svg{display:block;width:100%;height:auto}.room-shape{stroke:#b4c4c9;stroke-width:2;fill:#eef5f4}.room-shape.busy{fill:#e9eef2;stroke:#c0ccd4}.room-shape.soon{fill:#f4f1e9;stroke:#d4cbb5}.room-shape.restricted,.room-shape.unavailable{fill:url(#hatch);stroke:#c7c6cf}.room-shape.mine{fill:#e4edff;stroke:#3d70d5;stroke-width:3}.parking-shape{fill:#f0f6f4;stroke:#afc6c2;stroke-width:1.5}.parking-shape.busy{fill:#f1f4f7;stroke:#d1dae0}.parking-shape.restricted,.parking-shape.unavailable{fill:url(#hatch);stroke:#c9c8d2}.parking-shape.mine{fill:#dce8ff;stroke:#5078d6;stroke-width:2}.zone-text{font:600 11px Inter,Arial,sans-serif;letter-spacing:2px;fill:#83939d}.small-map-text{font:500 11px Inter,Arial,sans-serif;letter-spacing:.5px;fill:#718592}.map-target{position:absolute;transform:translate(-50%,-50%);z-index:3;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:44px;line-height:1.4}.map-target:active{transform:translate(-50%,-50%)!important}.map-target.dim{opacity:.2;pointer-events:none}.room-target{padding:1px 0 3px;color:#416762;border-radius:7px;max-width:33%}.room-target strong{font-size:12px;letter-spacing:-.3px}.room-target>span{font-size:8px;color:#718981;line-height:1.4}.room-target.busy{color:#748692}.room-target.busy>span{color:#6e8390}.room-target.restricted{color:#7b7789}.room-target.soon{color:#8d713d}.room-target.selected{background:var(--brand);color:white;box-shadow:0 3px 8px #285fce30;width:24%!important;min-height:44px}.room-target.selected>span{color:#e3ebff}.room-target:hover{box-shadow:0 0 0 2px #285fce70}.point-target{width:44px;height:44px;min-height:44px;padding:0}.desk-dot{height:23px;width:23px;border:1.5px solid #7daba3;box-shadow:0 2px 3px #243d5210;display:grid;place-items:center;border-radius:50%;background:#eff8f4;color:#426f69;font-weight:650;font-size:8px}.point-target.selected .desk-dot{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 5px #285fce1a,0 0 0 8px #285fce09}.desk-dot .icon{width:12px;height:12px}.point-target.busy .desk-dot{background:#dfe6eb;border-color:#c2cfd9;color:#718591}.point-target.restricted .desk-dot,.point-target.unavailable .desk-dot{border-style:dashed;background:#f0edf4;border-color:#b7b0c3;color:#81768d}.point-target.mine .desk-dot{background:#e4edff;border-color:var(--brand);color:var(--brand)}.parking-pin{font-size:9px;letter-spacing:-.2px;font-weight:650;color:#477970;padding-top:24px}.point-target.selected .parking-pin{border-radius:7px;background:var(--brand);color:white;padding:7px 5px;box-shadow:0 0 0 4px #285fce15}.parking-pin .icon{width:10px;height:10px}.point-target.busy .parking-pin{color:#708592}.point-target.restricted .parking-pin{color:#8b809c}.you-marker{position:absolute;font-size:8px;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px;z-index:4;pointer-events:none;color:#5e7790;white-space:nowrap}.you-marker>span{width:9px;height:9px;background:#5783ce;border:2px solid white;border-radius:50%;box-shadow:0 0 0 5px #5583ce17}.map-tools{position:absolute;right:9px;bottom:12px;display:flex;flex-direction:column;gap:1px;background:#fff;border:1px solid var(--line);box-shadow:0 3px 12px #243d520a;border-radius:12px;overflow:hidden;z-index:5}.map-tool{width:38px;height:38px;display:grid;place-items:center;color:#5a7283}.map-tool:hover{background:var(--brand-soft);color:var(--brand)}.map-tool .icon{height:17px;width:17px}.map-tool+button{border-top:1px solid #f0f3f6}.map-scale{position:absolute;bottom:15px;left:18px;font-size:8px;border-bottom:1px solid #a9bac4;width:32px;line-height:1.8;color:#7c8f9b}.neighborhood-pill{position:absolute;left:14px;bottom:13px;display:flex;gap:5px;align-items:center;padding:7px 9px;border:1px solid #e0e8e5;background:#ffffffeb;color:#587969;border-radius:8px;font-size:8px;z-index:4}.neighborhood-pill .icon{width:13px;height:13px}.neighborhood-pill+.map-scale{display:none}.legend{display:flex;align-items:center;gap:14px;padding:2px 20px;min-height:37px;font-size:9px;color:#697c8a}.legend>span{display:flex;gap:5px;align-items:center}.legend i,.status i{display:inline-block;width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#8aada4;border:1px solid #648d82}.legend i.busy{background:#d0d9e0;border-color:#b2c0cb}.legend i.restricted{background:#eee9f4;border:1px dashed #8e809f}.legend-button{margin-left:auto;width:30px;height:36px;color:#81939e;display:grid;place-items:center}.legend-button .icon{width:16px}.selection-card{margin:0 16px 5px;background:#fff;border:1px solid #e0e6eb;box-shadow:var(--shadow);border-radius:18px;padding:15px}.card-top{display:flex;align-items:center;gap:10px}.resource-symbol{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;background:#f0f4f8;border:1px solid #e6ecf1;border-radius:12px;color:#4f7088}.resource-symbol .icon{height:22px;width:22px}.resource-symbol.large{height:58px;width:58px;border-radius:16px}.resource-symbol.large .icon{width:29px;height:29px}.card-title{min-width:0}.card-title h2{font-size:16px;font-weight:700;letter-spacing:-.5px;line-height:1.4}.card-title h2 span{color:#6c808f;font-size:12px;font-weight:450;letter-spacing:0}.card-title p{font-size:10px;color:#788a97;margin-top:2px}.card-top .status{margin-left:auto;max-width:110px}.status{display:inline-flex;align-items:center;gap:4px;border-radius:5px;font-size:9px;font-weight:550;line-height:1.3;padding:4px 6px;background:#eff5f3;color:#48786e}.status.busy{background:#edf1f5;color:#6a7f8d}.status.busy i{background:#b0bdc6;border-color:#a1b0ba}.status.restricted,.status.unavailable{background:#f2eff6;color:#7d718f}.status.restricted i,.status.unavailable i{border-style:dashed;background:#b6adc3;border-color:#8a7e9c}.status.soon{color:#866630;background:#faf4e8}.status.soon i{background:#d2b479;border-color:#b99a5d}.status.mine{color:var(--brand);background:var(--brand-soft)}.status.mine i{background:var(--brand);border-color:var(--brand)}.amenities{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:12px;color:#647b8c;font-size:9px}.amenities>span{display:flex;align-items:center;gap:4px;white-space:nowrap}.amenities .icon{width:13px;height:13px;color:#7c91a1}.card-actions{display:grid;grid-template-columns:.8fr 1.25fr;gap:9px;margin-top:14px}.card-actions button{min-height:45px;font-size:12px;border-radius:11px}.quiet{padding:18px 16px;text-align:center}.quiet h2{font-size:16px;margin-top:8px}.quiet p{font-size:12px;color:var(--muted);margin-top:6px}.quiet .secondary{margin-top:13px}.selection-icon{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--brand-soft);color:var(--brand)}.availability-note{font-size:10px;color:var(--warning);margin-top:8px}.local-footer{text-align:center;font-size:8px;color:#95a2ab;padding:12px 16px 3px}.team-line{margin:0 20px 13px;display:flex;align-items:center;gap:10px;padding-top:0}.avatars{display:flex;padding-left:3px}.avatars b{width:27px;height:27px;border-radius:50%;background:#e1e9eb;border:2px solid #fff;display:grid;place-items:center;margin-left:-3px;font-size:8px;font-weight:600;color:#607989}.avatars b:nth-child(2){background:#e4e1ee;color:#817392}.avatars b:nth-child(3){background:#efe6df;color:#917964}.team-line>span:nth-child(2){line-height:1.5}.team-line strong{font-size:10px;display:block;font-weight:600}.team-line small{font-size:9px;color:var(--muted);display:block}.team-line .text-button{margin-left:auto;font-size:10px}.quota-line{margin:1px 20px 13px;padding:11px 12px;background:#f6f8fb;border:1px solid #e9eef4;border-radius:11px}.quota-line>div:first-child{display:flex;align-items:center;gap:6px;font-size:10px;color:#6c7e8d}.quota-line .icon{width:14px;height:14px}.quota-line strong{margin-left:auto;color:#466078;font-size:11px}.quota-meter{height:3px;background:#e0e6ee;margin:8px 0 5px;border-radius:3px;overflow:hidden}.quota-meter>span{display:block;background:#7997bf;height:100%;border-radius:3px}.quota-line small{font-size:9px;color:#788998}.banner{margin:9px 16px 3px;display:flex;align-items:flex-start;gap:8px;border:1px solid #e5dac4;border-radius:12px;padding:10px;background:#fcf9f1;color:#876736}.banner>.icon{width:16px;height:16px;margin-top:2px}.banner strong{font-size:10px}.banner p{font-size:9px;line-height:1.45;margin-top:2px}.banner .text-button{min-height:33px;font-size:9px;color:#876736;align-self:center;margin-left:auto}.banner>div{flex:1}.banner.no-map{background:#f2f6fc;border-color:#dce5f3;color:#5c7696}.empty-panel{min-height:375px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:36px 34px;text-align:center;background:linear-gradient(#f7f9fb,#fff);margin:0 12px;border:1px solid var(--line);border-radius:18px}.empty-illustration{width:76px;height:76px;display:grid;place-items:center;border-radius:24px;background:#eaf0f7;border:8px solid #f1f5f9;box-shadow:0 0 0 1px #e5ecf2;color:#7392ad;margin-bottom:25px}.empty-illustration .icon{width:30px;height:30px}.empty-panel h2{font-size:20px;letter-spacing:-.6px;line-height:1.3}.empty-panel p{font-size:12px;color:var(--muted);margin:12px 0 22px;max-width:280px}.empty-panel .primary{font-size:12px;min-height:44px}.loading-frame{height:390px;margin:0 16px;display:flex;align-items:center;flex-direction:column;text-align:center;border-radius:18px;background:#f5f7fa;border:1px solid #ecf0f4}.skeleton-map{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:90%;padding:40px 12px;margin-bottom:12px}.skeleton-map i{height:82px;background:linear-gradient(90deg,#e5ebf0 25%,#f1f4f7 50%,#e5ebf0 75%);background-size:200% 100%;border-radius:9px;animation:shimmer 1.8s infinite}.loading-frame strong{font-size:14px}.loading-frame p{font-size:11px;color:var(--muted);margin:8px 24px}.full-map{position:relative}.full-map .map-viewport{opacity:.55;filter:grayscale(.5)}.full-message{position:absolute;top:50%;left:27px;right:27px;transform:translateY(-50%);text-align:center;padding:20px;background:#fffffff7;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px}.full-message>.icon{display:block;margin:0 auto 10px;color:#6c87a0}.full-message strong{display:block;font-size:16px}.full-message p{font-size:11px;color:var(--muted);margin:8px 0 15px}.full-message .primary{font-size:12px;min-height:43px}.resource-list{margin:0 16px;max-height:390px;overflow-y:auto;display:grid;gap:7px}.list-resource{display:flex;align-items:center;gap:12px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff;min-height:90px}.list-resource.selected{border-color:#8eafe8;background:#f8faff}.list-resource:hover{border-color:#8eafe8}.list-resource>span:nth-child(2){flex:1}.list-resource strong{font-size:13px;display:block}.list-resource small{display:block;font-size:10px;color:var(--muted);margin:3px 0 5px}.list-resource>.icon{width:16px;color:#9badb9}
/* Shared modal for local tasks. It never replaces or closes the Mobile Shell. */
.dialog-open{overflow:hidden}.bottom-sheet{position:fixed;inset:auto 0 0;margin:0 auto;border:1px solid #e4e9ed;border-bottom:0;border-radius:26px 26px 0 0;max-width:480px;width:100%;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 28px);padding:0 0 env(safe-area-inset-bottom,0px);color:var(--ink);background:#fff;box-shadow:0 -8px 70px #0e263126;overflow:hidden}.bottom-sheet[open]{display:flex;flex-direction:column;animation:sheet-in .22s ease-out}.bottom-sheet::backdrop{background:#142d4566;backdrop-filter:blur(2px)}.sheet-handle{height:4px;width:36px;border-radius:6px;background:#dce3e9;flex-shrink:0;margin:10px auto 0}.sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 22px 8px;flex-shrink:0}.sheet-heading h2{font-size:19px;letter-spacing:-.5px;line-height:1.3}.sheet-heading .text-button{font-size:12px}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:8px 22px 22px;min-height:0}.sheet-body>.muted{font-size:12px}.sheet-body h3{font-size:14px;margin:20px 0 12px;letter-spacing:-.2px}.sheet-actions{display:flex;gap:9px;padding:14px 22px 20px;flex-wrap:wrap;border-top:1px solid #edf0f3;flex-shrink:0;background:#fff}.sheet-actions>.primary,.sheet-actions>.secondary{flex:1;min-width:120px;font-size:12px}.sheet-actions>.full{flex:1 0 100%}.sheet-actions>.text-button{min-height:32px}.week-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:22px 0}.day{border:1px solid var(--line);border-radius:13px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:#fff}.day span{font-size:11px;color:var(--muted)}.day strong{font-size:21px;letter-spacing:-.7px}.day.active{background:var(--brand);color:white;border-color:var(--brand);box-shadow:0 4px 8px #285fce22}.day.active span{color:#e7eeff}.day:hover{border-color:#709ce8}.info-card{background:#f3f7fb;display:flex;gap:10px;padding:14px;border:1px solid #e9eef5;border-radius:12px;color:#688198;margin-top:18px;font-size:11px}.info-card>.icon{width:18px;height:18px;margin-top:2px}.duration-presets{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-fields label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:7px}.time-fields select{width:100%;height:52px;background:#f7f9fb;border:1px solid var(--line);border-radius:12px;padding:0 12px;font-weight:600;font-size:17px}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot{border:1px solid var(--line);border-radius:10px;min-height:44px;font-size:13px;background:#f9fbfc}.slot.active{border-color:#8aa9df;background:var(--brand-soft);color:var(--brand)}.slot:hover{background:var(--brand-soft)}.filter-options{display:grid;margin-top:12px}.filter-option{display:flex;align-items:center;gap:12px;min-height:67px;border-bottom:1px solid #edf1f4;padding:10px 0;cursor:pointer}.filter-option>.icon{color:#7a90a1;width:19px;height:19px}.filter-option span{font-size:13px;flex:1;font-weight:550}.filter-option small{display:block;color:var(--muted);font-weight:400;font-size:10px;margin-top:4px}.filter-option input{accent-color:var(--brand);width:21px;height:21px;margin:0}.floor-options{display:grid;gap:10px}.floor-option{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:14px 12px;min-height:84px}.floor-option:hover{border-color:#9eb9e6}.floor-option.active{border-color:#9cb7e8;background:#f5f8ff}.floor-number{display:grid;place-items:center;min-width:40px;height:40px;border-radius:12px;background:#e9eff7;font-size:20px;font-weight:600}.floor-option>span:nth-child(2){flex:1}.floor-option strong{font-size:13px;display:block}.floor-option small{font-size:10px;color:var(--muted);display:block;margin-top:4px;max-width:150px;line-height:1.4}.floor-option>span:last-child{font-size:10px;color:#6c8a7d;white-space:nowrap}.detail-plan{height:182px;background:#f3f6f8;border:1px solid #e5ebef;border-radius:14px;overflow:hidden;position:relative;pointer-events:none}.detail-plan .map-world{width:100%;height:auto;transform:translateY(-50%);top:50%}.detail-plan .map-target{display:none}.detail-plan .you-marker{display:none}.detail-info{margin-top:16px}.detail-info>p{font-size:13px;line-height:1.65;margin-top:12px}.detail-facts{display:grid;gap:10px;color:#728797;font-size:11px;margin:16px 0}.detail-facts span{display:flex;gap:8px;align-items:center}.detail-facts .icon{width:17px;height:17px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:11px;color:#536c7f}.feature-grid>span{display:flex;align-items:center;gap:7px}.feature-grid .icon{width:15px;height:15px;color:#689087}.timeline{display:flex;overflow-x:auto;gap:6px;padding-bottom:7px}.timeline-slot{flex:0 0 66px;min-height:56px;border-radius:9px;border:1px solid #d4e5df;background:#f4f9f7;font-size:9px;color:#5e857a}.timeline-slot small{display:block;font-size:11px;font-weight:600;margin-bottom:6px}.timeline-slot.occupied{background:repeating-linear-gradient(135deg,#eef1f5,#eef1f5 4px,#e5eaf0 4px,#e5eaf0 6px);border-color:#dce3e9;color:#687e8e}.booking-summary{display:flex;align-items:center;gap:13px;padding:6px 0 20px}.booking-summary h3{font-size:22px;margin:0 0 6px;letter-spacing:-.8px}.booking-summary p{font-size:11px;color:var(--muted)}.summary-rows{border-top:1px solid var(--line);padding:7px 0 12px}.summary-rows>div{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:12px}.summary-rows span{font-size:12px;color:var(--muted)}.summary-rows strong{font-size:12px;font-weight:600}.field-label{display:block;font-size:12px;font-weight:550;margin:16px 0 8px}.text-input{border:1px solid #d6e0e8;border-radius:11px;background:#f9fbfc;min-height:49px;width:100%;padding:12px;font-size:16px}.input-hint{font-size:10px;color:var(--muted);margin:7px 0 8px}.policy-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:18px}.field-error{font-size:11px;color:var(--danger);margin-top:8px;line-height:1.5}.field-error:empty{margin:0;min-height:0}.receipt{text-align:center;padding:10px 0 2px}.success-mark{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:#eaf4ef;color:#4a8b72;margin:6px auto 24px;border:8px solid #f4f9f6;box-shadow:0 0 0 1px #e4efe9}.success-mark .icon{width:31px;height:31px;stroke-width:2}.success-mark.neutral{background:#eef3f7;border-color:#f7f9fb;color:#708ca1}.receipt-caption{font-size:11px;color:#83939e}.receipt h3{font-size:24px;letter-spacing:-.8px;margin:8px 0 9px}.receipt>p:not(.muted):not(.receipt-caption){font-size:13px;color:#617b8f}.receipt-ticket{display:flex;flex-direction:column;text-align:left;padding:22px;margin:24px 0 18px;border-radius:14px;background:linear-gradient(115deg,#f2f6fc,#f7f9fc);border:1px solid #dfe7f1;position:relative}.receipt-ticket span{font-size:11px;color:#6d849b;display:flex;gap:6px;align-items:center}.receipt-ticket .icon{width:16px;height:16px}.receipt-ticket strong{font-size:19px;margin:14px 0 8px;letter-spacing:-.5px}.receipt-ticket small{color:#8495a5;font-size:11px}.receipt>.muted{font-size:11px;line-height:1.6;margin:0 10px}.own-booking{display:flex;gap:14px;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px}.date-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f1f5fb;border-radius:10px;width:47px;height:57px;flex-shrink:0}.date-tile small{font-size:8px;color:#8297a8;letter-spacing:1px}.date-tile strong{font-size:23px;margin-top:4px;font-weight:600}.own-booking h3{margin:0 0 6px;font-size:17px}.own-booking p{font-size:11px;color:#6d8393}.own-booking small{font-size:10px;color:#8b9ba7;display:block;margin-top:5px}.own-actions{display:flex;gap:7px;flex-wrap:wrap}.own-actions .text-button{font-size:10px}.sheet-empty{text-align:center;padding:35px 15px}.sheet-empty>.icon{width:35px;height:35px;color:#9aafbf}.sheet-empty h3{font-size:20px;line-height:1.4;margin:22px 0 10px}.sheet-empty p{font-size:12px;color:var(--muted)}.cancel-body{text-align:center;padding:14px 5px}.cancel-body h3{font-size:24px;margin:15px 0 8px}.cancel-body>p{font-size:13px}.cancel-body>.muted{font-size:12px;margin-top:18px}.problem-icon{display:grid;place-items:center;width:54px;height:54px;background:#f9f1e3;color:#a18653;border-radius:16px;margin-bottom:18px}.problem-icon .icon{width:25px;height:25px}.problem-copy{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:20px}.alternative-list{display:grid;gap:9px}.alternative-list>button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:13px 10px;min-height:72px;text-align:left}.alternative-list>button:hover{background:var(--brand-soft)}.alternative-list strong{font-size:14px;display:block}.alternative-list small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.alternative-list .status{margin-left:auto}.alternative-list .icon{width:16px;height:16px;color:#8ba0b0}.legend-details>p{display:flex;align-items:center;gap:15px;min-height:62px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.legend-details .status{min-width:110px}.legend-details>p>span:last-child{flex:1}.spinner{width:15px;height:15px;display:inline-block;border:2px solid #ffffff60;border-top-color:white;border-radius:50%;animation:spin .7s linear infinite}#toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,14px);max-width:min(360px,90vw);width:max-content;border-radius:12px;padding:13px 17px;background:#1c3547;color:white;font-size:12px;box-shadow:0 8px 30px #17293622;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;line-height:1.5}#toast.visible{opacity:1;transform:translate(-50%,0)}
/* The directory belongs to the preview, never to the mini-app surface. */
.directory{max-width:1192px;margin:0 auto;padding:34px 44px 28px}.directory-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#94a1ac}.wordmark{font-size:27px;font-weight:750;letter-spacing:-1.8px;color:var(--ink)}.directory-intro{padding:75px 0 40px}.directory-context{font-size:11px;color:#8496a3;margin-bottom:20px}.directory-intro h1{font-size:64px;font-weight:650;letter-spacing:-3.6px;line-height:1.08;max-width:700px}.directory-lead{font-size:16px;color:#778b9a;margin-top:20px;line-height:1.6}.prototype-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.prototype-link{border:1px solid #dfe6ec;border-radius:22px;overflow:hidden;background:#fff;transition:transform .2s,box-shadow .2s}.prototype-link:hover{transform:translateY(-5px);box-shadow:0 20px 40px #183e5512}.prototype-art{height:225px;background:linear-gradient(135deg,#edf3f6,#f4f7fa);position:relative;overflow:hidden;border-bottom:1px solid #edf1f4}.prototype-art .map-world{width:108%;height:auto;position:absolute;top:-21%;left:-3%;pointer-events:none;transform:rotate(-5deg)}.prototype-art .map-target{pointer-events:none}.prototype-art .you-marker{display:none}.prototype-art .room-target strong{font-size:10px}.prototype-art .room-target>span{font-size:7px}.prototype-art .desk-dot{height:19px;width:19px;font-size:7px}.prototype-art .parking-pin{font-size:8px}.prototype-copy{padding:23px;position:relative}.prototype-icon{position:absolute;top:-23px;display:grid;place-items:center;border-radius:13px;background:#fff;border:1px solid #e1e8ed;width:44px;height:44px;color:#567c97;box-shadow:0 3px 9px #173a4b07}.prototype-copy h2{font-size:20px;letter-spacing:-.6px;margin-top:14px}.prototype-copy p{font-size:12px;color:#7a8d9c;margin:10px 0 22px;min-height:37px;line-height:1.6}.open-link{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--brand);font-weight:600}.open-link .icon{width:19px}.directory-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #dfe6eb;margin-top:48px;padding-top:28px;gap:32px}.directory-bottom h2{font-size:19px;font-weight:600;letter-spacing:-.5px}.directory-bottom p{font-size:12px;color:#8193a0;margin-top:9px;max-width:640px;line-height:1.7}.directory-bottom>.secondary{flex-shrink:0;font-size:12px;background:#eaf0f6}.scenario-links{display:flex;gap:24px;flex-wrap:wrap;margin:27px 0}.scenario-links a{font-size:10px;color:#708da4;text-decoration:underline;text-underline-offset:4px}.directory footer{font-size:10px;color:#99a7b1;line-height:1.6;border-top:1px solid #e3e9ee;padding-top:21px}.return-link{display:inline-block;font-size:13px;color:var(--brand);margin-bottom:35px;min-height:44px;padding-top:12px}.directory>h1{font-size:35px;letter-spacing:-1.5px;line-height:1.2}.state-catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:28px 0}.state-catalog article{display:flex;gap:15px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:20px}.state-icon{height:37px;width:37px;display:grid;place-items:center;background:#f0f4f9;color:#7794ad;border-radius:11px;flex-shrink:0}.state-catalog h2{font-size:15px}.state-catalog p{font-size:11px;color:var(--muted);margin-top:6px}.state-catalog nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.state-catalog nav a{font-size:10px;color:var(--brand);min-height:30px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
@keyframes sheet-in{from{transform:translateY(25px);opacity:.7}to{transform:none;opacity:1}}@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:600px){.miniapp{margin:30px auto;border-radius:24px;box-shadow:0 20px 70px #203e5712;min-height:calc(100dvh - 60px);border:1px solid #e1e8ee;overflow:hidden}.bottom-sheet{bottom:15px;border-radius:24px;border-bottom:1px solid #e4e9ed}.map-viewport{height:350px}.intro h1{font-size:28px}.miniapp .intro{padding-top:3px}}
@media(max-width:760px){.directory{padding:22px}.directory-intro{padding:45px 0 32px}.directory-intro h1{font-size:46px;letter-spacing:-2.5px}.directory-lead{font-size:14px}.prototype-grid{grid-template-columns:1fr;gap:24px}.prototype-art{height:210px}.prototype-art .map-world{width:105%;top:-48%;transform:rotate(-5deg)}.prototype-copy{padding:19px 21px}.prototype-copy p{min-height:0;margin-bottom:17px}.prototype-copy h2{font-size:21px}.directory-top>span:last-child{font-size:8px;max-width:132px;text-align:right;line-height:1.5}.directory-bottom{flex-direction:column;align-items:stretch;gap:20px}.directory-bottom>.secondary{align-self:flex-start}.scenario-links{gap:14px}.state-catalog{grid-template-columns:1fr}.directory>h1{font-size:29px}.prototype-copy h2{margin-top:12px}}
@media(max-width:380px){.intro,.floor-toolbar{padding-left:16px;padding-right:16px}.intro h1{font-size:23px}.search-controls{margin:0 16px}.date-trigger{padding:10px;gap:6px}.date-trigger small{font-size:8px}.filter-row{padding-left:16px}.selection-card{margin-left:12px;margin-right:12px;padding:13px}.card-title h2{font-size:15px}.card-top{gap:8px}.status{font-size:8px}.amenities{font-size:8px;gap:8px}.card-actions button{font-size:11px}.map-viewport{margin:0 10px}.bottom-sheet .sheet-heading{padding-left:18px;padding-right:18px}.sheet-heading h2{font-size:18px}.sheet-body,.sheet-actions{padding-left:18px;padding-right:18px}.legend{gap:11px;padding-left:17px}.room-target strong{font-size:11px}.room-target>span{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){*{scrollbar-color:auto}button,a,input,select{forced-color-adjust:auto}.status,.map-target,.room-shape{border:1px solid ButtonText}}
/* Body-only mini-app. The native Shell remains the sole service header owner. */
.task-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.task-heading h1{font-size:18px;letter-spacing:-.6px;line-height:1.25}.task-heading>.text-button{min-width:44px}.intro{padding:2px 20px 9px}.intro h1{font-size:18px}.miniapp .intro{padding-top:2px}.date-trigger span{font-size:13px}.date-trigger small{font-size:10px}.chip{font-size:12px}.available-count{font-size:11px}.card-title p{font-size:11px}.card-actions button{font-size:13px}.amenities{font-size:10px}.status{font-size:10px}.legend{font-size:10px}.team-line strong{font-size:11px}.team-line small,.team-line .text-button{font-size:10px}.quota-line>div:first-child{font-size:11px}.quota-line small{font-size:10px}.map-viewport{height:clamp(310px,calc(100svh - 414px),430px)}.miniapp:has(.quota-line) .map-viewport{height:clamp(275px,calc(100svh - 478px),390px)}.miniapp:has(.team-line) .map-viewport{height:clamp(290px,calc(100svh - 456px),410px)}.sheet-body h3{font-size:15px}.input-hint,.policy-note{font-size:12px}.sheet-actions>.primary,.sheet-actions>.secondary{font-size:13px}.summary-rows span,.summary-rows strong{font-size:13px}.problem-copy{font-size:14px}.banner strong{font-size:12px}.banner p{font-size:11px}.card-top .status{max-width:95px}.availability-note{font-size:12px}.sheet-heading h2{font-size:19px}.receipt>.muted{font-size:12px}
@media(max-width:380px){.intro h1{font-size:17px}.date-trigger small{font-size:9px}.status{font-size:9px}.amenities{font-size:9px}.card-actions button{font-size:12px}.card-top .resource-symbol{width:36px;height:36px}.card-title h2{font-size:15px}.card-title h2 span{font-size:11px}.card-title p{font-size:10px}}
.map-viewport{height:clamp(280px,calc(100svh - 500px),420px)}.miniapp:has(.team-line) .map-viewport{height:clamp(270px,calc(100svh - 545px),400px)}.miniapp:has(.quota-line) .map-viewport{height:clamp(260px,calc(100svh - 565px),380px)}
