:root{--color-bg:#f5f5f3;--color-surface:#fff;--color-border:#e0dfdb;--color-text:#222;--color-text-sub:#6b6b68;--color-accent:#a9842f;--color-danger:#b3261e}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{color:#fff;background:#1a1a1a;padding:14px 20px}.app-title{font-size:16px;font-weight:600}.app-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;padding:0 12px;display:flex}.nav-item{cursor:pointer;color:var(--color-text-sub);background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 16px;font-size:14px}.nav-item.active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.app-content{flex:1;padding:20px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:8px;padding:16px}.summary-card .num{color:var(--color-accent);font-size:28px;font-weight:700}.summary-card .label{color:var(--color-text-sub);margin-top:4px;font-size:12px}.placeholder-note{color:var(--color-text-sub);font-size:13px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--color-border);text-align:left;padding:6px 8px}.btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:6px;padding:8px 14px;font-size:13px}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-secondary{background:var(--color-surface);color:var(--color-text)}.btn-danger{color:var(--color-danger);border-color:var(--color-danger);background:#fff}.btn-small{padding:4px 8px;font-size:12px}.btn:disabled{opacity:.4;cursor:default}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-bar input,.filter-bar select{border:1px solid var(--color-border);border-radius:6px;padding:6px 8px;font-size:13px}.pagination{align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.badge{border-radius:12px;padding:2px 8px;font-size:11px}.badge-on{color:#2e7d32;background:#e4f3e4}.badge-off{color:#666;background:#eee}.row-actions{white-space:nowrap;gap:6px;display:flex}.card-header-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px;display:grid}.form-grid label,label.full{color:var(--color-text-sub);flex-direction:column;gap:4px;font-size:12px;display:flex}label.full{margin-bottom:12px}.form-grid input,.form-grid select,label.full input,label.full textarea{color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:8px;font-family:inherit;font-size:14px}label.checkbox-label{flex-direction:row;align-items:center;gap:6px}.required{color:var(--color-danger)}.form-actions{gap:8px;margin-top:12px;display:flex}.inline-form{border-top:1px solid var(--color-border);margin-top:16px;padding-top:16px}h4{margin:20px 0 8px;font-size:14px}.thumb-cell img{object-fit:cover;border:1px solid var(--color-border);border-radius:4px;width:40px;height:40px}.thumb-placeholder{background:#eee;border-radius:4px;width:40px;height:40px;display:inline-block}.image-grid{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.image-item{border:1px solid var(--color-border);text-align:center;border-radius:8px;width:140px;padding:8px;position:relative}.image-item.is-main{border-color:var(--color-accent)}.image-item img{object-fit:cover;border-radius:4px;width:100%;height:100px;margin-bottom:6px}.image-item .badge{position:absolute;top:4px;left:4px}.image-actions{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.app-toast{color:#fff;opacity:0;pointer-events:none;background:#1a1a1a;border-radius:6px;padding:10px 16px;font-size:13px;transition:opacity .2s,transform .2s;position:fixed;bottom:20px;right:20px;transform:translateY(10px)}.app-toast.show{opacity:1;transform:translateY(0)}.app-toast.error{background:var(--color-danger)}@media (width<=600px){.app-nav{overflow-x:auto}}.app-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.app-user{color:#ccc;align-items:center;gap:10px;font-size:12px;display:flex}.app-user .btn{padding:4px 10px;font-size:12px}.login-wrap{justify-content:center;padding:60px 20px;display:flex}.login-wrap .card{width:100%;max-width:360px}.login-wrap h3{margin:0 0 16px;font-size:15px}.login-wrap .btn-primary{width:100%}.form-error{color:var(--color-danger);margin:8px 0 0;font-size:13px}
