@import url(https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap);:root{--ink:#eaf4f7;--muted:#8b9b9e;--label:#cfe6ec;--base:#101719;--surface:#172124;--surface-2:#1d292c;--line:#314044;--signal:#22d3ee;--signal-dark:#04232b;--danger:#ff887b;--success:#77dca4;color-scheme:dark}*{box-sizing:border-box}html{background:#101719;background:var(--base)}body{background:linear-gradient(#22d3ee08 1px,#0000 0),linear-gradient(90deg,#22d3ee08 1px,#0000 0),radial-gradient(circle at 90% 0,#16303a 0,#0000 34rem),#101719;background:linear-gradient(#22d3ee08 1px,#0000 1px),linear-gradient(90deg,#22d3ee08 1px,#0000 1px),radial-gradient(circle at 90% 0,#16303a 0,#0000 34rem),var(--base);background-size:28px 28px,28px 28px,auto,auto;color:#eaf4f7;color:var(--ink);font-family:IBM Plex Mono,monospace;margin:0;min-height:100vh;min-width:320px}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{margin:0 auto;min-height:100vh;padding:24px 18px 64px;width:min(100%,760px)}.app-header{align-items:center;border-bottom:1px solid #314044;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding-bottom:14px}.app-kicker,.panel-heading p{color:#22d3ee;color:var(--signal);font-size:.62rem;font-weight:600;letter-spacing:.18em;margin:0 0 2px}.app-header .app-kicker{margin:0}h1,h2,h3{font-family:Barlow Condensed,sans-serif}.sync-button{grid-gap:0 7px;background:#172124;background:var(--surface);border:1px solid #314044;border:1px solid var(--line);border-radius:3px;color:#eaf4f7;color:var(--ink);cursor:pointer;display:grid;gap:0 7px;grid-template-columns:18px auto;min-width:90px;padding:8px 10px;text-align:left}.sync-button svg{fill:none;stroke:#22d3ee;stroke:var(--signal);stroke-width:1.8;grid-row:1/3;width:18px}.sync-button span{font-size:.58rem;font-weight:600;letter-spacing:.12em}.sync-button time{color:#8b9b9e;color:var(--muted);font-size:.58rem}.sync-button.is-syncing svg{animation:sync-spin .9s linear infinite;transform-origin:50% 50%}@keyframes sync-spin{to{transform:rotate(1turn)}}.date-section{padding:14px 0 12px}.date-strip{display:flex;gap:7px;margin-inline:-18px;overflow-x:auto;padding:2px 18px 10px;scrollbar-color:#22d3ee #172124;scrollbar-color:var(--signal) var(--surface);scrollbar-width:thin}.date-button{background:#172124;background:var(--surface);border:1px solid #314044;border:1px solid var(--line);border-radius:3px;color:#8b9b9e;color:var(--muted);cursor:pointer;flex:0 0 76px;font-family:Barlow Condensed,sans-serif;font-size:.96rem;font-weight:700;height:38px;letter-spacing:.04em;position:relative}.date-button b{background:#77dca4;background:var(--success);border-radius:50%;color:#102019;display:grid;font-family:IBM Plex Mono,monospace;font-size:.48rem;height:16px;place-items:center;position:absolute;right:-5px;top:-5px;width:16px}.date-button.is-selected{color:#eaf4f7;color:var(--ink)}.date-button.is-selected,.date-button.is-today{border-color:#22d3ee;border-color:var(--signal)}.date-button.is-today{background:#22d3ee;background:var(--signal);color:#04232b;color:var(--signal-dark)}.workbook{margin-top:6px}.workbook-tabs{display:flex;gap:6px;margin-inline:-18px;overflow-x:auto;padding-inline:18px;scrollbar-width:none}.workbook-tabs::-webkit-scrollbar{display:none}.workbook-tabs button{align-items:center;background:linear-gradient(180deg,#172226,#121a1d);border:1px solid #314044;border:1px solid var(--line);border-bottom:0;border-radius:7px 7px 0 0;color:#8b9b9e;color:var(--muted);cursor:pointer;display:flex;flex:0 0 auto;font-family:Barlow Condensed,sans-serif;font-size:1.16rem;font-weight:700;gap:10px;letter-spacing:.13em;min-height:54px;padding:0 22px;transition:color .14s ease,background .14s ease;white-space:nowrap}.workbook-tabs .tab-label{overflow:hidden;text-overflow:ellipsis}@media (min-width:561px){.workbook-tabs{overflow-x:visible}.workbook-tabs button{flex:1 1 auto;font-size:.86rem;gap:6px;justify-content:center;letter-spacing:.04em;min-width:0;padding:0 9px}}@media (min-width:720px){.workbook-tabs button{font-size:1.02rem;gap:8px;letter-spacing:.07em;padding:0 14px}}.workbook-tabs button:hover{color:#cfe6ec;color:var(--label)}.workbook-tabs button.is-active{background:linear-gradient(180deg,#25383e,#1d292c);background:linear-gradient(180deg,#25383e,var(--surface-2));border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 0 2px 0 #22d3ee;box-shadow:inset 0 2px 0 var(--signal);color:#22d3ee;color:var(--signal);font-weight:800;margin-bottom:-2px;padding-bottom:2px}.workbook-tabs button b{background:#77dca4;background:var(--success);border-radius:11px;color:#102019;display:grid;flex:0 0 auto;font-family:IBM Plex Mono,monospace;font-size:.56rem;height:21px;min-width:21px;padding:0 5px;place-items:center}.workbook-sheet{border-top:2px solid #22d3ee;border-top:2px solid var(--signal);padding-top:18px}.workbook-sheet[hidden]{display:none}.view-switch{background:#172124;background:var(--surface);border:1px solid #314044;border:1px solid var(--line);border-radius:3px;display:grid;grid-template-columns:1fr 1fr;margin:0 0 16px;overflow:hidden}.view-switch button{background:#0000;border:0;border-right:1px solid #314044;border-right:1px solid var(--line);color:#8b9b9e;color:var(--muted);cursor:pointer;font-size:.53rem;font-weight:600;letter-spacing:.13em;min-height:36px;padding:8px 10px}.view-switch button:last-child{border-right:0}.view-switch button b{color:#77dca4;color:var(--success);font-size:.53rem;margin-left:5px}.view-switch button.is-active{background:#22d3ee;background:var(--signal)}.view-switch button.is-active,.view-switch button.is-active b{color:#04232b;color:var(--signal-dark)}.form-panel,.saved-panel{animation:panel-in .22s ease-out both;background:#172124eb;border:1px solid #314044;border:1px solid var(--line);box-shadow:10px 10px 0 #00000029}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}}.panel-heading{align-items:center;background:#1d292c;background:var(--surface-2);border-bottom:1px solid #314044;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding:16px}.panel-heading h2{font-size:1.55rem;letter-spacing:.02em;margin:0}.panel-heading>span{color:#8b9b9e;color:var(--muted);font-size:.62rem}form{grid-gap:1px;background:#314044;background:var(--line);gap:1px;grid-template-columns:1fr}.field,form{display:grid}.field{grid-gap:7px;background:#172124;background:var(--surface);gap:7px;min-width:0;padding:13px 14px 14px}.field-wide{grid-column:1/-1}.field>.field-title,.field>span{color:#cfe6ec;color:var(--label);font-size:.6rem;font-weight:600;letter-spacing:.11em}.field small{color:#22d3ee;color:var(--signal);font-size:.48rem}.scan-row{display:flex;gap:8px;min-width:0}.scan-row input{flex:1 1;min-width:0}.camera-scan-button{background:#1d292c;background:var(--surface-2);border:1px solid #3a4a4e;border-radius:2px;color:#22d3ee;color:var(--signal);cursor:pointer;display:grid;flex:0 0 auto;place-items:center;width:46px}.camera-scan-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.7;width:21px}.camera-scan-button:active{background:#22d3ee;background:var(--signal);color:#04232b;color:var(--signal-dark)}.field input,.field select{background:#11191b;border:1px solid #3a4a4e;border-radius:2px;color:#eaf4f7;color:var(--ink);font-size:.78rem;min-height:42px;outline:0;padding:8px 10px;transition:border-color .14s ease,box-shadow .14s ease;width:100%}.field input:focus,.field select:focus{border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.field-readonly input{border-style:dashed;color:#22d3ee;color:var(--signal);font-weight:600;letter-spacing:.08em}.field-other{box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.photo-fields{gap:9px}.photo-warning{color:#ff887b;color:var(--danger);font-size:.66rem;font-style:italic;font-weight:600;letter-spacing:.03em;margin:0}.photo-field{gap:8px}.photo-field,.photo-input{align-items:center;display:flex;min-width:0}.photo-input{background:#11191b;border:1px solid #3a4a4e;border-radius:2px;cursor:pointer;flex:1 1;min-height:42px;overflow:hidden;padding:8px 11px;position:relative}.photo-input:focus-within{border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.photo-input span{font-size:.78rem;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-placeholder{color:#8b9b9e;color:var(--muted)}.photo-name{color:#eaf4f7;color:var(--ink)}.photo-input input{border:0;cursor:pointer;height:100%;inset:0;min-height:0;opacity:0;padding:0;position:absolute;width:100%}.photo-clear{border:1px solid #74483f;border-radius:2px;color:#ff887b;color:var(--danger);cursor:pointer;display:grid;flex:0 0 auto;font-size:.72rem;height:34px;place-items:center;width:34px}.form-actions,.photo-clear{background:#1d292c;background:var(--surface-2)}.form-actions{display:flex;gap:10px;justify-content:flex-end;padding:16px}.delete-button,.save-button{background:#22d3ee;background:var(--signal);border:1px solid #22d3ee;border:1px solid var(--signal);border-radius:2px;color:#04232b;color:var(--signal-dark);cursor:pointer;font-size:.64rem;font-weight:600;letter-spacing:.09em;min-height:46px;padding:0 18px}.save-button{align-items:center;display:flex;gap:12px}.save-button svg{fill:none;stroke:currentColor;stroke-width:2.2;width:18px}.delete-button{background:#0000;border-color:#74483f;color:#ff887b;color:var(--danger)}.delete-button:disabled,.save-button:disabled{cursor:wait;opacity:.55}.status-message{background:#172124;background:var(--surface);border-left:3px solid;font-size:.68rem;line-height:1.5;margin:0 0 12px;padding:11px 12px}.success-message{border-color:#77dca4;border-color:var(--success);color:#77dca4;color:var(--success)}.error-message{border-color:#ff887b;border-color:var(--danger);color:#ff887b;color:var(--danger)}.record-list{grid-gap:1px;background:#314044;background:var(--line);display:grid;gap:1px}.saved-toolbar{background:#1d292c;background:var(--surface-2);border-bottom:1px solid #314044;border-bottom:1px solid var(--line);gap:12px;justify-content:space-between;padding:12px 14px}.saved-toolbar,.select-all{align-items:center;display:flex}.select-all{color:#cfe6ec;color:var(--label);cursor:pointer;font-size:.56rem;font-weight:600;gap:9px;letter-spacing:.12em}input[type=checkbox]{accent-color:#22d3ee;accent-color:var(--signal);cursor:pointer;height:17px;width:17px}.download-button{align-items:center;background:#22d3ee;background:var(--signal);border:1px solid #22d3ee;border:1px solid var(--signal);border-radius:2px;color:#04232b;color:var(--signal-dark);cursor:pointer;display:flex;font-size:.58rem;font-weight:600;gap:9px;letter-spacing:.09em;min-height:38px;padding:0 14px;white-space:nowrap}.download-button svg{fill:none;stroke:currentColor;stroke-width:2;width:16px}.download-button:disabled{background:#0000;border-color:#314044;border-color:var(--line);color:#8b9b9e;color:var(--muted);cursor:not-allowed}.data-row{grid-gap:12px 14px;align-items:center;background:#172124;background:var(--surface);display:grid;gap:12px 14px;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;padding:13px 14px}.data-row.is-selected{box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.row-select{display:flex}.row-cells{grid-gap:10px 14px;display:grid;gap:10px 14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));min-width:0}.row-cells>div{grid-gap:4px;display:grid;gap:4px;min-width:0}.row-cells span{color:#8b9b9e;color:var(--muted);font-size:.52rem;letter-spacing:.1em}.row-cells strong{font-size:.73rem;line-height:1.25;overflow-wrap:anywhere;white-space:normal}.row-actions{align-items:center;display:flex;gap:8px}.modify-button{background:#0000;border:1px solid #314044;border:1px solid var(--line);border-radius:2px;color:#22d3ee;color:var(--signal);cursor:pointer;font-size:.6rem;font-weight:600;min-height:30px;padding:0 11px;white-space:nowrap}.modify-button:hover{border-color:#22d3ee;border-color:var(--signal)}.row-delete{background:#0000;border:1px solid #74483f;border-radius:3px;color:#ff887b;color:var(--danger);cursor:pointer;display:grid;flex:0 0 auto;height:30px;place-items:center;transition:background .14s ease;width:30px}.row-delete svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.6;width:15px}.row-delete:hover{background:#ff887b24}.visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.empty-state{padding:48px 22px;text-align:center}.empty-state svg{fill:none;stroke:#8b9b9e;stroke:var(--muted);stroke-width:1.2;width:48px}.empty-state h3{font-size:1.5rem;margin:12px 0 4px}.empty-state p{color:#8b9b9e;color:var(--muted);font-size:.68rem;line-height:1.6;margin:0 auto;max-width:320px}.record-skeleton{grid-gap:1px;background:#314044;background:var(--line);display:grid;gap:1px}.record-skeleton i{animation:loading 1.2s linear infinite;background:linear-gradient(90deg,#172124,#1d292c,#172124);background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;height:65px}@keyframes loading{to{background-position:-200% 0}}.confirm-backdrop{animation:fade-in .14s ease-out both;background:#060c0ebd;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:20}.confirm-dialog{animation:panel-in .2s ease-out both;background:#1d292c;background:var(--surface-2);border:1px solid #22d3ee;border:1px solid var(--signal);box-shadow:10px 10px 0 #00000047;padding:20px;width:min(100%,380px)}.confirm-dialog h3{font-size:1.4rem;letter-spacing:.02em;margin:0 0 8px}.confirm-dialog p{color:#8b9b9e;color:var(--muted);font-size:.68rem;line-height:1.6;margin:0 0 20px}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-actions button{border-radius:2px;cursor:pointer;font-size:.62rem;font-weight:600;letter-spacing:.09em;min-height:42px;padding:0 20px}.confirm-cancel{background:#0000;border:1px solid #314044;border:1px solid var(--line);color:#eaf4f7;color:var(--ink)}.confirm-ok{background:#ff887b;background:var(--danger);border:1px solid #74483f;color:#2b0f0b}.confirm-actions button:disabled{cursor:wait;opacity:.55}.camera-scan{animation:fade-in .14s ease-out both;background:#05090a;display:grid;grid-template-rows:minmax(0,1fr) auto;inset:0;outline:0;position:fixed;z-index:30}.camera-scan-view{overflow:hidden;position:relative}.camera-scan-view video{background:#05090a;display:block;height:100%;object-fit:cover;width:100%}.camera-scan-reticle{border:2px solid #22d3ee;border:2px solid var(--signal);border-radius:4px;box-shadow:0 0 0 100vmax #05090a8c;height:32%;inset:50% 10% auto;position:absolute;transform:translateY(-50%)}.camera-scan-reticle:after{animation:scan-sweep 1.5s ease-in-out infinite alternate;background:#ff887b;background:var(--danger);content:"";height:2px;left:0;opacity:.85;position:absolute;right:0}@keyframes scan-sweep{0%{top:6%}to{top:94%}}.camera-scan-hint,.camera-scan-target{left:16px;margin:0;position:absolute;right:16px;text-shadow:0 1px 5px #000000e6}.camera-scan-target{color:#22d3ee;color:var(--signal);font-size:.62rem;font-weight:600;letter-spacing:.14em;top:16px}.camera-scan-hint{bottom:16px;color:#cfe6ec;color:var(--label);font-size:.58rem;letter-spacing:.1em;text-align:center}.camera-scan-error{background:#172124f0;border-left:3px solid #ff887b;border-left:3px solid var(--danger);color:#ff887b;color:var(--danger);font-size:.68rem;inset:auto 16px 16px;line-height:1.5;margin:0;padding:11px 12px;position:absolute}.camera-scan-actions{background:#1d292c;background:var(--surface-2);border-top:1px solid #314044;border-top:1px solid var(--line);display:flex;gap:10px;padding:14px 16px calc(14px + env(safe-area-inset-bottom, 0px))}.camera-scan-actions button{border-radius:2px;cursor:pointer;flex:1 1;font-size:.62rem;font-weight:600;letter-spacing:.09em;min-height:48px}.camera-scan-light{background:#0000;border:1px solid #314044;border:1px solid var(--line);color:#eaf4f7;color:var(--ink)}.camera-scan-light.is-on{background:#22d3ee;background:var(--signal);border-color:#22d3ee;border-color:var(--signal);color:#04232b;color:var(--signal-dark)}.camera-scan-cancel{background:#0000;border:1px solid #22d3ee;border:1px solid var(--signal);color:#22d3ee;color:var(--signal)}@keyframes fade-in{0%{opacity:0}}.create-task-intro{grid-gap:16px;display:grid;gap:16px;justify-items:start;padding:26px 0 8px}.create-task-intro p{color:#8b9b9e;color:var(--muted);font-size:.68rem;line-height:1.6;margin:0;max-width:420px}.create-task-button{align-items:center;background:#22d3ee;background:var(--signal);border:1px solid #22d3ee;border:1px solid var(--signal);border-radius:2px;color:#04232b;color:var(--signal-dark);cursor:pointer;display:flex;font-size:.68rem;font-weight:700;gap:10px;letter-spacing:.12em;min-height:52px;padding:0 26px}.create-task-button svg{fill:none;stroke:currentColor;stroke-width:2.4;width:18px}.create-task-form{grid-gap:14px;display:grid;gap:14px;padding-top:18px}.import-row{display:flex;flex-wrap:wrap;gap:10px}.import-button,.template-button{align-items:center;background:#1d292c;background:var(--surface-2);border:1px solid #314044;border:1px solid var(--line);border-radius:2px;color:#eaf4f7;color:var(--ink);cursor:pointer;display:flex;flex:1 1 180px;font-size:.62rem;font-weight:600;gap:9px;justify-content:center;letter-spacing:.1em;min-height:46px;padding:0 18px}.template-button svg{fill:none;stroke:currentColor;stroke-width:2;width:16px}.import-button,.import-button:hover,.template-button:hover{border-color:#22d3ee;border-color:var(--signal)}.import-button{color:#22d3ee;color:var(--signal)}.import-button input{height:1px;opacity:0;position:absolute;width:1px}.import-button:focus-within{outline:2px solid #22d3ee;outline:2px solid var(--signal);outline-offset:3px}.import-hint{color:#8b9b9e;color:var(--muted);font-size:.6rem;line-height:1.6;margin:0}.manual-rows{grid-gap:12px;background:#1d292c;background:var(--surface-2);border:1px solid #314044;border:1px solid var(--line);border-radius:2px;display:grid;gap:12px;padding:12px}.manual-rows-heading{align-items:baseline;color:#cfe6ec;color:var(--label);display:flex;flex-wrap:wrap;font-size:.55rem;font-weight:600;gap:8px;letter-spacing:.14em;margin:0}.manual-rows-heading span{color:#8b9b9e;color:var(--muted);font-size:.55rem;font-weight:400;letter-spacing:.04em;text-transform:none}.manual-fields{grid-gap:1px;background:#314044;background:var(--line);display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.add-row-button{align-items:center;background:none;border:1px dashed #22d3ee;border:1px dashed var(--signal);border-radius:2px;color:#22d3ee;color:var(--signal);cursor:pointer;display:flex;font-size:.62rem;font-weight:600;gap:9px;justify-content:center;letter-spacing:.1em;min-height:44px}.add-row-button svg{fill:none;stroke:currentColor;stroke-width:2.4;width:16px}.add-row-button:hover{background:#ffffff0a}.import-preview{grid-gap:12px;border-top:1px solid #314044;border-top:1px solid var(--line);display:grid;gap:12px;padding-top:14px}.import-summary{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.import-summary span{color:#8b9b9e;color:var(--muted);display:block;font-size:.5rem;font-weight:600;letter-spacing:.14em}.import-summary strong{display:block;font-size:.74rem;line-height:1.25;margin-top:4px;overflow-wrap:anywhere}.import-table{border-collapse:collapse;font-size:.6rem;width:100%}.import-table th{color:#cfe6ec;color:var(--label);font-size:.5rem;font-weight:600;letter-spacing:.12em;padding:6px 8px 6px 0;text-align:left;white-space:nowrap}.import-table td,.import-table th{border-bottom:1px solid #314044;border-bottom:1px solid var(--line)}.import-table td{color:#eaf4f7;color:var(--ink);line-height:1.3;overflow-wrap:anywhere;padding:7px 8px 7px 0}.task-list{grid-gap:1px;background:#314044;background:var(--line);display:grid;gap:1px}.task-card{align-items:center;background:#172124;background:var(--surface);display:flex;gap:12px;padding:14px 16px}.task-card.is-complete{box-shadow:inset 3px 0 0 #77dca4;box-shadow:inset 3px 0 0 var(--success)}.task-open{grid-gap:6px;background:none;border:0;color:inherit;cursor:pointer;display:grid;flex:1 1;gap:6px;min-width:0;padding:0;text-align:left}.task-code{align-items:center;display:flex;font-family:Barlow Condensed,sans-serif;font-size:1.25rem;font-weight:700;gap:8px;letter-spacing:.04em}.task-meta{color:#8b9b9e;color:var(--muted);font-size:.58rem;line-height:1.35;overflow-wrap:anywhere}.task-bar{background:#1d292c;background:var(--surface-2);display:block;height:4px}.task-bar i{background:#22d3ee;background:var(--signal);display:block;height:100%;transition:width .2s ease}.task-card.is-complete .task-bar i{background:#77dca4;background:var(--success)}.task-counts{color:#cfe6ec;color:var(--label);font-size:.55rem;letter-spacing:.08em}.task-actions{align-items:center;display:flex;gap:8px}.ready-check{fill:none;stroke:#77dca4;stroke:var(--success);stroke-width:2.6;width:17px}.task-detail-bar{align-items:center;border-bottom:1px solid #314044;border-bottom:1px solid var(--line);display:flex;gap:10px;padding-bottom:12px}.task-file-name{color:#8b9b9e;color:var(--muted);flex:1 1;font-size:.58rem;line-height:1.35;min-width:0;overflow-wrap:anywhere}.locator-groups{grid-gap:1px;background:#314044;background:var(--line);display:grid;gap:1px;margin-top:12px}.locator-group{background:#172124;background:var(--surface)}.locator-group summary{align-items:center;cursor:pointer;display:flex;gap:10px;list-style:none;padding:12px 16px}.locator-group summary::-webkit-details-marker{display:none}.locator-label{color:#8b9b9e;color:var(--muted);font-size:.5rem;font-weight:600;letter-spacing:.14em}.locator-name{flex:1 1;font-family:Barlow Condensed,sans-serif;font-size:1.1rem;letter-spacing:.04em;line-height:1.2;min-width:0;overflow-wrap:anywhere}.locator-progress{border:1px solid #314044;border:1px solid var(--line);color:#cfe6ec;color:var(--label);font-size:.55rem;letter-spacing:.08em;padding:3px 8px;white-space:nowrap}.locator-group.is-complete summary{box-shadow:inset 3px 0 0 #77dca4;box-shadow:inset 3px 0 0 var(--success)}.locator-group[open] summary{border-bottom:1px solid #314044;border-bottom:1px solid var(--line)}.task-line{grid-gap:12px;align-items:center;background:#1d292c;background:var(--surface-2);border-top:1px solid #314044;border-top:1px solid var(--line);display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,260px) auto;padding:12px 16px}.task-line.is-ready{box-shadow:inset 3px 0 0 #77dca4;box-shadow:inset 3px 0 0 var(--success)}.line-cells{grid-gap:10px 14px;display:grid;gap:10px 14px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));min-width:0}.line-cells>div{grid-gap:4px;display:grid;gap:4px;min-width:0}.line-cells span{color:#8b9b9e;color:var(--muted);font-size:.48rem;font-weight:600;letter-spacing:.14em}.line-cells strong{font-size:.68rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere;white-space:normal}.line-photos{grid-gap:8px;gap:8px}.line-photos,.line-seal{display:grid;min-width:0}.line-seal{grid-gap:1px;background:#314044;background:var(--line);gap:1px}.line-seal .field{padding:9px 10px 10px}.line-seal .field-wide{grid-column:auto}.task-line.is-failed{box-shadow:inset 3px 0 0 #ff887b;box-shadow:inset 3px 0 0 var(--danger)}.task-line.is-failed .line-status{color:#ff887b;color:var(--danger)}.seal-signers{grid-gap:12px;background:#1d292c;background:var(--surface-2);border-bottom:1px solid #314044;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));padding:12px 16px}.seal-signers span{color:#8b9b9e;color:var(--muted);display:block;font-size:.5rem;font-weight:600;letter-spacing:.14em}.seal-signers strong{display:block;font-size:.74rem;font-weight:500;margin-top:4px;overflow-wrap:anywhere}.line-photos .photo-input{min-height:42px}.line-photos .photo-input.is-pending{border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.photo-thumb{border:1px solid #314044;border:1px solid var(--line);flex:none;height:34px;object-fit:cover;width:34px}.line-status{align-items:center;color:#cfe6ec;color:var(--label);display:flex;font-size:.53rem;font-weight:600;gap:6px;letter-spacing:.1em;margin:0;white-space:nowrap}.task-line.is-ready .line-status{color:#77dca4;color:var(--success)}.task-save-bar{align-items:center;justify-content:space-between}.pending-count{color:#8b9b9e;color:var(--muted);font-size:.6rem;letter-spacing:.06em}.andi-import{grid-gap:12px;background:#172124;background:var(--surface);border-bottom:1px solid #314044;border-bottom:1px solid var(--line);display:grid;gap:12px;padding:16px 14px}.andi-pickers{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.andi-pick{grid-gap:5px;background:linear-gradient(180deg,#1b262a,#141d20);border:1px dashed #3f5257;border-radius:4px;cursor:pointer;display:grid;gap:5px;justify-items:center;overflow:hidden;padding:16px 12px;position:relative;text-align:center;transition:border-color .14s ease,background .14s ease}.andi-pick:focus-within,.andi-pick:hover{background:linear-gradient(180deg,#22343a,#162024);border-color:#22d3ee;border-color:var(--signal)}.andi-pick.is-busy{cursor:progress;opacity:.55}.andi-pick svg{fill:none;stroke:#22d3ee;stroke:var(--signal);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;width:26px}.andi-pick b{color:#eaf4f7;color:var(--ink);font-family:Barlow Condensed,sans-serif;font-size:1.02rem;font-weight:700;letter-spacing:.11em}.andi-pick small{color:#8b9b9e;color:var(--muted);font-size:.55rem;letter-spacing:.04em}.andi-pick input{cursor:inherit;inset:0;opacity:0;position:absolute}.andi-hint{color:#8b9b9e;color:var(--muted);font-size:.6rem;line-height:1.5;margin:0}.andi-hint b{color:#22d3ee;color:var(--signal)}.andi-panel .status-message{margin:12px 14px}.andi-stage{background:#10171999;border-bottom:1px solid #314044;border-bottom:1px solid var(--line)}.andi-bulk-rename,.andi-selection-bar,.andi-stage-head,.andi-toolbar{align-items:center;border-bottom:1px solid #314044;border-bottom:1px solid var(--line);display:flex;gap:10px;padding:11px 14px}.andi-stage-head{background:#1d292c;background:var(--surface-2);color:#cfe6ec;color:var(--label);font-size:.56rem;font-weight:600;justify-content:space-between;letter-spacing:.12em}.andi-bulk-field{grid-gap:5px;display:grid;flex:1 1;gap:5px;min-width:0}.andi-bulk-field span{color:#cfe6ec;color:var(--label);font-size:.55rem;font-weight:600;letter-spacing:.11em}.andi-bulk-field input{background:#11191b;border:1px solid #3a4a4e;border-radius:2px;color:#eaf4f7;color:var(--ink);font-size:.74rem;min-height:38px;outline:0;padding:7px 10px;width:100%}.andi-bulk-field input:focus{border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.andi-bulk-rename .modify-button{align-self:end;min-height:38px}.andi-stage-list{list-style:none;margin:0;padding:0}.andi-stage-item{align-items:center;border-bottom:1px solid #31404499;display:flex;gap:11px;padding:10px 14px}.andi-stage-item img{border:1px solid #314044;border:1px solid var(--line);flex:none;height:52px;object-fit:cover;width:52px}.andi-name-field{grid-gap:5px;display:grid;flex:1 1;gap:5px;min-width:0}.andi-name-input{align-items:center;background:#11191b;border:1px solid #3a4a4e;border-radius:2px;display:flex;min-width:0}.andi-name-input:focus-within{border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 3px 0 0 #22d3ee;box-shadow:inset 3px 0 0 var(--signal)}.andi-name-input input{background:#0000;border:0;color:#eaf4f7;color:var(--ink);font-size:.74rem;min-height:38px;min-width:0;outline:0;padding:7px 4px 7px 10px;width:100%}.andi-name-input>span{color:#8b9b9e;color:var(--muted);font-size:.68rem;padding-right:10px}.andi-size{align-items:center;color:#8b9b9e;color:var(--muted);display:flex;font-size:.55rem;gap:7px;letter-spacing:.04em}.andi-size b{color:#77dca4;color:var(--success)}.andi-dirty,.andi-duplicate{color:#22d3ee;color:var(--signal);font-size:.53rem;font-style:normal;letter-spacing:.08em;text-transform:uppercase}.andi-duplicate{color:#e7c46a}.andi-actions{align-items:center;padding:13px 14px}.andi-actions,.andi-toolbar{justify-content:space-between}.andi-toolbar{background:#1d292c;background:var(--surface-2);flex-wrap:wrap}.andi-format{background:#172124;background:var(--surface);border:1px solid #314044;border:1px solid var(--line);border-radius:3px;display:flex;overflow:hidden}.andi-format button{background:#0000;border:0;border-right:1px solid #314044;border-right:1px solid var(--line);color:#8b9b9e;color:var(--muted);cursor:pointer;font-size:.56rem;font-weight:600;letter-spacing:.12em;min-height:34px;padding:0 15px}.andi-format button:last-child{border-right:0}.andi-format button.is-active{background:#22d3ee;background:var(--signal);color:#04232b;color:var(--signal-dark)}.andi-selection-bar{background:#22d3ee0f;color:#cfe6ec;color:var(--label);font-size:.58rem;justify-content:space-between;letter-spacing:.04em}.andi-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));padding:14px}.andi-card{grid-gap:8px;background:#172124;background:var(--surface);border:1px solid #314044;border:1px solid var(--line);border-radius:3px;display:grid;gap:8px;padding:9px;position:relative}.andi-card.is-selected{border-color:#22d3ee;border-color:var(--signal);box-shadow:inset 0 0 0 1px #22d3ee;box-shadow:inset 0 0 0 1px var(--signal)}.andi-card-select{left:13px;position:absolute;top:13px;z-index:1}.andi-card-select input{accent-color:#22d3ee;accent-color:var(--signal);height:20px;width:20px}.andi-thumb{background:#0c1214;border:1px solid #314044;border:1px solid var(--line);border-radius:2px;cursor:pointer;display:block;overflow:hidden;padding:0;position:relative}.andi-thumb img{display:block;height:116px;object-fit:cover;width:100%}.andi-thumb b{background:#04232bdb;border-radius:8px;bottom:5px;color:#22d3ee;color:var(--signal);font-size:.53rem;padding:1px 6px;position:absolute;right:5px}.andi-card-actions{gap:8px}.andi-buffer-bar,.andi-card-actions{align-items:center;display:flex;justify-content:space-between}.andi-buffer-bar{background:#10171999;border-bottom:1px solid #314044;border-bottom:1px solid var(--line);gap:12px;padding:11px 14px}.andi-buffer-total{grid-gap:3px;display:grid;gap:3px;min-width:0}.andi-buffer-total span{color:#cfe6ec;color:var(--label);font-size:.55rem;font-weight:600;letter-spacing:.12em}.andi-buffer-total b{color:#22d3ee;color:var(--signal);font-family:Barlow Condensed,sans-serif;font-size:1.06rem;letter-spacing:.06em}.andi-buffer-total small{color:#8b9b9e;color:var(--muted);font-size:.55rem;letter-spacing:.04em}.andi-purge{align-items:center;background:#0000;border:1px solid #74483f;border-radius:3px;color:#ff887b;color:var(--danger);cursor:pointer;display:flex;flex:0 0 auto;font-size:.56rem;font-weight:600;gap:7px;letter-spacing:.12em;min-height:34px;padding:0 12px;transition:background .14s ease}.andi-purge svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.6;width:16px}.andi-purge:hover:not(:disabled){background:#ff887b24}.andi-purge:disabled{border-color:#314044;border-color:var(--line);color:#8b9b9e;color:var(--muted);cursor:default}.andi-history{border-top:1px solid #314044;border-top:1px solid var(--line)}.andi-history-head{align-items:baseline;background:#1d292c;background:var(--surface-2);border-bottom:1px solid #314044;border-bottom:1px solid var(--line);color:#cfe6ec;color:var(--label);display:flex;flex-wrap:wrap;font-size:.56rem;font-weight:600;gap:8px;justify-content:space-between;letter-spacing:.12em;padding:11px 14px}.andi-history-head small{color:#8b9b9e;color:var(--muted);font-weight:400;letter-spacing:.04em;text-transform:none}.andi-history-list{list-style:none;margin:0;padding:0}.andi-history-item{align-items:center;border-bottom:1px solid #31404499;display:flex;gap:11px;padding:10px 14px}.andi-history-item:last-child{border-bottom:0}.andi-history-meta{grid-gap:3px;display:grid;flex:1 1;gap:3px;min-width:0}.andi-history-meta b{color:#22d3ee;color:var(--signal);font-family:IBM Plex Mono,monospace;font-size:.6rem;letter-spacing:.06em}.andi-history-meta>span{color:#eaf4f7;color:var(--ink);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.andi-history-meta small{color:#8b9b9e;color:var(--muted);flex-wrap:wrap;font-size:.55rem;letter-spacing:.04em}.andi-again,.andi-history-meta small{align-items:center;display:flex;gap:6px}.andi-again{min-height:34px}.andi-again svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.7;width:14px}.andi-again:disabled{border-color:#314044;border-color:var(--line);color:#8b9b9e;color:var(--muted);cursor:default}@media (max-width:560px){.andi-pickers{grid-template-columns:1fr}.andi-bulk-rename{flex-wrap:wrap}.andi-bulk-rename .modify-button{width:100%}.andi-toolbar{align-items:stretch;flex-direction:column}.andi-format{justify-content:stretch}.andi-format button{flex:1 1}.andi-actions{align-items:stretch;flex-direction:column-reverse}.andi-grid{gap:8px;grid-template-columns:1fr 1fr;padding:10px}.andi-buffer-bar{align-items:stretch;flex-direction:column}.andi-purge{justify-content:center}}button:focus-visible{outline:2px solid #22d3ee;outline:2px solid var(--signal);outline-offset:3px}@media (max-width:560px){.app-shell{padding:18px 14px 48px}.date-strip,.workbook-tabs{margin-inline:-14px;padding-inline:14px}.workbook-tabs button{font-size:1.05rem;min-height:48px;padding:0 16px}.field-wide{grid-column:auto}.data-row{grid-template-columns:auto minmax(0,1fr)}.row-select{align-self:start;grid-column:1;grid-row:1}.row-cells{grid-column:2;grid-row:1}.row-actions{grid-column:1/-1;grid-row:2;justify-content:flex-end}.saved-toolbar{align-items:stretch;flex-direction:column}.download-button{justify-content:center}.form-actions{flex-direction:column-reverse}.delete-button,.save-button{justify-content:center;width:100%}.confirm-actions button{flex:1 1}.create-task-button{justify-content:center;width:100%}.task-card{align-items:stretch;flex-direction:column}.task-actions{justify-content:flex-end}.task-line{grid-template-columns:minmax(0,1fr)}.line-photos{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.line-status{justify-content:flex-end}.task-detail-bar{flex-wrap:wrap}.task-file-name{flex-basis:100%;order:3}.task-save-bar{align-items:stretch}.pending-count{text-align:center}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/*# sourceMappingURL=main.2d7a3856.css.map*/