:root{--paper:#f7f5ef;--surface:#fffefa;--ink:#292b27;--muted:#777a70;--line:#e5e4da;--wine:#5c303e;--wine-dark:#402530;--sage:#7f8971;--sage-light:#eef1e8;--wood:#ac795b;--danger:#b2393e;--shadow:0 12px 35px #32231a12;--radius:16px;--sidebar:230px;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:var(--wine)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ae8d5d;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;font-weight:600;margin-bottom:9px}h2{font-size:21px;font-weight:600;letter-spacing:-.35px}h3{font-size:17px;font-weight:600}p{line-height:1.55}small,.muted{color:var(--muted)}.loading{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Georgia,serif;font-size:32px}.loading span{font:14px ui-sans-serif,sans-serif;color:var(--muted);margin-top:15px}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;background:var(--wine-dark);color:#f8f2e7;padding:32px 18px 24px;display:flex;flex-direction:column;z-index:20}.brand{font-family:Georgia,"Times New Roman",serif;font-size:27px;letter-spacing:-.7px;padding:0 14px}.brand small{display:block;color:#ceb7b6;font:10px ui-sans-serif,sans-serif;letter-spacing:2.7px;margin-top:9px;text-transform:uppercase}.brand-icon{display:inline-block;margin-right:7px;font-size:24px}.sidebar nav{display:grid;gap:5px;margin-top:41px}.nav-item{display:flex;align-items:center;gap:12px;color:#ddced0;padding:13px 14px;border:0;background:none;text-align:left;border-radius:9px;font-size:14px;white-space:nowrap}.nav-item:hover{background:#ffffff0b}.nav-item.active{background:#ffffff14;color:#fff}.nav-item.active:before{content:"";position:absolute;left:0;background:#c3a485;width:3px;height:26px;border-radius:0 3px 3px 0}.nav-icon{font-size:18px;width:21px;line-height:1}.nav-count{font-size:10px;background:#ffffff1c;border-radius:4px;padding:3px 5px;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:36px 14px 0;font-size:12px;color:#c4adb3;line-height:1.8}.sidebar-bottom strong{color:#ede0df;font-weight:500}.main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));padding:0 44px 44px}.topbar{height:98px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.search-wrap{position:relative;width:min(390px,100%);color:var(--muted)}.search-wrap>span{position:absolute;left:0;top:11px;font-size:20px}.global-search{border:0;background:transparent;width:100%;padding:12px 20px 12px 31px;outline:none;font-size:14px}.top-actions{display:flex;gap:13px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:#e6e7de;color:#657058;display:grid;place-items:center;font-family:Georgia,serif;font-size:15px}.content{padding-top:33px;max-width:1450px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:29px}.page-heading p{font-size:14px;color:var(--muted);margin-bottom:0}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--wood);margin-bottom:12px;font-weight:600}.btn{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--ink);font-weight:500;line-height:1.2;text-decoration:none;white-space:nowrap;min-height:42px}.btn:hover{border-color:#bfb9aa;background:#faf8f0}.btn.primary{background:var(--wine);color:#fff;border-color:var(--wine)}.btn.primary:hover{background:var(--wine-dark)}.btn.small{font-size:12px;min-height:33px;padding:8px 11px}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.danger{color:var(--danger);border-color:#eed4d4}.btn.active{background:var(--sage-light);border-color:#b8c3a9;color:#4c6044}.icon-btn{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:20px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:29px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:19px 19px 17px}.stat-number{font-size:28px;font-weight:500;letter-spacing:-1px;margin:10px 0 6px}.stat-label{font-size:11px;color:var(--muted);white-space:nowrap}.stat-icon{color:#97957f;font-size:17px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-top h2{margin:0}.section-top .muted{font-size:12px}.unit-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.unit-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 15px #35291803}.unit-preview{min-height:156px;background:#eeece2;padding:25px 34px;display:flex;align-items:center;justify-content:center;position:relative}.preview-grid{display:grid;gap:5px;padding:12px;border:7px solid #ad8c6d;border-radius:3px;background:#d0b295;box-shadow:0 7px 10px #5d453723;width:min(100%,340px)}.preview-slot{aspect-ratio:1;border-radius:50%;background:#f9f5ec;border:1px solid #a68a6b;min-width:4px}.preview-slot.filled{background:var(--wine);border-color:var(--wine)}.preview-slot.disabled{opacity:.15}.unit-card-body{padding:20px 23px}.unit-card-body h3{margin-bottom:5px}.unit-meta{font-size:12px;color:var(--muted);margin-bottom:18px}.progress-track{height:5px;background:#eae9e0;border-radius:5px;overflow:hidden}.progress-fill{background:var(--sage);height:100%;border-radius:5px}.unit-capacity{display:flex;justify-content:space-between;margin:10px 0 17px;font-size:12px;color:var(--muted)}.unit-capacity strong{font-weight:600;color:var(--ink)}.card-bottom{display:flex;justify-content:space-between;align-items:center}.tag{display:inline-flex;align-items:center;padding:4px 8px;background:var(--sage-light);border-radius:4px;color:#68745b;font-size:10px;letter-spacing:.4px}.tag.wine{background:#f1e7e9;color:var(--wine)}.empty-note{border:1px dashed #d4d2c6;background:#f5f3eb;border-radius:12px;padding:22px 26px;margin:25px 0;display:flex;align-items:center;gap:19px}.empty-note .note-icon{font-size:28px;color:#a59d84}.empty-note p{font-size:13px;color:var(--muted);margin:4px 0 0}.empty-note h3{margin:0;font-size:15px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:25px;margin-bottom:22px}.panel h2{margin-bottom:20px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.toolbar label{font-size:12px;color:var(--muted)}.toolbar select{min-width:170px}.field{display:grid;gap:7px;margin-bottom:17px}.field>label{font-size:12px;font-weight:500}.field small{font-size:11px;line-height:1.5}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-row.three{grid-template-columns:repeat(3,1fr)}input,select,textarea{padding:11px 12px;border:1px solid #dcddd1;border-radius:7px;background:var(--surface);color:var(--ink);min-width:0;width:100%;font-size:14px}input[type=checkbox]{width:auto;accent-color:var(--wine)}input[type=file]{font-size:13px}textarea{resize:vertical;min-height:88px}details{border-top:1px solid var(--line);padding-top:16px;margin:6px 0 20px}summary{font-size:13px;font-weight:500;cursor:pointer;margin-bottom:15px}label.check{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.5}.map-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#f3f1e8;max-height:650px;touch-action:pan-x pan-y}.map-space{position:relative;width:1200px;height:850px;background-image:radial-gradient(#c9c7ba 1px,transparent 1px);background-size:20px 20px;transform-origin:top left}.map-scaled{position:relative;overflow:hidden}.map-unit{position:absolute;border:2px solid #9b8772;background:#e4d8c3;border-radius:6px;padding:11px;min-width:70px;min-height:65px;box-shadow:0 4px 9px #695e4513;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;user-select:none}.map-unit.fridge{background:#e0e6df;border-color:#a5afa4}.map-unit.box{background:#ead9bf}.map-unit .map-name{font-size:13px;font-weight:600;margin:3px 0 7px}.map-unit .map-count{font-size:10px;color:#796d59}.map-unit .map-open{margin-top:9px;background:#ffffff90;border:0;border-radius:4px;font-size:10px;padding:5px 10px;color:#514838}.map-drag{position:absolute;top:3px;left:4px;cursor:grab;touch-action:none;color:#8b7961;padding:4px;font-size:18px;line-height:1}.map-resize{position:absolute;right:1px;bottom:1px;cursor:nwse-resize;touch-action:none;color:#8b7961;padding:4px;font-size:15px}.map-hint{font-size:11px;line-height:1.5;color:var(--muted);margin:13px 0 0}.unit-tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:24px;padding-bottom:3px}.rack-scroll{overflow-x:auto;padding-bottom:10px}.rack-face{min-width:max-content;max-width:100%;margin:auto;display:grid;gap:9px;padding:22px 20px 17px;border:10px solid #ab8968;border-radius:6px;background:#e3c9aa;box-shadow:inset 0 0 15px #92734c20}.rack-row{display:flex;gap:9px;align-items:center}.row-number{width:20px;font-size:11px;color:#755e48;text-align:center;flex:none}.slot{width:49px;height:49px;border:1px solid #af9270;border-radius:50%;background:#fcf8ef;box-shadow:inset 0 2px 5px #5d4c3215;display:grid;place-items:center;position:relative;flex:none;padding:0;font-size:10px;color:#928167}.slot:hover{outline:2px solid var(--sage);outline-offset:3px}.slot.filled{background:var(--wine);color:#fff;box-shadow:inset 0 2px 8px #0003;border-color:#4b2833}.slot .vintage{font-size:9px;position:absolute;bottom:6px;font-weight:600}.bottle-mark{width:12px;height:24px;display:block;background:#f3e4d3;border-radius:3px 3px 4px 4px;position:relative;margin-top:-6px}.bottle-mark:before{content:"";position:absolute;top:-5px;left:3px;height:7px;width:6px;background:#f3e4d3;border-radius:1px}.bottle-mark:after{content:"";position:absolute;top:7px;width:12px;height:8px;background:#b69675}.slot.selected{outline:3px solid #758664;outline-offset:4px}.slot.disabled{background:#c5b7a0;border-style:dashed;opacity:.5}.slot.disabled:after{content:"×";font-size:22px}.slot.drop-target{outline:4px solid #7f9b66;outline-offset:3px}.column-numbers{display:flex;gap:9px;padding-left:29px}.column-numbers span{width:49px;text-align:center;font-size:10px;color:#75634f;flex:none}.legend{display:flex;justify-content:center;gap:21px;font-size:11px;color:var(--muted);margin-top:20px}.legend span{display:flex;align-items:center;gap:6px}.legend i{height:10px;width:10px;border-radius:50%;border:1px solid #b79d7e;background:#fcf8ef}.legend i.filled{background:var(--wine);border-color:var(--wine)}.legend i.disabled{background:#c5b7a0;border-style:dashed}.rack-info{display:flex;justify-content:space-between;gap:10px;margin-bottom:24px}.rack-info p{font-size:12px;color:var(--muted);margin:5px 0 0}.rack-info h2{margin-bottom:0}.empty-state{text-align:center;padding:45px 25px}.empty-state>span{font-family:Georgia,serif;font-size:48px;color:#c1b194;display:block;margin-bottom:15px}.empty-state h2{font-size:20px;margin-bottom:8px}.empty-state p{font-size:13px;color:var(--muted);max-width:470px;margin:0 auto 22px}.wine-list{display:grid;gap:0}.wine-row{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.wine-row:last-child{border:0}.wine-icon{width:45px;height:58px;border-radius:7px;background:#f0e8de;display:flex;align-items:center;justify-content:center;flex:none}.wine-icon .bottle-mark{background:var(--wine);width:17px;height:34px;margin-top:3px}.wine-icon .bottle-mark:before{background:var(--wine);width:7px;height:9px;left:5px;top:-7px}.wine-icon .bottle-mark:after{width:17px;height:13px;top:10px;background:#e7d6b9}.wine-info{flex:1;min-width:0}.wine-info h3{margin:0 0 4px;font-size:15px}.wine-info p{font-size:12px;color:var(--muted);margin:0}.wine-location-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.location-link{border:1px solid var(--line);background:#faf9f3;border-radius:4px;padding:4px 7px;font-size:10px;color:#6b725e}.wine-quantity{min-width:50px;text-align:center;font-size:20px;color:var(--wine)}.wine-quantity small{display:block;font-size:10px;line-height:1.6}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:500;color:var(--muted);padding:12px 13px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:14px 13px;border-bottom:1px solid var(--line);line-height:1.5;vertical-align:middle}tbody tr:last-child td{border:0}.status-dot{display:inline-block;width:7px;height:7px;background:var(--sage);border-radius:50%;margin-right:6px}.history-type{font-size:11px;white-space:nowrap}.notice{background:var(--sage-light);border:1px solid #d3dcc8;color:#536345;padding:14px 16px;border-radius:8px;font-size:12px;line-height:1.6;margin:15px 0}.notice.warning{background:#fbf2df;border-color:#e6d4ae;color:#8b692c}.notice.error{background:#f9eaea;border-color:#e9cccc;color:#99383d}.notice ul{padding-left:18px;margin:8px 0 0}.notice strong{font-weight:600}.import-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px}.export-links{display:grid;gap:10px;margin-top:18px}.export-links .btn{justify-content:space-between}.preview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:17px 0}.preview-stats>div{background:var(--paper);border-radius:8px;padding:15px}.preview-stats strong{display:block;font-size:21px;font-weight:500}.preview-stats small{font-size:11px}.inventory-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(265px,1fr);gap:22px;align-items:start}.inventory-search-list{max-height:330px;overflow-y:auto;margin-top:12px}.inventory-wine{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fffefa;margin:8px 0}.inventory-wine.active{border-color:var(--sage);background:var(--sage-light)}.inventory-wine strong{font-size:12px;display:block;margin-bottom:3px}.inventory-wine small{font-size:11px}.inventory-position{font-size:19px;font-weight:500;letter-spacing:-.2px;padding:13px 0}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.room-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:13px 0}.room-row:last-child{border:0}.room-row .room-name{flex:1;font-size:13px}.room-row small{display:block;font-size:11px;margin-top:5px}dialog{border:1px solid var(--line);border-radius:16px;padding:0;width:min(620px,calc(100vw - 30px));max-height:calc(100dvh - 40px);overflow:auto;color:var(--ink);background:var(--surface);box-shadow:0 30px 100px #21151640}dialog::backdrop{background:#30252bb3;backdrop-filter:blur(3px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:22px 27px;position:sticky;top:0;background:var(--surface);z-index:2}.modal-header h2{font-size:21px;margin:0}.modal-body{padding:25px 27px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding:18px 27px;position:sticky;bottom:0;background:var(--surface);z-index:2}.modal-summary{display:flex;gap:20px;margin-bottom:20px}.modal-summary h3{font-size:23px;line-height:1.2;margin-bottom:8px}.modal-summary p{font-size:12px;color:var(--muted);margin:0 0 6px}.wine-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 20px;font-size:13px;margin:22px 0}.wine-meta-grid small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}.wine-label{max-width:110px;max-height:150px;object-fit:contain;border-radius:5px}.bottle-list{display:grid;gap:8px;max-height:350px;overflow:auto}.bottle-list-item{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;align-items:center;gap:10px;justify-content:space-between}.bottle-list-item p{font-size:12px;margin:0}.bottle-list-item small{font-size:10px;display:block;margin-top:4px}.form-error{font-size:12px;background:#faebeb;color:#a23a40;padding:12px;border-radius:7px;margin-bottom:15px}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--wine-dark);padding:25px}.login-card{background:var(--surface);border-radius:16px;padding:38px;width:min(410px,100%)}.login-card .brand{color:var(--wine);padding:0}.login-card p{color:var(--muted);font-size:13px;margin:24px 0}.login-card button{width:100%;margin-top:6px}#toast{position:fixed;bottom:24px;left:calc(50% + 115px);transform:translateX(-50%);background:var(--wine-dark);border:1px solid #ffffff20;color:#fff;padding:13px 23px;border-radius:9px;box-shadow:var(--shadow);z-index:100;max-width:calc(100vw - 40px);font-size:13px;pointer-events:none;opacity:0;transition:opacity .2s}#toast.visible{opacity:1}#toast.error{background:#903a40}.text-link{padding:0;border:0;background:none;color:var(--wine);text-align:left;font-size:inherit;cursor:pointer}.screen-reader{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.subtle-divider{border:0;border-top:1px solid var(--line);margin:22px 0}.mobile-only{display:none}.help-text{font-size:11px;line-height:1.7;color:var(--muted)}.danger-text{color:var(--danger)}
@media(min-width:1600px){.main{padding-left:60px;padding-right:60px}.stats{gap:18px}}
@media(max-width:1250px){:root{--sidebar:205px}.main{padding:0 27px 30px}.sidebar{padding-left:12px;padding-right:12px}.brand{font-size:24px}.stats{grid-template-columns:repeat(3,1fr)}.stat-number{font-size:27px}.stat{padding:16px 18px}.inventory-layout{grid-template-columns:1fr}.inventory-layout>.panel:last-child{order:-1}.import-grid{grid-template-columns:1fr 1fr}#toast{left:calc(50% + 100px)}}
@media(max-width:850px){:root{--sidebar:0px}.layout{display:block}.sidebar{position:relative;width:100%;padding:21px 21px 0;display:block}.brand{font-size:24px;padding:0}.brand small{display:inline;font-size:8px;letter-spacing:1.5px;margin-left:12px}.sidebar nav{display:flex;overflow-x:auto;gap:4px;margin:19px -21px 0;padding:0 12px 9px}.nav-item{font-size:11px;padding:10px 11px;gap:6px}.nav-icon{font-size:14px;width:auto}.nav-item.active:before{display:none}.nav-count{font-size:9px;padding:2px 3px}.sidebar-bottom{display:none}.main{margin-left:0;width:100%;padding:0 24px 32px}.topbar{height:70px;gap:8px}.top-actions .avatar{display:none}.top-actions .btn{font-size:12px;padding:10px}.global-search{font-size:12px;padding-left:26px}.content{padding-top:26px}h1{font-size:28px}.page-heading{margin-bottom:23px}.stats{gap:10px;margin-bottom:24px}.stat{padding:14px}.stat-number{font-size:25px;margin-top:8px}.stat-label{font-size:10px}.settings-grid{grid-template-columns:1fr}.import-grid{grid-template-columns:1fr}.panel{padding:22px}.unit-preview{min-height:150px}.unit-cards{gap:17px}#toast{left:50%;bottom:18px}.mobile-only{display:block}}
@media(max-width:520px){.main{padding:0 16px 24px}.sidebar{padding-left:18px;padding-right:18px}.sidebar nav{margin-left:-18px;margin-right:-18px}.brand small{display:block;margin:6px 0 0;font-size:8px}.topbar{height:65px}.top-actions .btn{font-size:11px;min-height:37px;padding:9px}.page-heading{gap:12px;flex-wrap:wrap}.page-heading h1{font-size:27px}.page-heading p{font-size:12px}.page-heading .actions{width:100%;margin-top:4px}.stats{grid-template-columns:repeat(3,1fr);gap:7px}.stat{padding:12px 10px;border-radius:9px}.stat-number{font-size:24px}.stat-icon{font-size:14px}.stat-label{font-size:9px}.section-top h2{font-size:18px}.section-top .btn{font-size:11px}.panel{padding:18px;border-radius:12px}.unit-cards{grid-template-columns:1fr}.unit-card-body{padding:18px 20px}.empty-note{padding:18px;align-items:flex-start;gap:12px}.empty-note .note-icon{font-size:23px}.empty-note p{font-size:12px}.field-row{gap:11px}.field-row.three{grid-template-columns:1fr 1fr}.toolbar{gap:10px}.toolbar select{min-width:130px;max-width:100%}.toolbar>label{width:100%}.rack-face{gap:8px;padding:15px 10px;border-width:7px}.rack-row{gap:8px}.slot{width:45px;height:45px}.row-number{width:16px}.column-numbers{gap:8px;padding-left:24px}.column-numbers span{width:45px}.rack-info{flex-wrap:wrap}.rack-info .actions{gap:6px}.rack-info .btn{font-size:10px;padding:7px 9px}.legend{font-size:10px;gap:14px}.wine-row{gap:11px;align-items:flex-start}.wine-icon{width:36px;height:48px}.wine-info h3{font-size:13px;line-height:1.45}.wine-info p{font-size:11px}.wine-quantity{font-size:19px;min-width:38px}.wine-row>.btn{display:none}.wine-location-list{gap:4px}.location-link{font-size:9px}.modal-header{padding:19px 20px}.modal-header h2{font-size:20px}.modal-body{padding:21px 20px}.modal-footer{padding:15px 20px}.modal-footer .btn{font-size:12px}.modal-summary{gap:13px}.modal-summary h3{font-size:21px}.wine-meta-grid{font-size:12px;gap:13px}.bottle-list-item{align-items:flex-start;flex-wrap:wrap}.bottle-list-item .actions{margin-top:5px;gap:5px}.bottle-list-item .btn{font-size:10px;padding:7px 9px;min-height:30px}.preview-stats{grid-template-columns:repeat(2,1fr)}.login-card{padding:27px}.map-scroll{max-height:460px}.help-text{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Grid children must shrink so wide racks scroll inside their own panel. */
.panel,.inventory-layout>*,.settings-grid>*,.import-grid>*{min-width:0}
.rack-scroll{width:100%;max-width:100%;min-width:0}
.inventory-search-list{min-width:0}
.slot[data-bottle]{cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-x pan-y}.slot[data-bottle] .bottle-mark,.slot[data-bottle] .vintage{pointer-events:none}.rack-bottle-grip{position:absolute;right:-6px;top:-7px;width:27px;height:27px;border:1px solid #cfb9a4;border-radius:50%;display:grid;place-items:center;background:#fbf7ef;color:var(--wine);font-size:18px;line-height:1;cursor:grab;touch-action:none;-webkit-touch-callout:none;z-index:1}.slot[data-bottle]:hover .rack-bottle-grip{background:#fff;border-color:var(--wine)}.rack-drag-source{opacity:.42;outline:2px dashed var(--wine);outline-offset:4px}.slot.drop-target{outline:4px solid #64834d;outline-offset:3px;background:#e0efd3;color:#34512b}.slot.drop-swap{background:#e4e8c8}.slot.drop-invalid{outline:4px solid #b44343;outline-offset:3px;background:#f0d1cd;color:#7a2626;opacity:1}.rack-is-dragging,.rack-is-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}.rack-drag-status{margin-top:12px;border:1px solid var(--line);border-radius:7px;padding:10px 12px;background:var(--paper);font-size:11px;line-height:1.6;color:#657153;min-height:39px}.rack-drag-status.invalid{color:#9a3d3d;background:#fbefeb}.rack-drag-ghost{position:fixed;left:0;top:0;z-index:110;pointer-events:none;display:flex;gap:12px;align-items:center;padding:14px 17px;max-width:230px;background:var(--wine-dark);color:#fff;border:2px solid #b4c49e;border-radius:12px;box-shadow:0 10px 28px #22182044;font-size:12px;line-height:1.4}.rack-drag-ghost .bottle-mark{flex:none;margin:0}.rack-drag-ghost.invalid{border-color:#d19494}.rack-drag-ghost span:last-child{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.rack-scroll{overscroll-behavior-x:contain}
.wine-thumb{width:45px;height:68px;object-fit:contain;flex:none;border-radius:5px;background:#fff;align-self:center}
.image-intro{display:flex;gap:15px;align-items:flex-start;max-width:850px;margin:-5px 0 22px}.image-intro-icon{font-size:28px;color:var(--wood)}.image-intro p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.image-summary{display:flex;flex-wrap:wrap;gap:18px 30px;margin:23px 0;color:var(--muted);font-size:12px}.image-summary strong{font-size:22px;font-weight:500;color:var(--wine);margin-right:4px}.image-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}.image-toolbar>.muted{font-size:12px;white-space:nowrap}
.image-wine-row{display:flex;gap:17px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.image-wine-row:last-child{border-bottom:0}.image-wine-row h3{font-size:14px}.image-wine-thumb{width:50px;height:80px}.image-status{display:inline-block;margin-top:8px;border-radius:4px;background:#f1f0e9;color:#6e7167;font-size:10px;line-height:1.5;padding:4px 7px}.image-status.pending,.image-status.likely{background:#eef1e7;color:#526443}.image-status.saved{background:#f1e7e9;color:var(--wine)}.image-status.warning{background:#fbf0dc;color:#8b672b}.image-status.searching{background:#e8eef3;color:#4d667e}.image-search-warning{margin-top:6px!important;max-width:650px}
.image-progress{background:#eeeee6;border:1px solid var(--line);border-radius:12px;padding:18px 21px;margin-bottom:20px}.image-progress .section-top{margin-bottom:11px;font-size:12px}.image-progress .section-top strong{font-weight:600}.image-progress .section-top span{font-size:11px;color:var(--muted)}.image-progress progress{width:100%;height:7px;display:block;accent-color:var(--sage);border:0;border-radius:8px;background:#dbddd1;overflow:hidden}.image-progress progress::-webkit-progress-bar{background:#dbddd1}.image-progress progress::-webkit-progress-value{background:var(--sage);border-radius:8px}.image-progress p{font-size:11px;margin:10px 0 0;color:var(--muted);line-height:1.6}
.image-review-dialog{width:min(920px,calc(100vw - 30px))}.image-review-actions{margin:18px 0 22px}.image-source-input{padding:16px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}.image-source-input summary{margin-bottom:0}.image-source-input[open] summary{margin-bottom:17px}.image-source-details{padding:0 0 12px;font-size:12px}.image-source-details p{margin:7px 0}.image-source-details .image-status{margin-top:0}.image-source-details small{font-size:10px}.image-candidates{display:grid;gap:18px}.image-candidate{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}.image-candidate-preview{background:#f5f4ee;min-height:270px;padding:18px;display:grid;place-items:center}.image-candidate-preview>a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:220px}.image-candidate-preview img{display:block;object-fit:contain;width:100%;height:290px;max-width:245px}.image-candidate-info{padding:19px 20px}.image-candidate-info h3{font-size:15px;line-height:1.5;margin:10px 0 5px;overflow-wrap:anywhere}.image-candidate-info>p{font-size:11px;margin-bottom:15px}.image-candidate-info .image-status{margin-top:0}.image-evidence{margin:13px 0;font-size:11px;display:grid;gap:6px}.image-evidence>div{display:flex;gap:10px;justify-content:space-between}.image-evidence dt{color:var(--muted)}.image-evidence dd{margin:0;text-align:right;font-weight:500}.image-reasons{padding-left:17px;font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:17px}.image-review-check{padding:12px 0;border-top:1px solid var(--line);font-size:11px!important;align-items:flex-start!important}.image-review-check input{margin-top:3px;flex:none}.image-candidate-info .actions{margin-top:5px}.image-no-result{border:1px dashed #d6d4c6;border-radius:10px;padding:25px;margin-top:17px}.image-no-result h3{font-size:16px;margin-bottom:8px}.image-no-result p{font-size:12px;color:var(--muted);margin:0;line-height:1.7}
@media(max-width:850px){.image-review-dialog .modal-body{padding:21px}.image-wine-row{gap:13px}.image-candidate{grid-template-columns:minmax(140px,.6fr) minmax(0,1.4fr)}.image-candidate-info{padding:17px}.image-candidate-preview{padding:12px}.image-candidate-preview img{height:250px}.image-summary{gap:15px 22px}}
@media(max-width:600px){.image-candidate{grid-template-columns:minmax(0,1fr)}.image-candidate-preview{min-height:200px;padding:15px}.image-candidate-preview>a{min-height:190px}.image-candidate-preview img{height:220px;max-width:100%}.image-candidate-info{padding:18px}.image-wine-row{flex-wrap:wrap;gap:12px}.image-wine-row>.actions{margin-left:62px;margin-top:-4px}.image-wine-row .wine-info{min-width:calc(100% - 65px)}.image-toolbar{align-items:flex-start}.image-toolbar .actions{gap:5px}.image-toolbar .btn{font-size:10px;padding:8px}.image-summary{gap:10px 18px}.image-summary span{font-size:10px}.image-summary strong{font-size:19px}.image-intro p{font-size:11px}.image-review-dialog .modal-body{padding:20px 16px}.image-review-actions .btn{font-size:11px}.image-progress{padding:16px}.wine-thumb{width:36px;height:57px}.image-wine-thumb{width:50px;height:76px}.image-source-input .btn{white-space:normal;text-align:center}}
@media(max-width:1250px){.inventory-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:850px){.settings-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.import-grid{grid-template-columns:minmax(0,1fr)}.panel{width:100%}}
.image-upload{margin:18px 0}.image-upload-target{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px;border:2px dashed var(--line);border-radius:10px;background:var(--paper)}.image-upload-copy{flex:1 1 190px;min-width:0}.image-upload-copy strong{display:block;font-size:13px;line-height:1.5}.image-upload-copy small{display:block;margin-top:4px;font-size:11px;line-height:1.6}.image-upload-target.is-dragover{border-color:var(--wine);background:var(--sage-light)}.modal-summary.is-dragover{outline:3px dashed var(--wine);outline-offset:6px;border-radius:8px;background:var(--sage-light)}#image-upload-file{display:none}#image-upload-status{margin:10px 0 0;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}#image-upload-status.is-error{color:var(--danger)}.image-upload-selection{display:flex;align-items:flex-start;gap:17px;padding:17px;margin-top:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.image-upload-selection[hidden]{display:none}#image-upload-preview{display:block;width:100px;height:150px;object-fit:contain;flex:none;border-radius:6px;background:var(--paper)}.image-upload-details{flex:1;min-width:0;overflow-wrap:anywhere}.image-upload-details strong{display:block;font-size:13px;line-height:1.5}.image-upload-details p{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0 14px}.image-upload-details .actions{gap:7px}.image-upload-details .btn{white-space:normal;text-align:center}
@media(max-width:600px){.image-upload-target{padding:14px;gap:10px}.image-upload-copy{flex-basis:100%}.image-upload-selection{padding:13px;gap:12px}#image-upload-preview{width:72px;height:108px}.image-upload-details .actions{align-items:stretch;flex-direction:column}.image-upload-details .btn{width:100%;font-size:11px;padding:8px 10px}}

.image-vintage-choice{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:11px!important;line-height:1.6;align-items:flex-start!important;margin:12px 0}.image-vintage-choice input{flex:none;margin-top:3px}
