:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#24313d;background:#f4f6f8;font-size:16px;--blue:#315eea;--line:#dfe5eb}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:9px 13px;background:white;color:inherit;font-size:14px;transition:background .15s}button:hover{background:#edf1ff}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--blue);color:white;border-color:var(--blue)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9bb2ff;outline-offset:2px}header{min-height:90px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:15px 28px}.brand{display:flex;align-items:center;gap:12px;min-width:225px;font-weight:700;font-size:19px}.mark{font-size:31px;color:var(--blue)}small{display:block;font-size:12px;letter-spacing:1.5px;margin-top:5px;color:#718095}.project{flex:1}.project input{border:0;padding:3px 0;font-weight:600;background:transparent;width:min(100%,330px);display:block}.project span{font-size:12px;color:#718095}nav{display:flex;gap:8px}.workspace{display:grid;grid-template-columns:255px 1fr;min-height:calc(100vh - 90px)}aside{background:#fff;border-right:1px solid var(--line);padding:24px 16px}.section-head{display:flex;align-items:center;justify-content:space-between;padding:0 8px 10px}h2{margin:0;font-size:19px}.section-head h2{font-size:12px;letter-spacing:1.7px;color:#63748b}.section-head button{border:0;font-size:22px;padding:0 5px}.side-item{width:100%;display:flex;gap:8px;text-align:left;align-items:center;border:0;margin:3px 0;padding:11px 12px;background:transparent;overflow-wrap:anywhere}.side-item.active{background:#eaf0ff;color:#2f55cc;font-weight:600}.side-item .count{margin-left:auto;font-size:12px;background:#e9edf3;padding:2px 7px;border-radius:10px;color:#536477}.folder-child{font-size:14px;padding-left:24px;color:#68768b}.text-button{border:0;font-size:14px;color:#61718b}.divider{height:1px;background:var(--line);margin:26px 8px}.aside-note{font-size:12px;line-height:1.7;color:#718095;margin:30px 10px}main{padding:34px 34px 60px;min-width:0}.view-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#63748b}h1{font-size:29px;letter-spacing:-.8px;margin:8px 0}.view-head p{font-size:14px;color:#68788d;margin:8px 0 22px}.view-actions{display:flex;gap:7px}.toolbar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 0 22px;gap:15px}#filters{display:flex;gap:5px;flex-wrap:wrap}#filters button{border:0;background:transparent;color:#63748b}#filters button.active{background:#e4eaf5;color:#213a64;font-weight:600}.search{display:flex;align-items:center;gap:8px;color:#708095}.search input{width:150px;border:0;background:transparent;font-size:14px}#gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.card{border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden;position:relative}.card.selected{outline:2px solid var(--blue)}.image-wrap{position:relative;height:190px;background:#e8edf2;display:flex;align-items:center;justify-content:center}.image-wrap img{width:100%;height:100%;object-fit:contain;cursor:zoom-in}.image-wrap input{position:absolute;top:12px;left:12px;width:20px;height:20px;accent-color:var(--blue)}.card.excluded .image-wrap img{opacity:.38}.badge{position:absolute;top:12px;right:10px;background:#ffefbd;color:#805707;font-size:12px;font-weight:700;padding:5px 8px;border-radius:5px}.card-info{padding:12px}.filename{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filepath{font-size:12px;color:#718095;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.decisions{display:flex;gap:4px;margin-top:12px}.decisions button{font-size:14px;padding:6px;flex:1;border:0;background:#f1f3f6}.decisions button.active[data-state="Seguro"]{color:#146848;background:#dff2e9}.decisions button.active[data-state="Duda"]{color:#966409;background:#fff0cc}.decisions button.active[data-state="Fuera"]{color:#6e7480;background:#e1e5ea}.star{position:absolute;bottom:10px;right:10px;font-size:21px;padding:2px 9px;background:#ffffffed}.star.on{color:#a27308;background:#fff0bc}.missing{padding:20px;color:#68788d;text-align:center;font-size:14px}#selectionBar{background:#e7edff;padding:12px;display:flex;align-items:center;gap:10px;margin-bottom:20px;border-radius:8px;font-size:14px}#selectionBar[hidden]{display:none}select{padding:8px;border:1px solid var(--line);border-radius:6px;max-width:230px}#empty{text-align:center;padding:65px 20px;color:#65768a}#empty h2{color:#2b3b4e;margin:17px 0 12px}#empty p{font-size:16px;line-height:1.8}.empty-symbol{font-size:55px;color:#9baecc}.footnote{font-size:12px!important;color:#718095;margin-top:26px}.empty-group{grid-column:1/-1;padding:70px 20px;text-align:center;color:#63748b}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#25384c;color:white;padding:14px 24px;border-radius:9px;box-shadow:0 8px 40px #14223430;z-index:10;max-width:90vw}.unsupported-browser{background:#fdecea;color:#7a2d1f;border-bottom:1px solid #f3c2b8;padding:12px 20px;font-size:14px;text-align:center;font-weight:600}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:0 20px 80px #17253b40}dialog:not([open]){display:none}dialog::backdrop{background:#17253b80;backdrop-filter:blur(3px)}#inputDialog{width:420px}#inputValue{width:100%;padding:12px;margin:20px 0;border:1px solid var(--line);border-radius:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}#photoDialog{max-width:95vw;background:#15202a;color:white;text-align:center}#largePhoto{max-width:85vw;max-height:75vh;object-fit:contain}.close{position:absolute;right:10px;top:10px;font-size:24px}#previewDialog{width:1100px;max-width:95vw;max-height:92vh;background:#edf1f5}.preview-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.preview-head h2{font-size:25px;margin-top:8px}#previewDialog>p{font-size:16px;color:#61718b}.spread{margin:30px auto;background:white;box-shadow:0 10px 25px #2431421f;display:grid;grid-template-columns:1fr 1fr;aspect-ratio:2/1;position:relative;max-width:950px}.spread:after{content:'';position:absolute;left:50%;top:0;height:100%;width:1px;background:#ccc;box-shadow:0 0 12px 3px #0001;pointer-events:none}.page{padding:22px;display:grid;gap:12px;min-height:0;overflow:hidden;grid-template-columns:repeat(2,1fr)}.page.hero{grid-template-columns:1fr}.page img{width:100%;height:100%;min-height:0;object-fit:contain}.page figure{margin:0;min-height:0;position:relative}.page figcaption{position:absolute;bottom:2px;left:3px;background:#ffffffde;padding:3px;font-size:12px}.spread-label{font-size:12px;color:#63748b;text-align:center}.busy{cursor:progress}body.busy button{pointer-events:none;opacity:.65}@media(max-width:900px){header{height:auto;flex-wrap:wrap;padding:18px;gap:16px}.brand{min-width:auto}.workspace{grid-template-columns:200px 1fr}main{padding:24px 18px}.view-head{align-items:flex-start;flex-direction:column}.toolbar{flex-wrap:wrap}nav{flex-wrap:wrap}.page{padding:10px;gap:5px}}@media(max-width:600px){.workspace{display:block}aside{border-right:0;border-bottom:1px solid var(--line)}.aside-note,.divider{display:none}.section-head{padding-top:10px}#gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.image-wrap{height:145px}#selectionBar{flex-wrap:wrap}header nav{width:100%}.project{min-width:130px}.spread{aspect-ratio:1.6}}
.sort-controls{display:flex;align-items:center;gap:8px;font-size:14px;color:#63748b}.sort-controls select{font-size:14px;background:white;max-width:245px}.toolbar{flex-wrap:wrap}.photo-meta,.photo-date{font-size:12px;line-height:1.5;color:#61718b;margin-top:6px}.photo-date{margin-top:3px;color:#748095}.card.excluded{border-color:#e8b6b6;background:#fff7f7}.card.excluded .decisions button.active[data-state="Fuera"]{color:#a43838;background:#f9dcdc}.card.excluded .image-wrap{background:#f4e4e4}#filters button.active{box-shadow:inset 0 -2px #8297be}
.filter-count{display:inline-block;margin-left:4px;font-size:12px;min-width:19px;padding:1px 5px;border-radius:10px;background:#e0e6ef;color:#52657d}#filters [data-filter="Fuera"].active{color:#a43838;background:#f9e4e4;box-shadow:inset 0 -2px #ce8383}#filters [data-filter="Seguro"].active{color:#146848;background:#e3f3eb;box-shadow:inset 0 -2px #6aad91}#filters [data-filter="Duda"].active{color:#92610b;background:#fff1d2;box-shadow:inset 0 -2px #d1ac5b}
#groups .side-item{flex-wrap:wrap;position:relative;cursor:grab}
#groups .side-item:before{content:'⠿';color:#8c9bad;font-size:16px}
#groups .side-item:active{cursor:grabbing}
#groups .side-item.already-all{background:#e1efe9;color:#24614e}
#groups .side-item.already-some{background:#fff0d1;color:#855c15}
#groups .side-item.drag-origin{border:1px dashed #9babc2}
.membership-hint{flex-basis:100%;margin-left:23px;font-size:12px;font-weight:500}
.side-item.drop-target{outline:3px solid #315eea;outline-offset:2px;background:#e8edff!important;color:#2446b0!important}
#groups .side-item.drop-before{box-shadow:0 -4px 0 #315eea}
#groups .side-item.drop-after{box-shadow:0 4px 0 #315eea}
.discarded-item{margin-top:16px;border-top:1px solid #e4e7ec;border-radius:0;padding-top:18px;color:#9b5353}
.discarded-item.active{background:#fbe7e7;color:#a43838}
.card[draggable="true"]{cursor:grab}
#cleanupAction{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;max-width:440px}
.clean-button{color:#9d3939;border-color:#e7bcbc;background:#fff7f7}
.undo-label{font-size:13px;color:#627288}
.undo-button{color:#2854ce;border-color:#b9c9f4;white-space:nowrap}
#undoDock{position:fixed;bottom:20px;right:20px;width:min(470px,calc(100vw - 40px));display:flex;flex-direction:column;gap:8px;z-index:9;max-height:38vh;overflow:auto}
.undo-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;background:white;border:1px solid #cbd7ed;box-shadow:0 5px 22px #172c4c20;border-radius:9px;padding:12px 14px;font-size:14px}
#transferDialog{width:600px;max-width:94vw}
#transferDialog p{line-height:1.6;color:#63748b}
#transferDialog #transferSummary{font-size:17px;color:#293d54}
.remember-choice{display:flex;gap:9px;align-items:center;margin-top:22px;font-size:14px}
.remember-choice input{width:18px;height:18px;accent-color:#315eea}
#transferCaseLabel{margin-top:9px}
#preferencesDialog{width:600px;max-width:94vw;max-height:90vh}
.preference-section h3{font-size:15px;margin:24px 0 6px}
.preference-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e4e8ef;padding:13px 0;font-size:14px}
.preference-row small{font-size:12px;font-weight:400;letter-spacing:0}
.view-actions{flex-wrap:wrap;justify-content:flex-end}
#dragHint{color:#3155b4}
.library-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.membership-button{border:0;background:#eef2f7;color:#3155a5;padding:6px 8px;font-size:13px}.membership-button:hover{background:#e5ecff}.discard-button{border:0;background:transparent;color:#a43838;padding:6px 3px;font-size:13px}.discard-button:hover{background:#fae4e4}.discarded-badge{display:inline-block;color:#a43838;background:#f9dcdc;border-radius:5px;padding:5px 8px;font-size:12px;font-weight:700}.membership-row{display:flex;align-items:center;gap:10px;padding:13px 4px;border-bottom:1px solid #e4e8ef;cursor:pointer}.membership-row input{width:19px;height:19px;accent-color:#315eea}.membership-row span{flex:1;font-size:15px}.membership-row small{margin:0;font-size:12px;letter-spacing:0;color:#708097}
#membershipDialog{width:540px;max-width:94vw}#membershipDialog p{color:#63748b;line-height:1.5}#membershipRows{max-height:50vh;overflow:auto;margin:14px 0}
@media(max-width:900px){#cleanupAction{max-width:100%}.undo-notice{flex-wrap:wrap}.dialog-actions{flex-wrap:wrap}}
.card.discarded-card{border-color:#e8b6b6;background:#fff7f7}.card.discarded-card .image-wrap{background:#f4e4e4}.card.discarded-card .image-wrap img{opacity:.38}.card.discarded-card .discarded-badge{background:#f4cccc;color:#9f3838}
.photo-tools{display:flex;align-items:center;justify-content:center;gap:8px;margin:-6px 0 14px}.photo-tools button{padding:5px 11px}.photo-tools span{min-width:45px;text-align:center;font-size:13px;color:#d8e1ee}#photoDialog[open]{width:min(1100px,95vw);height:min(850px,92vh);overflow:hidden;display:flex;flex-direction:column}#photoStage{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;background:#101922;border-radius:8px;padding:18px}#largePhoto{max-width:none;max-height:none;width:auto;height:auto;object-fit:contain;transform-origin:center center;transition:transform .12s ease;cursor:zoom-in}#photoDialog #largeName{flex:0 0 auto;margin:12px 0 0;color:#e7edf4;font-size:14px}
