@font-face{font-family:Pretendard;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/pretendard/Pretendard-Light.woff2) format("woff2")}@font-face{font-family:Pretendard;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pretendard/Pretendard-Regular.woff2) format("woff2")}@font-face{font-family:Pretendard;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/pretendard/Pretendard-Medium.woff2) format("woff2")}@font-face{font-family:Pretendard;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/pretendard/Pretendard-SemiBold.woff2) format("woff2")}@font-face{font-family:Pretendard;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/pretendard/Pretendard-Bold.woff2) format("woff2")}@font-face{font-family:Pretendard;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/pretendard/Pretendard-ExtraBold.woff2) format("woff2")}@font-face{font-family:Pretendard;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/pretendard/Pretendard-Black.woff2) format("woff2")}:root{--app-font-family: "Pretendard";--app-edge-gap: 8px;--app-content-gap: calc(var(--app-edge-gap) + 4px);--app-box-radius: 12px;--app-card-hover-lift: 2px;--app-topbar-top-gap: var(--app-edge-gap);--app-topbar-side-gap: var(--app-edge-gap);--app-topbar-frame-height: 62px;--app-main-content-padding: 26px 20px 20px;--app-main-content-padding-mobile: 18px 12px 12px;--app-dashboard-min-height: calc( 100dvh - var(--app-topbar-frame-height) - var(--app-topbar-top-gap) - (var(--app-edge-gap) * 2) );--app-viewer-top-gap: var(--app-edge-gap);--app-viewer-toolbar-height: 44px;--app-viewer-stage-top-clearance: calc( var(--app-viewer-top-gap) + var(--app-viewer-toolbar-height) + var(--app-edge-gap) );--app-panel-surface-strong-start: rgba(13, 24, 40, .8);--app-panel-surface-strong-end: rgba(8, 15, 26, .8);--main-app-color-rgb: 126, 170, 255;--main-app-color: rgb(var(--main-app-color-rgb));--main-app-color-soft: rgba(var(--main-app-color-rgb), .12);--main-app-color-softer: rgba(var(--main-app-color-rgb), .08);--main-app-color-border: rgba(var(--main-app-color-rgb), .24);--main-app-color-shadow: rgba(var(--main-app-color-rgb), .14);--shell-bg-top: #08111d;--shell-bg-mid: #0d1727;--shell-bg-bottom: #09131f;--shell-panel: rgba(7, 14, 24, .78);--shell-panel-strong: rgba(11, 20, 34, .92);--shell-panel-soft: rgba(18, 29, 45, .78);--shell-border: rgba(157, 190, 255, .16);--shell-border-strong: rgba(157, 190, 255, .28);--shell-text: #eef4ff;--shell-text-soft: rgba(216, 230, 255, .82);--shell-text-muted: rgba(184, 202, 232, .7);--shell-glow: 0 18px 48px rgba(0, 0, 0, .24);--shell-radius: var(--app-box-radius);--topbar-tab-width: 75px;--topbar-tab-width-compact: 66px;font-family:var(--app-font-family);color:var(--shell-text);background:#08111d}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:var(--app-font-family);background:#08111d;color:var(--shell-text)}button,input,select,textarea{font:inherit}.app-shell{position:relative;min-height:100vh;min-width:1280px;overflow:hidden;background:radial-gradient(circle at top,rgba(88,139,255,.18),transparent 28%),linear-gradient(180deg,var(--shell-bg-top) 0%,var(--shell-bg-mid) 52%,var(--shell-bg-bottom) 100%);color:var(--shell-text)}.app-shell:before,.app-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.app-shell:before{background:linear-gradient(rgba(68,102,156,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(68,102,156,.12) 1px,transparent 1px);background-size:96px 96px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.78),transparent 88%);mask-image:linear-gradient(180deg,rgba(0,0,0,.78),transparent 88%);opacity:.34}.app-shell:after{background:radial-gradient(circle at 8% 12%,rgba(101,164,255,.14),transparent 20%),radial-gradient(circle at 92% 6%,rgba(101,164,255,.12),transparent 18%),radial-gradient(circle at 70% 88%,rgba(74,119,192,.12),transparent 20%)}.topbar{position:sticky;top:var(--app-topbar-top-gap);left:var(--app-topbar-side-gap);right:var(--app-topbar-side-gap);z-index:120;min-height:var(--app-topbar-frame-height);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin:var(--app-topbar-top-gap) var(--app-topbar-side-gap) 0;padding:8px 16px;border:1px solid rgba(101,152,211,.28);border-radius:var(--app-box-radius);background:linear-gradient(180deg,var(--app-panel-surface-strong-start),var(--app-panel-surface-strong-end));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px #7cc3ff0f,0 18px 48px #00000047}.topbar-brand{display:flex;align-items:center;gap:16px;min-width:0}.topbar-logo-link{display:inline-flex;align-items:center}.topbar-logo{width:144px;height:auto;object-fit:contain;flex:none;filter:drop-shadow(0 8px 14px rgba(0,0,0,.2))}.topbar-breadcrumb{display:flex;align-items:center;gap:10px;min-width:0;color:#bfd2e7db;font-size:13px;font-weight:600;white-space:nowrap}.topbar-separator{color:#7cc3ff75}.topbar-crumb{color:#bfd2e7db;text-decoration:none}.topbar-crumb-current,.topbar-crumb:hover{color:#eef4ff}.topbar-crumb-button{padding:0;border:0;background:transparent;cursor:pointer}.topbar-survey-menu,.topbar-processing{position:relative}.topbar-nav{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;padding:0;overflow-x:auto;scrollbar-width:none}.topbar-nav::-webkit-scrollbar{display:none}:root{--ui-scrollbar-track: rgba(255, 255, 255, .09);--ui-scrollbar-thumb-start: rgba(140, 182, 255, .66);--ui-scrollbar-thumb-end: rgba(98, 145, 226, .5);--ui-scrollbar-thumb-hover-start: rgba(170, 201, 255, .78);--ui-scrollbar-thumb-hover-end: rgba(118, 162, 238, .6)}*{scrollbar-width:thin;scrollbar-color:rgba(140,182,255,.5) rgba(255,255,255,.09)}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{border-radius:999px;background:var(--ui-scrollbar-track)}*::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:linear-gradient(180deg,var(--ui-scrollbar-thumb-start),var(--ui-scrollbar-thumb-end));background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--ui-scrollbar-thumb-hover-start),var(--ui-scrollbar-thumb-hover-end));background-clip:padding-box}.ui-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(140,182,255,.5) rgba(255,255,255,.09)}.topbar-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;width:var(--topbar-tab-width);min-width:var(--topbar-tab-width);max-width:var(--topbar-tab-width);padding:0 10px;border:1px solid rgba(108,154,207,.18);border-radius:14px;background:#0d1827cc;color:#8ea6bff5;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.topbar-tab:hover{color:#fff;border-color:#7cc3ff3d;background:#111f30eb}.topbar-tab.is-active{border-color:#77bcff85;background:linear-gradient(180deg,#172b43f2,#0f1f31f5);color:#eef4ff;box-shadow:inset 0 0 0 1px #73bfff1f}.topbar-tab-icon{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topbar-tab-label{display:inline-flex;align-items:center;font-size:13px;letter-spacing:-.01em}.topbar-actions{display:flex;align-items:center;gap:12px;justify-self:end;margin-left:auto;grid-column:3}.topbar-status-indicator,.topbar-icon-button,.topbar-user{min-height:40px;border:1px solid rgba(108,154,207,.18);border-radius:14px;background:#0d1827d1;color:#e8f0ff;font-size:13px;cursor:pointer}.topbar-status-indicator{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px}.topbar-icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;padding:0}.topbar-upload-button.is-active{border-color:#77bcff85;background:linear-gradient(180deg,#172b43f2,#0f1f31f5);box-shadow:inset 0 0 0 1px #73bfff1f,0 12px 24px #0000002e}.topbar-user{display:inline-flex;align-items:center;gap:10px;padding:0 12px;font-weight:600}.topbar-user-icon,.topbar-status-icon,.topbar-utility-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topbar-status-dot{position:absolute;right:8px;bottom:7px;width:8px;height:8px;border-radius:999px;background:#a3b6d2e6;box-shadow:0 0 0 3px #08111dc7}.topbar-status-indicator.is-active .topbar-status-dot{background:#67d6d1}.topbar-status-indicator.is-failed .topbar-status-dot{background:#ff8f8f}.topbar-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:130;display:grid;gap:6px;min-width:220px;max-height:320px;padding:10px;overflow-y:auto;border:1px solid rgba(101,152,211,.28);border-radius:14px;background:#0d1827f2;box-shadow:0 18px 32px #00000047;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbar-survey-menu .topbar-popover{left:0;right:auto;min-width:180px}.topbar-popover-option{display:flex;align-items:center;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#d8e6ffd1;font:inherit;text-align:left;cursor:pointer}.topbar-popover-option:hover,.topbar-popover-option.is-active{background:#4d88d629;color:#fff}.topbar-processing-icon.is-spinning{display:inline-block;animation:header-processing-spin 1.2s linear infinite}.topbar-processing-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#7eaaff;color:#08111d;font-size:10px;font-weight:700;line-height:18px;text-align:center}.topbar-processing-popover{width:min(320px,calc(100vw - 40px))}.topbar-settings-popover{width:min(360px,calc(100vw - 40px));max-height:none;gap:12px;padding:8px;overflow:visible}.topbar-settings-section{display:grid;gap:6px}.topbar-settings-section strong{font-size:12px;color:#d8e6ffd1}.topbar-settings-actions{display:flex;gap:6px}.topbar-settings-actions .topbar-popover-option{justify-content:center;border:1px solid rgba(108,154,207,.18);background:#122438e6;border-radius:10px}.topbar-settings-log-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:0 12px;border:1px solid rgba(108,154,207,.18);border-radius:10px;background:#122438e6;color:#eef4ff;font:inherit;font-weight:700;cursor:pointer}.topbar-settings-log-button small{color:#b8cae8b8;font-size:11px;font-weight:700}.topbar-settings-log-button:hover{border-color:#77bcff57;background:#111f30eb}.topbar-settings-logout{min-height:38px;border:1px solid rgba(108,154,207,.18);border-radius:10px;background:#122438e6;color:#eef4ff;font:inherit;font-weight:700;cursor:pointer}.topbar-settings-logout:hover,.topbar-icon-button:hover,.topbar-user:hover,.topbar-status-indicator:hover{border-color:#77bcff57;background:#111f30eb}.topbar-processing-popover strong{font-size:13px}.topbar-processing-list{display:grid;gap:10px;margin-top:8px}.topbar-processing-item{padding:10px;border:1px solid rgba(157,190,255,.1);border-radius:12px;background:#121d2db8}.topbar-processing-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:12px;font-weight:700}.topbar-processing-state{color:#d8e6ff9e;font-size:11px}.topbar-processing-state.is-active{color:#7eaaff}.topbar-processing-state.is-ready{color:#89e6c3}.topbar-processing-state.is-failed{color:#ff9d9d}.topbar-processing-state.is-cancelled{color:#ffd37a}.topbar-processing-item p,.topbar-processing-item small,.topbar-processing-empty{margin:0;color:#d8e6ffb8;font-size:12px;line-height:1.45}.topbar-log-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:320;display:grid;place-items:center;padding:24px;background:#08111d7a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.topbar-log-modal{width:min(720px,calc(100vw - 40px));max-height:min(720px,calc(100vh - 40px));display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid rgba(157,190,255,.16);border-radius:22px;background:#0b1422f5;box-shadow:0 28px 72px #00000057;overflow:hidden}.topbar-log-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 18px;border-bottom:1px solid rgba(157,190,255,.12)}.topbar-log-modal-eyebrow{margin:0 0 6px;color:#7eaaffeb;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.topbar-log-modal-header h2{margin:0;color:#eef4ff;font-size:24px;line-height:1.2}.topbar-log-modal-close{flex:0 0 auto}.topbar-log-modal-body{min-height:0;padding:20px 24px 24px;overflow-y:auto}.topbar-log-list{display:grid;gap:12px}.topbar-log-item{display:grid;gap:10px;padding:14px;border:1px solid rgba(157,190,255,.12);border-radius:16px;background:#121d2db8}.topbar-log-item-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar-log-item-top strong,.topbar-log-empty strong{color:#eef4ff;font-size:14px;font-weight:800}.topbar-log-item p,.topbar-log-empty p{margin:0;color:#d8e6ffcc;font-size:13px;line-height:1.55}.topbar-log-item-meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:#b8cae8b8;font-size:12px}.topbar-log-detail{margin:0;padding:12px 14px;border-radius:12px;background:#08111db8;color:#d8e6ffd6;font-family:inherit;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.topbar-log-empty{display:grid;gap:8px;padding:18px;border:1px solid rgba(157,190,255,.12);border-radius:16px;background:#121d2d94}.app-header{position:sticky;top:14px;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 20px 0;padding:12px 16px;border:1px solid var(--shell-border);border-radius:var(--shell-radius);background:var(--shell-panel);box-shadow:var(--shell-glow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;text-decoration:none}.brand img{display:block;height:48px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.22))}.brand-row{display:flex;align-items:center;gap:14px;min-width:0}.header-breadcrumb{display:flex;align-items:center;gap:12px;min-width:0;color:var(--shell-text-soft);font-size:13px;font-weight:600;white-space:nowrap}.header-breadcrumb-item{position:relative;display:inline-flex;align-items:center;gap:12px;min-width:0}.header-breadcrumb-item span:last-child{overflow:hidden;text-overflow:ellipsis}.header-breadcrumb-separator{color:#9dbeff8a;font-size:14px;font-weight:700;line-height:1}.header-breadcrumb-link,.header-breadcrumb-button{color:inherit;font:inherit;text-decoration:none}.header-breadcrumb-link:hover,.header-breadcrumb-button:hover{color:#fff}.header-breadcrumb-menu{position:relative}.header-breadcrumb-button{display:inline-flex;align-items:center;padding:0;border:0;background:transparent;cursor:pointer}.header-breadcrumb-popover{position:absolute;top:calc(100% + 10px);left:0;z-index:120;display:grid;gap:4px;min-width:180px;max-height:280px;padding:8px;overflow-y:auto;border:1px solid var(--shell-border);border-radius:12px;background:#0b1422f0;box-shadow:0 18px 32px #00000047;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.header-breadcrumb-option{display:flex;align-items:center;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--shell-text-soft);font:inherit;text-align:left;cursor:pointer}.header-breadcrumb-option:hover{background:#7eaaff1f;color:#fff}.header-breadcrumb-option-active{background:#7eaaff29;color:#fff}.header-feature-nav{display:flex;align-items:center;gap:8px;margin:0 16px;min-width:0}.header-feature-button{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--shell-text-soft);font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.header-feature-button:hover{background:#121f327a;border-color:var(--shell-border);color:#fff;transform:translateY(-1px)}.header-feature-button-active{border-color:var(--shell-border-strong);background:#7eaaff24;color:#eef4ff;box-shadow:inset 0 1px #ffffff0d}.header-feature-icon{display:inline-flex;width:16px;height:16px;flex:0 0 16px;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.header-feature-icon-2d{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4.5' y='6' width='15' height='12' rx='1.8' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M8 10.5h4' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M8 13.5h8' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4.5' y='6' width='15' height='12' rx='1.8' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M8 10.5h4' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M8 13.5h8' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}.header-feature-icon-earthwork{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 18h16' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='m6 16 4-6 3 3 5-7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='m16 6 2-.2-.2 2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 18h16' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='m6 16 4-6 3 3 5-7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='m16 6 2-.2-.2 2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.header-feature-icon-structure{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 18h14' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M7 18V8h10v10' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M9.5 8V5.5h5V8' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 18h14' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M7 18V8h10v10' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M9.5 8V5.5h5V8' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E")}.header-feature-icon-video{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4.5' y='7' width='10.5' height='10' rx='1.8' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m15 10 4.5-2v8L15 14' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4.5' y='7' width='10.5' height='10' rx='1.8' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m15 10 4.5-2v8L15 14' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E")}.header-feature-icon-file{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 4.5h6l4 4v11H8z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M14 4.5v4h4' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M10.5 13h5' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 4.5h6l4 4v11H8z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M14 4.5v4h4' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M10.5 13h5' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}.header-actions{position:relative;display:flex;align-items:center;gap:10px}.header-processing{position:relative}.header-processing-button,.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid var(--shell-border);border-radius:12px;background:#0b142285;color:var(--shell-text-soft);cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.header-processing-button:hover,.icon-button:hover{border-color:var(--shell-border-strong);background:#121f32db;color:#fff;transform:translateY(-1px)}.header-processing-button-active{border-color:var(--shell-border-strong);background:#7eaaff24;color:#eef4ff;box-shadow:inset 0 1px #ffffff0d}.header-processing-button-failed{border-color:#dc26263d;background:#dc262614;color:#ffb4b4}.header-processing-icon{display:inline-flex;width:18px;height:18px;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 12a8 8 0 1 1-2.34-5.66' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M20 5v4h-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 8v4l2.5 2.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 12a8 8 0 1 1-2.34-5.66' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M20 5v4h-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 8v4l2.5 2.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.header-processing-icon-spinning{animation:header-processing-spin 1.2s linear infinite}.header-processing-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border:2px solid rgba(9,19,31,.96);border-radius:999px;background:#7eaaff;color:#fff;font-size:10px;font-weight:700;line-height:14px;text-align:center}.header-processing-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:140;display:grid;gap:12px;width:320px;padding:14px;border:1px solid var(--shell-border);border-radius:16px;background:#0b1422f0;box-shadow:0 24px 54px #00000052;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.header-processing-popover strong{font-size:14px;font-weight:800;color:var(--shell-text)}.header-processing-list{display:grid;gap:10px}.header-processing-item{display:grid;gap:6px;padding:12px;border:1px solid rgba(157,190,255,.12);border-radius:12px;background:#121d2dc7}.header-processing-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:800;color:var(--shell-text)}.header-processing-state{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#94a3b81f;color:var(--shell-text-muted);font-size:11px;font-weight:800}.header-processing-state-active{background:#7eaaff1f;color:#9dc0ff}.header-processing-state-failed{background:#dc26261a;color:#ffb4b4}.header-processing-item p{margin:0;color:var(--shell-text-soft);font-size:12px;line-height:1.45}.header-processing-item small,.header-processing-empty{color:var(--shell-text-muted);font-size:11px;line-height:1.5}.partner-label{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid var(--shell-border);border-radius:12px;background:#0b142285;color:var(--shell-text);font-size:13px;font-weight:600}@keyframes header-processing-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-main{position:relative;z-index:1;min-height:0;padding:var(--app-main-content-padding)}.app-shell:has(.dashboard-screen),.app-shell:has(.project-detail-screen){--app-main-content-padding: var(--app-edge-gap);--app-main-content-padding-mobile: var(--app-edge-gap)}.app-shell:has(.survey-detail-page-shell) .topbar{position:fixed;top:var(--app-topbar-top-gap);left:var(--app-topbar-side-gap);right:var(--app-topbar-side-gap);margin:0;z-index:120}.app-shell:has(.survey-detail-page-shell) .app-main{display:flex;flex:1 1 auto;height:100dvh;min-height:100vh;padding:0}.app-shell:has(.admin-users-console) .topbar{position:fixed;top:var(--app-topbar-top-gap);left:var(--app-topbar-side-gap);right:var(--app-topbar-side-gap);margin:0;z-index:120}.app-shell:has(.admin-users-console) .app-main{height:calc(100dvh - var(--app-topbar-top-gap) - var(--app-topbar-frame-height) - (var(--app-edge-gap) * 2));min-height:0;margin-top:calc(var(--app-topbar-top-gap) + var(--app-topbar-frame-height));overflow-y:auto;overscroll-behavior:contain;padding:var(--app-edge-gap) 20px 20px}.app-shell:has(.admin-system-status-page){min-width:0}.app-shell:has(.admin-system-status-page) .topbar{position:fixed;top:var(--app-topbar-top-gap);left:var(--app-topbar-side-gap);right:var(--app-topbar-side-gap);margin:0;z-index:120}.app-shell:has(.admin-system-status-page) .app-main{height:calc(100dvh - var(--app-topbar-top-gap) - var(--app-topbar-frame-height) - (var(--app-edge-gap) * 2));min-height:0;margin-top:calc(var(--app-topbar-top-gap) + var(--app-topbar-frame-height));overflow-y:auto;overscroll-behavior:contain;padding:var(--app-edge-gap) 20px 20px}.toolbar,.project-card,.survey-card,.survey-list,.map-panel,.detail-empty-state,.project-create-modal,.project-site-settings-modal,.project-thumbnail-rotation-control,.project-thumbnail-settings-panel,.project-location-map,.project-location-summary,.project-create-image-preview{box-shadow:var(--shell-glow)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:var(--app-content-gap);padding:14px 16px;border:1px solid var(--shell-border);border-radius:var(--shell-radius);background:var(--shell-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.toolbar-left,.toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.toolbar-filters{display:flex;align-items:center;gap:10px}.toolbar-date-range{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border:1px solid var(--shell-border);border-radius:var(--app-box-radius);background:linear-gradient(180deg,#121d2df5,#0d1624f0)}.toolbar-date-field{position:relative;display:inline-flex;align-items:center;gap:8px;min-width:0}.toolbar-date-label{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.04em;color:#b8cae8a3}.toolbar-date-trigger{min-width:108px;height:32px;padding:0 10px;border:1px solid rgba(157,190,255,.14);border-radius:10px;background:#ffffff08;color:var(--shell-text);font-size:13px;font-weight:600;text-align:center;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.toolbar-date-trigger.is-empty{color:#b8cae885}.toolbar-date-trigger:hover,.toolbar-date-trigger:focus-visible{border-color:#7eaaff6b;background:#7eaaff14;outline:none}.toolbar-date-native-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none}.toolbar-date-separator{color:#b8cae875;font-size:14px;font-weight:700}.toolbar-date-reset{padding:0;border:0;background:transparent;color:#b8cae8c2;font-size:12px;font-weight:700;cursor:pointer;transition:color .18s ease}.toolbar-date-reset:hover,.toolbar-date-reset:focus-visible{color:var(--shell-text);outline:none}.primary-button,.sort-button,.secondary-button,.icon-toggle-button,.search-input,.toolbar-filter-input,.project-create-close,.ui-close-button,.project-thumbnail-control-button{min-height:38px;border-radius:var(--app-box-radius)}.primary-button,.sort-button,.secondary-button,.icon-toggle-button,.search-input,.toolbar-filter-input,.project-create-close,.ui-close-button{transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.primary-button{height:40px;padding:0 18px;border:1px solid rgba(157,190,255,.26);background:linear-gradient(180deg,#7eaaff38,#5181d629);color:var(--shell-text);font-weight:700;cursor:pointer;box-shadow:inset 0 1px #ffffff0f}.sort-button,.secondary-button,.icon-toggle-button,.search-input,.toolbar-filter-input,.project-create-close,.ui-close-button{border:1px solid var(--shell-border);background:linear-gradient(180deg,#121d2df5,#0d1624f0);color:var(--shell-text-soft);cursor:pointer}.sort-button{height:40px;padding:0 18px}.secondary-button{padding:10px 16px;font-weight:700}.danger-text-button{margin-right:auto;padding:10px 4px;border:0;background:transparent;color:#ffb4b4;font-weight:700;cursor:pointer}.search-input{width:160px;height:40px;padding:0 12px}.toolbar-filter-input{min-width:128px;height:40px;padding:0 12px}.search-input::placeholder{color:#b8cae875}.icon-toggle-button{width:40px;height:40px;font-size:18px}.ui-close-button{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:grid;place-items:center;padding:0;font:inherit;line-height:1;box-sizing:border-box;aspect-ratio:1 / 1;box-shadow:inset 0 1px #ffffff0d,0 10px 20px #00000029}.ui-close-icon{display:block;width:18px;height:18px;background-color:currentColor;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 6L18 18' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'/%3E%3Cpath d='M18 6L6 18' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 6L18 18' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'/%3E%3Cpath d='M18 6L6 18' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:contain;-webkit-mask-size:contain}.primary-button:hover,.sort-button:hover,.secondary-button:hover,.icon-toggle-button:hover,.project-create-close:hover,.ui-close-button:hover{border-color:var(--shell-border-strong);background:linear-gradient(180deg,#1e2d44fa,#121f32f5);color:#fff;transform:translateY(-1px)}.primary-button:hover{background:linear-gradient(180deg,#7eaaff47,#5181d633)}.icon-toggle-button-active{border-color:var(--shell-border-strong);background:#7eaaff24;color:#eef4ff}.status-chip{padding:2px 6px;border-radius:999px;background:#7eaaff24;color:var(--shell-text);font-size:12px}.card-menu-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--shell-text-soft);font-size:18px;line-height:1;cursor:pointer;transition:background .18s ease,color .18s ease}.card-menu-button:hover{background:#7eaaff1f;color:#fff}@media(max-width:960px){.topbar{top:var(--app-topbar-top-gap);left:var(--app-topbar-side-gap);right:var(--app-topbar-side-gap);grid-template-columns:1fr;gap:10px;margin:var(--app-topbar-top-gap) var(--app-topbar-side-gap) 0;padding:12px}.app-shell:has(.survey-detail-page-shell) .topbar{left:var(--app-topbar-side-gap);right:var(--app-topbar-side-gap)}.topbar-brand,.topbar-actions{justify-content:space-between}.topbar-logo{width:124px}.topbar-breadcrumb{gap:8px;overflow-x:auto;font-size:13px}.topbar-nav{justify-content:flex-start}.topbar-tab{width:var(--topbar-tab-width-compact);min-width:var(--topbar-tab-width-compact);max-width:var(--topbar-tab-width-compact)}.topbar-user span,.header-feature-nav{display:none}.app-header{top:10px;margin:10px 12px 0;padding:10px 12px}.brand-row{gap:8px}.header-breadcrumb{gap:8px;font-size:10px}.header-breadcrumb-item{gap:8px}.app-main{padding:var(--app-main-content-padding-mobile)}.toolbar,.toolbar-left,.toolbar-right{flex-direction:column;align-items:stretch}.toolbar-date-range{width:100%;justify-content:space-between;flex-wrap:wrap;padding:10px 12px}.toolbar-date-field{flex:1 1 180px}.toolbar-date-trigger{width:100%}}
