:root { --ink:#1d1d1f; --sub:#6e6e73; --line:#e5e5ea; --bg:#fff; --soft:#f5f5f7; --acc:#FFC000; --accInk:#2b2b2b; --warn:#b00020; }
* { box-sizing: border-box; }
body { margin:0; font-family:"Yu Gothic UI","Yu Gothic","Hiragino Sans",sans-serif; color:var(--ink); background:var(--bg); line-height:1.6; }
header { padding:28px 32px 8px; max-width:1040px; margin:0 auto; position:relative; }
h1 { margin:0; font-size:26px; letter-spacing:.02em; }
.sub { margin:2px 0 0; color:var(--sub); }
.money { position:absolute; right:32px; top:34px; font-size:12px; color:var(--sub); text-align:right; }
main { max-width:1040px; margin:0 auto; padding:8px 32px 80px; }
section { padding:22px 0; border-top:1px solid var(--line); }
section:first-child { border-top:0; }
h2 { font-size:18px; margin:0 0 10px; display:flex; align-items:center; gap:10px; }
h2 small { color:var(--sub); font-weight:400; font-size:13px; }
.n { display:inline-flex; width:24px; height:24px; border-radius:50%; background:var(--acc); color:var(--accInk); align-items:center; justify-content:center; font-size:13px; font-weight:700; }
.hint { color:var(--sub); font-size:13px; margin:0 0 10px; }
.drop { border:2px dashed #c7c7cc; border-radius:14px; padding:26px; text-align:center; color:var(--sub); cursor:pointer; background:var(--soft); }
.drop small { display:block; margin-top:4px; font-size:12px; }
.drop.over, .drop:focus { border-color:var(--acc); background:#fffbea; outline:0; }
.row { display:flex; gap:12px; flex-wrap:wrap; margin:12px 0; }
label { display:flex; flex-direction:column; font-size:12px; color:var(--sub); gap:4px; }
label.full { margin:8px 0; }
label.chk { flex-direction:row; align-items:center; gap:8px; font-size:13px; color:var(--ink); margin:8px 0; }
input[type=text], input:not([type]), select { font:inherit; font-size:14px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); min-width:150px; }
.thumbs { display:flex; gap:10px; flex-wrap:wrap; margin-top:8px; }
.thumb { width:92px; position:relative; cursor:pointer; border-radius:10px; overflow:hidden; border:2px solid transparent; background:var(--soft); }
.thumb img { width:100%; height:92px; object-fit:cover; display:block; }
.thumb.on { border-color:var(--acc); }
.thumb span { display:block; font-size:12px; padding:2px 6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.thumb button.x, .vcard button.x { position:absolute; top:3px; right:3px; width:20px; height:20px; border:0; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:12px; cursor:pointer; line-height:1; }
.grp { margin:14px 0 4px; font-size:13px; font-weight:700; color:var(--sub); }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; }
.card { border:1px solid var(--line); border-radius:12px; padding:10px 12px; cursor:pointer; background:#fff; user-select:none; }
.card:hover { border-color:#c7c7cc; }
.card.on { border-color:var(--acc); background:#fffbea; box-shadow:0 0 0 1px var(--acc) inset; }
.card.dim { opacity:.7; }
.card b { display:block; font-size:14px; }
.card p { margin:2px 0 0; font-size:12px; color:var(--sub); }
.card .tag { display:inline-block; font-size:10px; padding:0 6px; border-radius:8px; background:var(--soft); color:var(--sub); margin-top:4px; margin-right:4px; }
.card .tag.best { background:#fff1c2; color:#7a5a00; }
.card details { margin-top:4px; font-size:12px; color:var(--sub); }
.card summary { cursor:pointer; }
.sum { margin:10px 0; font-size:15px; }
.sum b { font-size:20px; }
.sum .lines { font-size:12px; color:var(--sub); margin-top:2px; }
.go { background:var(--acc); color:var(--accInk); border:0; border-radius:999px; padding:12px 30px; font:inherit; font-weight:700; font-size:15px; cursor:pointer; }
.go:disabled { background:var(--line); color:#999; cursor:not-allowed; }
.job { margin-top:12px; padding:12px 14px; background:var(--soft); border-radius:10px; font-size:14px; }
.job.err { background:#fdecee; color:var(--warn); }
.videos { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; }
.vcard { position:relative; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.vcard video { width:100%; display:block; background:#000; max-height:360px; object-fit:contain; }
.vcard .meta { padding:8px 10px; font-size:12px; color:var(--sub); }
.vcard .meta b { color:var(--ink); font-size:13px; display:block; }
.vcard .btns { padding:0 10px 10px; display:flex; gap:6px; flex-wrap:wrap; }
.vcard .btns a, .vcard .btns button { font:inherit; font-size:12px; padding:4px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); cursor:pointer; text-decoration:none; }
.eye { margin:0 10px 10px; font-size:12px; }
.eye li { list-style:none; margin:0; }
.eye ul { padding:0; margin:4px 0; }
.ok { color:#2e7d32; } .warn { color:#b26a00; } .ng { color:var(--warn); }
.empty { color:var(--sub); font-size:13px; }
@media (max-width:640px) { header, main { padding-left:16px; padding-right:16px; } .money { position:static; text-align:left; margin-top:6px; } }

.price { margin:10px 0 0; padding:8px 14px; background:var(--soft); border-radius:10px; font-size:14px; display:inline-block; }
.dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--acc); margin-right:6px; vertical-align:middle; }
details.more { margin-top:12px; } details.more > summary { cursor:pointer; color:var(--sub); font-size:13px; }
details.frame { margin-top:12px; } details.frame > summary { cursor:pointer; font-size:13px; color:var(--ink); }
.go.small { padding:8px 20px; font-size:13px; }
.card .warn360 { color:#b26a00; }
.angle { width:92px; text-align:center; } .angle img, .angle .ph { width:92px; height:92px; object-fit:cover; border-radius:10px; background:var(--soft); display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--sub); }
.angle button { margin-top:4px; font:inherit; font-size:12px; border:1px solid var(--line); border-radius:999px; background:#fff; padding:2px 8px; cursor:pointer; }
.colorbox { margin:10px 0; } .palette { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0; align-items:center; }
.sw { width:30px; height:30px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px var(--line); cursor:pointer; padding:0; } .sw.on { box-shadow:0 0 0 3px var(--ink); }
.swauto { font:inherit; font-size:12px; border:1px solid var(--line); border-radius:999px; background:#fff; padding:4px 12px; cursor:pointer; } .swauto.on { border-color:var(--ink); font-weight:700; }
.card .prev { position:relative; margin:-10px -12px 8px; border-radius:12px 12px 0 0; overflow:hidden; background:#111; height:0; }
.card.playing .prev, .card[data-sample]:hover .prev { height:150px; }
.card .prev video { width:100%; height:150px; object-fit:cover; display:block; }
.card .prev span { position:absolute; left:8px; top:8px; font-size:12px; background:rgba(0,0,0,.55); color:#fff; border-radius:999px; padding:0 8px; }
.card[data-sample] > b::after { content:'▶ 見本'; font-weight:400; font-size:12px; color:var(--sub); margin-left:8px; }

/* ---- 社内サーバー用（ログイン・使用額・メンバー管理。ほんものくんと同じ） ---- */
:root { --card:#fff; }
.primary, .ghost { display:inline-flex; align-items:center; justify-content:center; font:inherit; cursor:pointer; }
.ghost { background:none; border:1px solid var(--line); color:var(--ink); border-radius:10px; padding:8px 14px; }
.go { text-align:center; }
.money.usage { display: flex; align-items: center; gap: 10px; }
.usagebtn { border: 1px solid var(--line); background: var(--card); border-radius: 12px; padding: 7px 12px; cursor: pointer; display: flex; flex-direction: column; gap: 4px; text-align: left; min-width: 240px; color: var(--ink); font: inherit; }
.usagebtn .ul b { font-size: 14px; } .usagebtn small { color: var(--sub); font-size: 13px; }
.usagebtn .um { font-size: 13px; color: var(--sub); } .um.full { color: #b3261e; font-weight: 600; }
.ubar { height: 7px; border-radius: 4px; background: var(--soft); overflow: hidden; display: block; }
.ubar i { display: block; height: 100%; background: #FFC000; border-radius: 4px; }
.ubar.warn i { background: #e07b00; } .ubar.full i { background: #c0392b; }
.usermenu { border: 0; background: var(--soft); border-radius: 999px; padding: 8px 14px; cursor: pointer; color: var(--ink); font: inherit; }
.pop { position: fixed; top: 80px; right: 16px; z-index: 20; width: min(380px, calc(100vw - 32px)); max-height: 80vh; overflow: auto; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 8px 30px rgba(0,0,0,.14); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.pop.wide { width: min(580px, calc(100vw - 32px)); }
.pop h3 { margin: 0; font-size: 16px; } .pop .big { margin: 0; font-size: 26px; font-weight: 700; } .pop .line { margin: 0; color: var(--sub); font-size: 14px; } .pop .line.full { color: #b3261e; font-weight: 600; }
.pop input { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font: inherit; min-width: 0; }
.pop input:focus, .login input:focus { outline: 2px solid #FFC000; outline-offset: 1px; border-color: #FFC000; }
.pop .row { display: flex; gap: 6px; flex-wrap: wrap; } .pop .row input { flex: 1 1 150px; }
.pop .go { border: 0; background: #FFC000; color: #1d1d1f; font-weight: 600; border-radius: 10px; padding: 10px 14px; cursor: pointer; font: inherit; font-weight: 600; }
.pop .ghost { border: 1px solid var(--line); background: none; border-radius: 10px; padding: 9px 12px; cursor: pointer; font: inherit; text-align: left; color: var(--ink); }
.pop .mini { border: 1px solid var(--line); background: none; border-radius: 8px; padding: 4px 9px; cursor: pointer; font: inherit; font-size: 13px; color: var(--ink); } .pop .mini.armed { background: #fff3cc; border-color: #FFC000; }
.pop .acts { display: flex; gap: 6px; }
.pop .secret { background: var(--soft); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.pop .secret code { font: 600 20px/1.3 ui-monospace, Consolas, monospace; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; user-select: all; word-break: break-all; }
.mem { list-style: none; margin: 0; padding: 0; } .mem li { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 8px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.mem li .ubar { grid-column: 1 / -1; height: 5px; }
.mem.adm li { font-size: 13px; }
.veil { position: fixed; inset: 0; z-index: 30; background: rgba(20,20,20,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.pop.modal { position: static; width: min(420px, 100%); }
.loginpage main.login { max-width: 400px; margin: 12vh auto 0; text-align: center; padding: 0 16px; }
.login .logo { width: 56px; height: 56px; } .login h1 { margin: 8px 0 6px; } 
.login .card { text-align: left; display: flex; flex-direction: column; gap: 14px; padding: 22px; }
.login label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; color: var(--sub); }
.login input { border: 1px solid var(--line); border-radius: 10px; padding: 11px 12px; font: 15px inherit; color: var(--ink); }
.login .go { border: 0; background: #FFC000; color: #1d1d1f; font-weight: 700; border-radius: 10px; padding: 12px; cursor: pointer; font: inherit; font-weight: 700; }
.login .sub { color: var(--sub); font-size: 13px; }
.login > .sub { margin: 0 0 22px; }
.login .card .sub { margin: 0; }
.login #msg:empty { display: none; } .login #msg { color: #b3261e; font-size: 14px; }
.hidden { display: none !important; }
@media (max-width: 720px) { .money.usage { flex-wrap: wrap; width: 100%; } .usagebtn { min-width: 0; flex: 1; } .pop:not(.modal) { right: 8px; } }

@media (max-width: 720px) { .mem.adm li { grid-template-columns: 1fr; } .pop .acts { flex-wrap: wrap; } .pop .mini { white-space: nowrap; } }
.vwarn { margin:6px 0 0; font-size:12px; color:#555; line-height:1.5; }
.login .sub, .login label { color:#555; }
#videos details.more { margin-top:16px; }
