*,:before,:after{box-sizing:border-box}:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-text:#1a1d23;--color-text-muted:#5a6370;--color-border:#e3e6ec;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-privacy-bg:#ecfdf5;--color-privacy-border:#86efac;--color-privacy-text:#065f46;--color-error-bg:#fef2f2;--color-error-border:#fecaca;--color-error-text:#991b1b;--radius:8px;--shadow:0 1px 2px #0000000a, 0 4px 12px #0000000a}html,body{background:var(--color-bg);color:var(--color-text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Meiryo,sans-serif;line-height:1.6}#app{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.site-header__inner{justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:.75rem 1rem;display:flex}.site-header__brand{color:var(--color-text);font-size:1.15rem;font-weight:700}.site-header__nav a{color:var(--color-text-muted);margin-left:1rem}.site-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);text-align:center;color:var(--color-text-muted);padding:1rem}.hero{text-align:center;padding:2rem 0 1.5rem}.hero h1{margin:0 0 .5rem;font-size:clamp(1.5rem,4vw,2.25rem)}.hero__lead{color:var(--color-text-muted);margin:0 0 1.25rem}.privacy-banner{background:var(--color-privacy-bg);border:1px solid var(--color-privacy-border);color:var(--color-privacy-text);border-radius:var(--radius);text-align:left;align-items:center;gap:.5rem;max-width:100%;padding:.6rem 1rem;font-size:.9rem;display:inline-flex}.privacy-banner__icon{font-size:1.1rem}.tools{margin-top:2.5rem}.tools__heading{margin:0 0 1rem;font-size:1.25rem}.tools__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.tool-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:1.25rem;text-decoration:none;transition:transform .1s,box-shadow .1s,border-color .1s;display:block;position:relative}.tool-card:hover:not(.tool-card--disabled){border-color:var(--color-primary);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.tool-card--disabled{opacity:.55;cursor:not-allowed}.tool-card__title{margin:0 0 .35rem;font-size:1.05rem}.tool-card__desc{color:var(--color-text-muted);margin:0;font-size:.9rem}.tool-card__badge{background:var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:.15rem .5rem;font-size:.75rem;position:absolute;top:.6rem;right:.6rem}.tool h1{margin:.5rem 0 .25rem}.tool__lead{color:var(--color-text-muted);margin:0 0 1rem}.breadcrumb{margin-bottom:.25rem;font-size:.9rem}.breadcrumb a{color:var(--color-text-muted)}.dropzone{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius);margin-top:1.5rem;padding:1.25rem;transition:border-color .1s,background .1s}.dropzone--active{border-color:var(--color-primary);background:#eff6ff}.dropzone__controls{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.file-list{margin:0;padding:0;list-style:none}.file-list__empty{color:var(--color-text-muted);text-align:center;margin:.5rem 0}.file-list__item{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.5rem .25rem;display:flex}.file-list__item:last-child{border-bottom:none}.file-list__name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-list__size{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.file-list__actions{gap:.25rem;display:flex}.file-list__actions button{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:0 0;border-radius:6px;padding:.2rem .5rem}.file-list__actions button:hover:not(:disabled){background:var(--color-bg)}.file-list__actions button:disabled{opacity:.4;cursor:not-allowed}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:.35rem;padding:.55rem 1rem;font-size:.95rem;font-weight:500;transition:background .1s,border-color .1s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn--secondary:hover:not(:disabled){border-color:var(--color-primary)}.btn--ghost{color:var(--color-text-muted);background:0 0}.btn--ghost:hover:not(:disabled){color:var(--color-text)}.confirm-dialog{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:1rem;padding:1rem 1.25rem}.confirm-dialog__title{margin:0 0 .5rem;font-weight:600}.confirm-dialog__list{color:var(--color-error-text);margin:0 0 .75rem;padding-left:1.25rem;font-size:.9rem}.confirm-dialog__actions{gap:.5rem;display:flex}.error{border:1px solid var(--color-error-border);background:var(--color-error-bg);color:var(--color-error-text);border-radius:var(--radius);margin-top:1rem;padding:.75rem 1rem;font-size:.9rem}
