*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.table{display:table}:root{--ink:#08233f;--muted:#6b7d95;--line:#d8e2ee;--panel:#ffffff;--bg:#eef4f9;--brand:#35425b;--blue:#147bd8;--mint:#28c497}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:radial-gradient(circle at top left,rgba(40,196,151,.12),transparent 28rem),var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.login-page{min-height:100vh;display:grid;place-items:center;padding:28px}.login-shell{width:min(1120px,100%);min-height:560px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--panel);box-shadow:0 28px 70px rgba(8,35,63,.16)}.login-brand-panel{padding:56px;background:linear-gradient(145deg,#35425b,#24324b);color:white;display:flex;flex-direction:column;justify-content:space-between;gap:42px}.login-brand-panel h1{margin:0 0 14px;font-size:clamp(34px,4vw,54px);line-height:1.02;letter-spacing:0}.login-brand-panel p{max-width:620px;color:rgba(255,255,255,.82);font-size:18px;line-height:1.6}.login-card{padding:64px;display:flex;flex-direction:column;justify-content:center;gap:22px}.login-card h2{margin:0;font-size:34px}.login-card label{display:grid;gap:8px;font-weight:700}.input-icon{display:flex;align-items:center;gap:12px;border:1px solid #cbd8e6;border-radius:14px;padding:0 14px;background:#fff}.input-icon svg{color:#8393a8;flex:0 0 auto}.input-icon input{width:100%;height:48px;border:0;outline:0;background:transparent;color:var(--ink)}.brand{display:flex;align-items:center;gap:16px}.brand img{-o-object-fit:contain;object-fit:contain}.brand-wordmark{display:grid;line-height:.88;font-weight:900;font-size:35px;color:#fff;letter-spacing:0}.brand-wordmark span:last-child{color:#60c78f;font-weight:500}.brand-compact{gap:8px}.brand-core{color:#35b978;font-size:14px}.eyebrow{margin:0 0 8px;text-transform:uppercase;color:#48d27f;font-size:13px;font-weight:900;letter-spacing:.04em}.ghost-button,.primary-button,.topbar-action{border:0;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 18px;font-weight:800;cursor:pointer}.primary-button{background:var(--blue);color:#fff;box-shadow:0 12px 24px rgba(20,123,216,.22)}.primary-button:disabled{opacity:.62;cursor:wait}.ghost-button{background:#f7fbff;border:1px solid #cbd8e6;color:#455a72}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar-inner{min-height:64px;padding:0 28px;justify-content:space-between;gap:18px}.topbar-brand,.topbar-inner{display:flex;align-items:center}.topbar-brand{gap:16px}.topbar-brand strong{font-size:18px}.topbar-brand span{color:var(--muted)}.topbar-action{background:var(--blue);color:white}.portal-page{min-height:100vh}.page-shell{width:100%;padding:28px;display:grid;gap:22px}.hero-panel{width:100%;min-height:178px;border-radius:22px;padding:34px 38px;background:linear-gradient(145deg,#35425b,#26344e);color:white;display:flex;justify-content:space-between;align-items:center;gap:28px;box-shadow:0 24px 58px rgba(8,35,63,.16)}.hero-panel h1{margin:0 0 12px;font-size:clamp(32px,3vw,48px);line-height:1.04}.hero-panel p{max-width:760px;margin:0;color:rgba(255,255,255,.84);line-height:1.55}.compact-hero{min-height:142px}.hero-customer{min-width:190px;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:18px;background:rgba(255,255,255,.08)}.hero-customer span{display:block;font-size:12px;color:rgba(255,255,255,.72)}.hero-customer strong{display:block;margin-top:6px;font-size:22px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat-card{padding:22px;min-height:118px;border:1px solid var(--line);border-left-width:5px;border-radius:16px;background:white;box-shadow:0 18px 42px rgba(8,35,63,.08)}.stat-card span{color:var(--muted)}.stat-card strong{display:block;margin:6px 0 4px;font-size:36px;line-height:1}.stat-card small{color:#70839b}.stat-card.blue{border-left-color:#147bd8}.stat-card.green{border-left-color:#28c497}.stat-card.purple{border-left-color:#7b61ff}.stat-card.orange{border-left-color:#f0aa3c}.stat-grid.is-loading .stat-card{opacity:.64}.panel{border:1px solid var(--line);border-radius:16px;background:white;box-shadow:0 14px 38px rgba(8,35,63,.07)}.search-panel{padding:22px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-title h2{margin:0;font-size:19px}.section-title p{margin:6px 0 0;color:var(--muted)}.search-form{display:grid;grid-template-columns:220px 1fr 1fr 150px;gap:14px;align-items:end}.search-form label{display:grid;gap:8px;font-weight:800;font-size:13px}.search-form input{height:46px;border:1px solid #cbd8e6;border-radius:12px;padding:0 14px;outline:0}.search-form input:focus{border-color:#147bd8;box-shadow:0 0 0 3px rgba(20,123,216,.12)}.table-panel{overflow:hidden}.table-panel .section-title{padding:20px 22px 0}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;min-width:980px}th{text-align:left;font-size:12px;text-transform:uppercase;color:#183654;background:#edf3f9}td,th{padding:14px;border-bottom:1px solid var(--line)}td{color:#163451;white-space:nowrap}tbody tr:hover{background:#f8fbff}.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;background:#eef3f8;color:#53657a}.status-planned{background:#fff2d8;color:#9a6200}.status-ready{background:#dffaf5;color:#007762}.status-found{background:#dcfce7;color:#087443}.status-checking{background:#e0f2fe;color:#075985}.status-photo,.status-photo-uploaded{background:#efe7ff;color:#6d28d9}.status-sent,.status-to-planload{background:#e3efff;color:#0f63b3}.status-progress{background:#ffe4e6;color:#be123c}.status-cancel,.status-error,.status-not-found{background:#fee2e2;color:#b91c1c}.table-link{display:inline-flex;align-items:center;gap:6px;color:#147bd8;font-weight:800}.muted{color:#7b8da4}.empty,.empty-card{padding:46px}.empty,.empty-card,.loading-cell{color:var(--muted);text-align:center}.loading-cell{padding:48px;font-weight:800}.spinner{width:22px;height:22px;border:3px solid #d8e2ee;border-top:3px solid var(--blue);border-radius:999px;display:inline-block;margin-right:10px;vertical-align:middle;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.alert{border-radius:14px;padding:14px 16px}.alert.error{color:#9b1c1c;background:#fde8e8;border:1px solid #facaca}.subnav a{display:inline-flex;align-items:center;gap:8px;color:#147bd8;font-weight:800}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.photo-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 14px 34px rgba(8,35,63,.08)}.photo-frame{display:block;aspect-ratio:4/3;background:#edf3f9}.photo-frame img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.photo-meta{display:grid;gap:7px;padding:16px}.photo-meta span{color:var(--muted)}.photo-meta a{display:inline-flex;align-items:center;gap:6px;color:#147bd8;font-weight:800}.empty-card{border:1px solid var(--line);border-radius:16px;background:white;display:flex;align-items:center;justify-content:center;gap:10px}@media (max-width:900px){.login-shell{grid-template-columns:1fr}.login-brand-panel,.login-card{padding:34px}.hero-panel{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-form{grid-template-columns:1fr}}@media (max-width:560px){.login-page,.page-shell{padding:16px}.topbar-inner{padding:0 16px}.topbar-brand strong{display:none}.stat-grid{grid-template-columns:1fr}.hero-panel{padding:26px}}