:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#142440;background:#f4f7fb;font-size:14px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#1355bd;text-decoration:none}a:hover{text-decoration:underline}.hidden{display:none!important}.muted{color:#687990}.small{font-size:12px}.topbar{position:sticky;top:0;z-index:20;height:64px;background:#142543;color:#fff;display:flex;align-items:center;gap:24px;padding:0 24px;box-shadow:0 2px 12px #101d3329}.brand{display:flex;align-items:center;gap:12px;min-width:216px;font-size:21px;white-space:nowrap}.pokeball{display:inline-block;width:36px;height:36px;border:3px solid #142039;border-radius:50%;background:linear-gradient(#ef4050 0 46%,#17243e 46% 54%,#fff 54%);position:relative;flex:none;box-shadow:0 1px 3px #0004}.pokeball:after{content:"";position:absolute;left:10px;top:10px;width:10px;height:10px;background:#fff;border:3px solid #17243e;border-radius:50%}.top-search{margin-left:auto;display:flex;align-items:center;width:min(350px,35vw);border:1px solid #ffffff45;border-radius:9px;background:#ffffff0d;color:#c4d0e4;padding:0 12px}.top-search span{font-size:26px;line-height:1}.top-search input{border:0;outline:0;background:transparent;color:white;width:100%;padding:10px}.top-search input::placeholder{color:#aab7cb}.profile-wrap{position:relative}.profile-button{display:flex;align-items:center;gap:9px;color:#fff;background:none;border:0;font-weight:650}.avatar{display:grid;place-items:center;border-radius:50%;height:36px;width:36px;background:#dceaff;color:#2255a5;font-weight:800}.profile-menu{position:absolute;top:48px;right:0;min-width:200px;background:#fff;color:#203350;border:1px solid #d9e2ef;border-radius:11px;box-shadow:0 12px 30px #0c1f4230;padding:6px}.profile-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:7px;padding:10px;color:inherit}.profile-menu button:hover{background:#eef4ff}.app-shell{display:flex}.sidebar{width:222px;background:#f9fbfe;border-right:1px solid #e0e7f1;min-height:calc(100vh - 64px);position:fixed;top:64px;bottom:0;overflow:auto;padding:18px 10px}.sidebar nav{display:grid;gap:4px}.nav-item{display:flex;gap:11px;align-items:center;width:100%;border:0;background:none;color:#33445f;text-align:left;border-radius:8px;padding:11px 12px;font-weight:600}.nav-item:hover{background:#eaf1fd}.nav-item.active{background:#1656c2;color:white;box-shadow:0 3px 9px #1656c233}.nav-icon{width:19px;height:19px;flex:none}.nav-count{margin-left:auto;background:#e5ecf7;color:#52637e;padding:2px 7px;border-radius:20px;font-size:11px}.nav-item.active .nav-count{background:#ffffff3b;color:white}.nav-separator{height:1px;background:#e2e9f2;margin:12px 6px}.main{margin-left:222px;width:calc(100% - 222px);padding:20px;max-width:1700px}.page-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:2px 0 18px}.page-title h1{margin:0;font-size:24px;letter-spacing:-.4px}.page-title p{margin:5px 0 0}.panel{background:#fff;border:1px solid #e4eaf2;border-radius:15px;box-shadow:0 4px 18px #1939620a;padding:20px;margin-bottom:18px}.panel h2{font-size:20px;margin:0 0 5px}.panel h3{font-size:15px;margin:0 0 12px}.panel-sub{color:#6b7c92;margin:0 0 18px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{border:0;border-radius:15px;text-align:left;display:flex;gap:15px;min-height:106px;padding:18px;color:#122541}.stat-card strong{font-size:25px;display:block;margin:7px 0 2px}.stat-card small{color:#5d7189}.stat-card.yellow{background:#fff9e6}.stat-card.blue{background:#edf5ff}.stat-card.green{background:#e8f9ef}.stat-card.purple{background:#f3edff}.stat-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none}.yellow .stat-icon{background:#fff0b5;color:#d59a00}.blue .stat-icon{background:#dcecff;color:#1761c5}.green .stat-icon{background:#d0f4df;color:#0b9a53}.purple .stat-icon{background:#e7d9ff;color:#7650d4}.stat-icon svg{width:22px;height:22px}.upload-layout{display:grid;grid-template-columns:3fr 1.2fr;gap:16px}.upload-zones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:1px dashed #cfd9e7;border-radius:12px;padding:8px}.upload-zone{background:#f7faff;border:1px solid #e2eaf7;border-radius:10px;text-align:center;min-height:164px;padding:16px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.upload-zone .camera-icon{display:grid;place-items:center;background:#e4f0ff;color:#155fbe;width:47px;height:47px;border-radius:50%}.upload-zone .camera-icon svg{width:24px;height:24px}.upload-zone strong{font-size:13px}.upload-zone button{min-height:36px}.file-link{background:none;border:0;color:#1559bf;text-decoration:underline;padding:0;font-weight:600}.upload-info{background:#f3f7fd;border-radius:12px;padding:17px;color:#52657f}.upload-info strong{color:#1d3555}.upload-info ul{padding-left:20px;margin-bottom:0;line-height:1.8}.upload-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.preview{position:relative;width:78px;height:92px}.preview img{width:100%;height:100%;object-fit:cover;border-radius:8px}.preview button{position:absolute;top:-6px;right:-6px;border:0;border-radius:50%;width:23px;height:23px;background:#dc3545;color:white}.upload-bottom{margin-top:15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}progress{width:min(250px,100%);height:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:8px;padding:9px 14px;min-height:37px;font-weight:700;white-space:nowrap}.btn.primary{background:#1457c7;color:#fff}.btn.primary:hover{background:#0c46ab}.btn.secondary{background:#eef4ff;color:#1555b3}.btn.outline{background:#fff;border-color:#d6e0ec;color:#263e5e}.btn.danger{background:#fff2f2;color:#b4232c}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.full{width:100%}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0}.toolbar input,.toolbar select{height:39px}.toolbar .search-field{min-width:240px;flex:2}.toolbar select{flex:1;min-width:125px}.toolbar .view-switch{margin-left:auto;display:flex;border:1px solid #d7e1ed;border-radius:8px;overflow:hidden}.view-switch button{background:white;border:0;padding:8px 10px;color:#43607f}.view-switch button.active{background:#165ac5;color:white}.filters-more{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filters-more select{max-width:200px}.search-field,input,select,textarea{background:#fff;border:1px solid #d4dfeb;border-radius:8px;color:#1d2e48;padding:9px 10px;outline-color:#1764cb}textarea{width:100%;min-height:95px;resize:vertical}label{display:block;color:#344866;font-weight:650;font-size:12px;margin-bottom:10px}label input,label select,label textarea{display:block;width:100%;margin-top:5px;font-weight:400;font-size:14px}.card-list{display:grid;gap:9px}.card-row{display:grid;grid-template-columns:160px minmax(180px,1.1fr) minmax(145px,.65fr) minmax(160px,.9fr) auto;align-items:center;gap:15px;border:1px solid #e1e8f1;border-radius:11px;background:white;padding:10px;min-height:132px}.card-row:hover{border-color:#b7cce7;box-shadow:0 3px 12px #19487b12}.card-pictures{display:flex;gap:5px;align-items:center;cursor:zoom-in}.card-pictures img{width:88px;height:108px;object-fit:cover;border-radius:7px;background:#eef2f7}.mini-pictures{display:grid;gap:4px}.mini-pictures img{width:35px;height:50px}.card-info{min-width:0}.card-info strong{font-size:15px}.card-info p{margin:5px 0;color:#60718a;font-size:12px}.card-info .line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border-radius:20px;padding:4px 9px;font-size:12px;font-weight:700}.badge.review{background:#fff0be;color:#a97000}.badge.prepared{background:#deedff;color:#1654ac}.badge.active{background:#daf8e7;color:#0b8e51}.badge.sold{background:#eadfff;color:#6948bb}.badge.archived{background:#eceff3;color:#5d6570}.price-box{background:#f7f9fd;padding:9px 11px;border-radius:9px;min-height:84px}.price-box small{color:#667992}.price-box strong{display:block;font-size:17px;margin:4px 0}.price-box .warning{color:#b77900;font-weight:650}.title-preview{min-width:0}.title-preview small{color:#687a91}.title-preview p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:5px 0;font-weight:550;line-height:1.45}.row-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.row-actions .btn{font-size:12px}.icon-button{background:none;border:0;color:inherit;padding:6px;font-size:18px}.grid-view{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid-view .card-row{display:flex;flex-direction:column;align-items:stretch}.grid-view .card-pictures img{height:160px;width:120px}.grid-view .row-actions{align-items:stretch}.grid-view .price-box{min-height:0}.empty{padding:32px;text-align:center;color:#73839a;border:1px dashed #ccd8e7;border-radius:10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.detail-image{display:flex;gap:10px;flex-wrap:wrap}.detail-image img{width:160px;height:220px;object-fit:contain;background:#f5f7fb;border-radius:9px;cursor:zoom-in}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.audit-list{max-height:300px;overflow:auto}.audit-entry{border-bottom:1px solid #edf0f5;padding:8px 0}.audit-entry small{color:#74849b}.data-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.data-box{background:#f5f8fd;border-radius:10px;padding:14px}.data-box span{color:#647790;font-size:12px}.data-box strong{display:block;font-size:19px;margin-top:5px}.monthly-row{display:flex;align-items:center;gap:10px;margin:8px 0}.monthly-row span{width:80px}.monthly-bar{background:#2b6ed4;height:14px;border-radius:20px;min-width:2px}.notice{position:sticky;top:72px;z-index:12;padding:12px 15px;border-radius:9px;margin-bottom:14px;background:#dff4e7;color:#16663e;box-shadow:0 4px 12px #1939621a}.notice.error{background:#fff0ed;color:#a63225}.form-error{color:#b42332}.form-success{color:#087b4d}.gallery{position:fixed;inset:0;z-index:50;background:#0b1325ed;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:55px 20px 20px}.gallery>img{max-width:90vw;max-height:70vh;object-fit:contain}.gallery-close{position:absolute;top:15px;right:25px;background:none;border:0;color:white;font-size:36px}.gallery-thumbs{display:flex;gap:8px;margin-top:15px;overflow:auto;max-width:95vw}.gallery-thumbs img{width:50px;height:65px;object-fit:cover;cursor:pointer;border:2px solid transparent;border-radius:5px}.gallery-thumbs img.active{border-color:#64a5ff}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(140deg,#142543,#2556a3)}.login-card{width:min(420px,100%);background:white;border-radius:17px;padding:30px;box-shadow:0 18px 45px #0003}.login-brand{display:flex;align-items:center;gap:12px}.login-brand h1{font-size:24px}.login-card form{margin-top:20px}.login-card label{font-size:14px}.mobile-only{display:none}
@media(max-width:1250px){.card-row{grid-template-columns:130px minmax(145px,1.2fr) minmax(120px,.7fr) minmax(145px,.9fr)}.card-pictures img{width:72px;height:96px}.mini-pictures img{width:30px;height:44px}.row-actions{grid-column:2 / -1;flex-direction:row;justify-content:flex-end}.card-row{gap:10px}.upload-layout{grid-template-columns:1fr}.stats-grid{gap:8px}.stat-card{padding:14px;gap:9px}}
@media(max-width:900px){.topbar{padding:0 14px}.brand{min-width:0}.main{padding:15px}.sidebar{width:190px}.main{margin-left:190px;width:calc(100% - 190px)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-row{grid-template-columns:120px minmax(135px,1fr) minmax(125px,.7fr)}.title-preview{grid-column:2 / -1}.row-actions{grid-column:2 / -1}.grid-view{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.mobile-only{display:block}.topbar{height:60px;gap:8px}.brand{font-size:17px}.brand .pokeball{width:30px;height:30px}.brand .pokeball:after{left:8px;top:8px}.top-search{display:none}.profile-button #topName,.profile-button>span:last-child{display:none}.sidebar{transform:translateX(-100%);transition:transform .2s;z-index:31;top:60px;width:250px;background:white}.sidebar.open{transform:translateX(0)}.nav-overlay{position:fixed;inset:60px 0 0;background:#0d1e3b7a;z-index:30}.main{margin:0;width:100%;padding:12px}.panel{padding:15px}.page-title h1{font-size:21px}.stat-card{min-height:95px}.stat-icon{width:37px;height:37px}.stat-card strong{font-size:22px}.upload-zones{grid-template-columns:1fr}.upload-zone{min-height:130px}.upload-info{padding:13px}.card-row{grid-template-columns:105px 1fr;gap:9px}.card-pictures img{width:68px;height:92px}.mini-pictures img{width:26px;height:40px}.card-info{grid-column:2}.price-box,.title-preview,.row-actions{grid-column:1 / -1}.price-box{min-height:0}.row-actions{justify-content:stretch}.row-actions .btn{flex:1}.grid-view{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-view .card-row{display:flex}.grid-view .card-pictures img{height:130px;width:90px}.grid-view .mini-pictures img{width:25px;height:35px}.form-grid,.data-list{grid-template-columns:1fr}.detail-image img{width:calc(50% - 5px);height:190px}.toolbar .search-field{flex-basis:100%}.toolbar select{min-width:calc(50% - 8px)}.filters-more select{max-width:none;flex:1;min-width:calc(50% - 8px)}}
@media(max-width:400px){.stats-grid{gap:7px}.stat-card{padding:10px;gap:7px}.stat-icon{width:32px;height:32px}.stat-card{min-height:90px}.stat-card small{font-size:10px}.brand strong{font-size:15px}.grid-view{grid-template-columns:1fr}}

.detail-photo{display:flex;flex-direction:column;gap:5px;width:160px}.detail-photo img{width:100%}.detail-photo small,.detail-photo a{font-size:11px}@media(max-width:700px){.detail-photo{width:calc(50% - 5px)}}
/* Keep controls inside narrow card rows and the phone viewport. */
.main,.panel,.card-row,.card-info,.title-preview,.price-box,.row-actions{min-width:0}
.card-info p,.title-preview p{overflow-wrap:anywhere}
.row-actions .btn,.detail-actions .btn{min-width:0;max-width:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
.profile-menu{max-width:calc(100vw - 20px)}
@media(max-width:1250px){.row-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;align-items:stretch}.row-actions .btn{width:100%}}
@media(max-width:700px){html,body{overflow-x:hidden}.topbar{width:100%;justify-content:space-between}.brand{min-width:0;flex:1;overflow:hidden}.brand strong{overflow:hidden;text-overflow:ellipsis}.profile-wrap{flex:none}.toolbar .view-switch{margin-left:0}.filters-more>label{flex:1 1 100%;min-width:0}.row-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.row-actions>.btn:nth-child(3){grid-column:1/-1}.detail-actions{display:grid;grid-template-columns:1fr 1fr}.detail-actions .btn{width:100%}}
@media(max-width:400px){.row-actions,.detail-actions{grid-template-columns:1fr}.row-actions>.btn:nth-child(3){grid-column:auto}.toolbar select,.filters-more select{min-width:0;max-width:100%}}
@media(max-width:700px){.toolbar .view-switch{flex:0 0 100%;justify-content:flex-end;border:0}.toolbar .view-switch button{border:1px solid #d7e1ed}.toolbar .view-switch button:first-child{border-radius:8px 0 0 8px}.toolbar .view-switch button:last-child{border-radius:0 8px 8px 0}.filters-more select{flex:1 1 calc(50% - 8px);min-width:calc(50% - 8px);max-width:calc(50% - 4px)}.filters-more>label{display:flex;align-items:center;justify-content:flex-start;gap:8px}.filters-more>label input[type=checkbox]{width:18px;height:18px;margin:0;flex:none}}
@media(max-width:400px){.filters-more select{flex:1 1 calc(50% - 8px);min-width:calc(50% - 8px);max-width:calc(50% - 4px)}}
/* iOS Safari zooms focused form fields below 16px; keep pinch zoom available. */
@media(max-width:700px){input,select,textarea,label input,label select,label textarea,.toolbar input,.toolbar select,.filters-more select{font-size:16px}button,a,input,select,textarea{touch-action:manipulation}}
.image-editor{position:fixed;inset:0;z-index:60;background:#08172dcc;display:grid;place-items:center;padding:12px}.image-editor-panel{width:min(760px,100%);max-height:calc(100dvh - 24px);overflow:auto;background:white;border-radius:15px;padding:18px;box-shadow:0 18px 50px #0005}.image-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.image-editor-head h2{margin:0;font-size:21px}.image-editor-head .icon-button{color:#203350;font-size:29px}.image-editor-tools,.image-editor-footer{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.image-editor-tools .btn{flex:1 1 140px}.image-editor-footer{justify-content:flex-end}.image-editor-canvas-wrap{display:grid;place-items:center;min-height:180px;background:#eaf0f8;border-radius:10px;padding:8px;overflow:hidden}.image-editor-canvas-wrap canvas{display:block;max-width:100%;max-height:55dvh;width:auto;height:auto;touch-action:none;cursor:crosshair;background:#fff}.detail-photo .btn{width:100%;font-size:12px;white-space:normal;padding:6px 8px}.image-editor-panel p{line-height:1.45}
@media(max-width:700px){.image-editor{padding:0}.image-editor-panel{width:100%;max-height:100dvh;border-radius:0;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.image-editor-tools .btn{flex:1 1 calc(50% - 8px)}.image-editor-tools .btn:last-child{flex-basis:100%}.image-editor-footer .btn{flex:1}.image-editor-canvas-wrap canvas{max-height:50dvh}.detail-photo .btn{font-size:14px}}
.card-row[data-detail]{cursor:pointer;transition:box-shadow .15s,border-color .15s}.card-row[data-detail]:hover,.card-row[data-detail]:focus-visible{border-color:#9cbdec;box-shadow:0 6px 20px #1b4f9b22}.card-row[data-detail]:focus-visible{outline:2px solid #1357c7;outline-offset:2px}.card-row .row-actions button,.card-row .row-actions a{cursor:pointer}

.comparable-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e7edf5}.comparable-row p{margin:5px 0}.comparable-row .btn{align-self:center;flex:none}@media(max-width:700px){.comparable-row{flex-direction:column}.comparable-row .btn{align-self:flex-start}}
