:root{--accent: #2b6cb0;--accent-2: #4a90d9;--accent-ink: #1c4f80;--accent-tint: #eaf2fa;--danger: #c53030;--success: #2f855a;--warn: #d69e2e;--ink: #1a1a2e;--muted: #6b7280;--line: #e2e5ea;--field: #d0d3da;--bg: #f5f6f8;--radius: 14px;--shadow-soft: 0 10px 30px rgba(16, 33, 56, .08)}*{box-sizing:border-box;margin:0}body{font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Meiryo,Yu Gothic UI,sans-serif;background:var(--bg);color:var(--ink)}.page{max-width:1120px;margin:0 auto;padding:24px 16px 48px}@media (max-width: 600px){.page{padding:16px 10px 32px}}h1{font-size:1.4rem;margin-bottom:16px}.card-title{font-size:1rem;font-weight:700;margin-bottom:6px}.editor-layout{display:grid;gap:16px;align-items:start}.col-main,.col-side{min-width:0}.col-side{display:flex;flex-direction:column;gap:16px}@media (min-width: 1024px){.editor-layout{grid-template-columns:minmax(520px,1fr) 420px;gap:20px}.col-side>.preview-card:first-child{position:sticky;top:16px}}@media (min-width: 1440px){.page{max-width:1400px}.editor-layout{grid-template-columns:minmax(560px,1fr) 620px}}@media (min-width: 1760px){.page{max-width:1660px}.editor-layout{grid-template-columns:minmax(560px,1fr) 800px}}.card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-soft)}.card-editor{border-top:4px solid var(--accent)}.tabs{display:flex;gap:4px;width:fit-content;max-width:100%;background:var(--accent-tint);border:1px solid #dbe6f2;border-radius:999px;padding:4px}.tabs .tab{margin-top:0;padding:9px 22px;border:none;border-radius:999px;background:transparent;color:#5b6b7f;font-weight:700;font-size:.9rem;white-space:nowrap;box-shadow:none;transition:background .25s,color .25s,box-shadow .25s}.tabs .tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #2b6cb059}.tabs .tab:hover:not(.active){color:var(--accent-ink)}label{display:block;font-size:.85rem;font-weight:700;margin:16px 0 6px;color:#33415c}input,textarea,select{width:100%;padding:11px 14px;border:2px solid var(--field);border-radius:12px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2b6cb033}textarea.html-input{min-height:240px;font-family:Consolas,monospace;line-height:1.55}textarea.easy-body{min-height:220px;font-family:inherit;line-height:1.7}@media (min-width: 1024px){textarea.html-input{min-height:360px}textarea.easy-body{min-height:320px}}button{padding:11px 22px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;margin-top:12px;transition:transform .15s,box-shadow .2s,background .2s,color .2s}button.primary{background:linear-gradient(120deg,var(--accent),var(--accent-2));padding:13px 28px;box-shadow:0 8px 20px #2b6cb052}button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 26px #2b6cb061}button.ghost{background:transparent;color:var(--accent);border:2px solid var(--accent);padding:9px 20px;box-shadow:none}button.ghost:hover:not(:disabled){background:var(--accent);color:#fff}button.accent{background:var(--accent-tint);color:var(--accent-ink);box-shadow:0 6px 16px #2b6cb024}button.accent:hover:not(:disabled){background:#dfeaf7;transform:translateY(-2px);box-shadow:0 10px 22px #2b6cb033}button.danger{background:#fff;color:var(--danger);box-shadow:0 4px 12px #c530302e}button.danger:hover:not(:disabled){background:var(--danger);color:#fff;transform:translateY(-2px)}button:disabled{background:#cbd2dc;color:#fff;box-shadow:none;cursor:default;transform:none}button.ghost:disabled{background:transparent;color:#a0aec0;border-color:#cbd2dc}button.accent:disabled,button.danger:disabled{background:#eceff3;color:#a0aec0}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px;padding:12px;border-radius:12px;background:#f7f9fc;border:1px solid var(--line)}.toolbar button{margin-top:0}.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.btn-row button{margin-top:0}.publish-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.publish-row button{margin-top:0}.publish-row .primary{flex:1;min-width:260px}.toggle{position:relative;display:inline-flex;align-items:center;gap:8px;margin:0;font-size:.88rem;font-weight:700;color:#4a5568;cursor:pointer;white-space:nowrap}.toggle input{position:absolute;left:0;top:50%;width:1px;height:1px;padding:0;margin:0;border:0;opacity:0;pointer-events:none}.toggle input:focus-visible+.switch{box-shadow:0 0 0 3px #2b6cb059}.toggle .switch{width:46px;height:26px;border-radius:30px;background:#cbd2dc;position:relative;display:block;flex:none;transition:background .25s}.toggle .switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:left .25s}.toggle input:checked+.switch{background:var(--accent)}.toggle input:checked+.switch:after{left:23px}.toggle input:disabled+.switch{opacity:.5}.notice{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:#2b6cb01a;color:var(--accent-ink);border-left:4px solid var(--accent);padding:12px 16px;border-radius:12px;margin-top:14px;font-size:.9rem;font-weight:600;word-break:break-all}.notice.success{background:#2f855a1f;color:#22613f;border-left-color:var(--success)}.notice a{color:inherit;font-weight:700}.notice button{margin-top:0}.error{display:flex;align-items:center;gap:8px;background:#c530301a;color:#8f2323;border-left:4px solid var(--danger);padding:12px 16px;border-radius:12px;margin-top:14px;font-size:.9rem;font-weight:600}.muted{color:var(--muted);font-size:.8rem;margin-top:8px}.badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.72rem;padding:4px 10px;border-radius:30px;white-space:nowrap}.badge i{width:7px;height:7px;border-radius:50%;flex:none}.badge-expiry{background:#d69e2e29;color:#8a5a08}.badge-expiry i{background:var(--warn)}.badge-forever{background:#2f855a24;color:#22613f}.badge-forever i{background:var(--success)}.doc-item{padding:10px;border-radius:10px;border-bottom:1px solid #eef1f5;transition:background .15s}.doc-item:last-child{border-bottom:none}.doc-item:hover{background:#2b6cb00f}.doc-item .doc-title{display:block;font-size:.92rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-item .doc-title a{color:var(--ink);text-decoration:none}.doc-item .doc-title a:hover{color:var(--accent);text-decoration:underline}.doc-foot{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:7px}.doc-foot .doc-date{font-size:.72rem;color:var(--muted)}.doc-actions{display:flex;gap:6px;margin-left:auto}.doc-actions button{margin-top:0;padding:4px 12px;font-size:.74rem;border-radius:8px}.doc-actions button.ghost{border-width:1.5px}.thumb-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.thumb{width:92px;font-size:.7rem;text-align:center}.thumb img{display:block;width:100%;height:60px;object-fit:cover;border:1px solid var(--field);border-radius:8px}.thumb .name{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.thumb button{margin-top:5px;padding:2px 10px;font-size:.7rem;border-radius:7px}.preview-frame,.rich-frame{width:100%;margin-top:8px;display:block;background:#fff;border:1px solid var(--field);border-radius:10px}.preview-frame{height:400px}.rich-frame{height:500px}@media (min-width: 1024px){.preview-frame,.rich-frame{height:min(70vh,640px)}}@media (min-width: 1440px){.preview-frame,.rich-frame{height:min(78vh,880px)}}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.card-head .card-title{flex:1;margin-bottom:0}.btn-mini{margin-top:0;padding:4px 12px;font-size:.74rem;border-radius:8px;white-space:nowrap}.btn-mini.ghost{border-width:1.5px}.zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;padding:24px;background:#1021388c;display:flex;align-items:center;justify-content:center}.zoom-panel{background:#fff;border-radius:16px;padding:14px;width:min(1120px,96vw);height:min(92vh,1000px);display:flex;flex-direction:column;gap:10px;box-shadow:0 24px 60px #0000004d}.zoom-head{display:flex;align-items:center;gap:10px;font-size:.92rem}.zoom-head button{margin-left:auto}.zoom-frame{flex:1;width:100%;display:block;background:#fff;border:1px solid var(--field);border-radius:10px}.spinner{display:inline-block;flex:none;width:15px;height:15px;border:2px solid rgba(43,108,176,.25);border-top-color:var(--accent);border-radius:50%;animation:satto-spin .8s linear infinite}@keyframes satto-spin{to{transform:rotate(360deg)}}button .spinner{margin-right:7px;vertical-align:-2px;border-color:#00000024;border-top-color:currentColor}.ai-progress{margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--accent-tint);border:1px solid #dbe6f2}.ai-progress-head{display:flex;align-items:center;gap:9px;font-size:.9rem;color:var(--accent-ink)}.ai-elapsed{margin-left:auto;font-weight:700;font-size:.95rem;color:var(--accent);font-variant-numeric:tabular-nums}.load-bar{position:relative;overflow:hidden;margin-top:10px;width:100%;height:8px;border-radius:8px;background:#2b6cb026}.load-bar:after{content:"";position:absolute;top:0;left:-40%;height:100%;width:40%;border-radius:8px;background:linear-gradient(90deg,var(--accent),var(--accent-2));animation:satto-slide 1.3s ease-in-out infinite}@keyframes satto-slide{0%{left:-40%}to{left:100%}}.ai-progress .muted{margin-top:8px;line-height:1.7}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}.load-bar:after{animation-duration:3s}}.block-hint{width:100%;margin-top:8px;padding:7px 12px;border-radius:8px;font-size:.78rem;font-weight:700;color:#8a5a08;background:#d69e2e29}.viewer-header{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#1a1a2e;color:#fff;font-size:.85rem}.viewer-header .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.viewer-header a{color:#90cdf4;text-decoration:none}.viewer-frame{width:100%;height:calc(100vh - 40px);border:none;display:block;background:#fff}
