*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{color:#e0e7ef;background:#0a1628;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}#root{min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.print-dashboard{background:#f5f5f5;width:100%;min-height:100vh}.tab-navigation{background:#fff;border-bottom:1px solid #ddd;gap:0;padding:0 20px;display:flex}.tab-btn{color:#666;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:500}.tab-btn:hover{color:#333}.tab-btn.active{color:#2196f3;border-bottom-color:#2196f3}.header-strip{background:#fff;border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.header-left{align-items:center;gap:16px;display:flex}.brand-text{color:#333;font-size:18px;font-weight:600}.queue-indicator{color:#666;align-items:center;gap:8px;font-size:14px;display:flex}.queue-count{color:#fff;background:#4a90d9;border-radius:4px;padding:2px 10px;font-size:14px;font-weight:600}.printing-status{color:#2c7be5;background:#e8f4fd;border-bottom:1px solid #cce5ff;padding:10px 24px;font-size:14px}.main-area{max-width:1100px;margin:20px auto;padding:0 20px}.sticker-layout{justify-content:center;align-items:flex-start;gap:16px;display:flex}.controls-panel{background:#fff;border:1px solid #ddd;border-radius:8px;flex-direction:column;gap:14px;min-width:170px;padding:14px;display:flex}.controls-title{color:#333;text-align:center;border-bottom:1px solid #eee;padding-bottom:6px;font-size:14px;font-weight:700}.preview-card{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.card-heading{color:#333;border-bottom:1px solid #eee;padding:14px 18px;font-size:15px;font-weight:600}.card-body{padding:20px}.preview-box{background:#fafafa;border:1px dashed #ddd;border-radius:6px;justify-content:center;align-items:center;min-height:250px;display:flex}.waiting-text{color:#999;text-align:center;padding:40px 20px;font-size:14px}.print-sticker-container{box-sizing:border-box;background:#fff;width:4in;height:6in;position:relative;overflow:hidden}.sticker-circle{border-radius:50%;width:2in;height:2in;position:absolute;overflow:hidden;transform:translate(-50%)}.sticker-circle-img{object-fit:cover;display:block}.sticker-rect{justify-content:center;align-items:center;width:2.559in;height:1.575in;display:flex;position:absolute;overflow:hidden;transform:translate(-50%)}.sticker-rect-img{object-fit:cover;object-position:center top;display:block}.adj-group{flex-direction:column;align-items:center;gap:8px;display:flex}.adj-group-title{color:#555;font-size:13px;font-weight:600}.adj-row{align-items:center;gap:6px;display:flex}.adj-row-label{color:#555;min-width:26px;font-size:12px;font-weight:600}.adj-value{color:#666;text-align:center;font-variant-numeric:tabular-nums;min-width:48px;font-size:12px}.adj-btn{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8f9fa;border:1px solid #ccc;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-family:inherit;font-size:14px;font-weight:600;line-height:1;display:flex}.adj-btn:hover{background:#e9ecef;border-color:#aaa}.adj-btn:active{background:#dee2e6}.adj-reset{color:#666;cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;align-self:center;margin-top:4px;padding:8px 16px;font-family:inherit;font-size:12px;font-weight:500}.adj-reset:hover{color:#333;background:#eee}@media print{@page{size:4in 6in;margin:0}body *{visibility:hidden}.print-sticker-container,.print-sticker-container *{visibility:visible}.print-sticker-container{width:4in;height:6in;position:absolute;top:0;left:0}}.gallery-section{padding:20px 24px}.gallery-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.gallery-title{color:#333;font-size:20px;font-weight:600}.gallery-controls{align-items:center;gap:10px;display:flex}.gallery-select{color:#333;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:7px 12px;font-family:inherit;font-size:13px}.gallery-select:focus{border-color:#4a90d9;outline:none}.gallery-refresh-btn{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:4px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500}.gallery-refresh-btn:hover{background:#3a7bc8}.gallery-empty{text-align:center;color:#999;padding:60px 20px;font-size:14px}.gallery-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.gallery-item{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;overflow:hidden}.gallery-item:hover{border-color:#4a90d9}.gallery-item.is-printing{border-color:#4a90d9;box-shadow:0 0 0 1px #4a90d9}.gallery-thumb{aspect-ratio:4/3;object-fit:cover;background:#f0f0f0;width:100%;display:block}.gallery-item-info{border-top:1px solid #eee;padding:10px 12px}.gallery-item-name{color:#333;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:13px;font-weight:500;overflow:hidden}.gallery-item-meta{color:#888;justify-content:space-between;align-items:center;font-size:12px;display:flex}.gallery-item-status{border-radius:3px;padding:1px 6px;font-size:11px;font-weight:500}.gallery-item-status.completed,.gallery-item-status.done{color:#34a853;background:#e6f4ea}.gallery-item-status.pending{color:#f9a825;background:#fff8e1}.gallery-item-status.failed,.gallery-item-status.error{color:#e53935;background:#fde7e7}.gallery-item-date{color:#aaa;margin-top:4px;font-size:11px}.gallery-pagination{border-top:1px solid #eee;justify-content:center;align-items:center;gap:8px;margin-top:24px;padding:16px 0;display:flex}.pagination-btn{color:#333;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.pagination-btn:hover:not(:disabled){color:#fff;background:#4a90d9;border-color:#4a90d9}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:#666;-webkit-user-select:none;user-select:none;padding:0 12px;font-size:13px}
