*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f7f6f2;--surface:#fff;--border:#e2e0d8;--text:#1a1a18;--muted:#6b6960;--accent:#1a56a0;--accent2:#c8873a;--danger:#c0392b;--success:#1d7a4e;--radius:6px;--shadow:0 1px 4px rgba(0,0,0,.08)}html{font-size:15px}body{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.site-header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:54px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.site-logo{font-size:1.05rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.site-logo span{color:var(--accent)}.header-nav a{font-size:.85rem;color:var(--muted);margin-left:1.5rem}.header-nav a:hover{color:var(--accent)}.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}.page-content{padding:2rem 0 4rem}.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card,.search-wrap{background:var(--surface)}.search-wrap{padding:3rem 1.5rem;text-align:center;border-bottom:1px solid var(--border)}.search-heading{font-size:1.5rem;font-weight:700;margin-bottom:.4rem;letter-spacing:-.03em}.search-sub{color:var(--muted);font-size:.88rem;margin-bottom:1.5rem}.search-row{display:flex;gap:.5rem;max-width:520px;margin:0 auto}.search-input{flex:1 1;padding:.6rem .9rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;outline:none;background:var(--bg)}.search-input:focus{border-color:var(--accent)}.btn{padding:.6rem 1.2rem;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.btn:hover{opacity:.85}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.company-list{display:flex;flex-direction:column;gap:.5rem}.company-row{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.2rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:border-color .15s}.company-row:hover{border-color:var(--accent)}.company-name{font-weight:600;font-size:.95rem}.company-meta{font-size:.8rem;color:var(--muted);margin-top:.15rem}.tag{display:inline-block;font-size:.72rem;padding:.15rem .5rem;border-radius:3px;background:#eaf1fa;color:var(--accent);font-weight:600;margin-left:.4rem}.tag-unlisted{background:#f0f0ee;color:var(--muted)}.pagination{display:flex;gap:.4rem;justify-content:center;margin-top:1.5rem}.page-btn{padding:.35rem .7rem;border-radius:var(--radius);font-size:.85rem;border:1px solid var(--border);background:var(--surface);cursor:pointer}.page-btn.active{background:var(--accent);color:#fff}.page-btn.active,.page-btn:hover:not(.active){border-color:var(--accent)}.company-header{background:var(--surface);border-bottom:1px solid var(--border);padding:1.5rem 0 1.2rem}.company-title{font-size:1.4rem;font-weight:700;letter-spacing:-.03em}.company-title-en{font-size:.85rem;color:var(--muted);margin-top:.2rem}.company-badges{margin-top:.6rem;display:flex;gap:.5rem;flex-wrap:wrap}.badge{font-size:.75rem;padding:.2rem .6rem;border-radius:3px;border:1px solid var(--border);color:var(--muted)}.section{margin-top:1.5rem}.section-title{font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding-bottom:.4rem;margin-bottom:1rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:.75rem;gap:.75rem}.kpi-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem}.kpi-label{font-size:.72rem;color:var(--muted)}.kpi-value{font-size:1.15rem;font-weight:700;margin-top:.2rem}.kpi-value.positive{color:var(--success)}.kpi-value.negative{color:var(--danger)}.chart-wrap{width:100%;height:260px}.fin-table{width:100%;border-collapse:collapse;font-size:.85rem}.fin-table th{text-align:right;padding:.4rem .8rem;font-weight:600;color:var(--muted);font-size:.75rem;border-bottom:2px solid var(--border);white-space:nowrap}.fin-table th:first-child{text-align:left}.fin-table td{text-align:right;padding:.45rem .8rem;border-bottom:1px solid var(--border);white-space:nowrap}.fin-table td:first-child{text-align:left;font-weight:500;color:var(--muted)}.fin-table tr:last-child td{border-bottom:none}.fin-table tr:hover td{background:var(--bg)}.num-positive{color:var(--success)}.num-negative{color:var(--danger)}.text-content{font-size:.88rem;line-height:1.85;color:#2a2a26;max-height:12em;overflow:hidden;position:relative}.text-content.expanded{max-height:none}.text-fade{position:absolute;bottom:0;left:0;right:0;height:3em;background:linear-gradient(transparent,var(--surface))}.expand-btn{font-size:.82rem;color:var(--accent);cursor:pointer;background:none;border:none;padding:.4rem 0;display:block;margin-top:.3rem}.tab-bar{display:flex;border-bottom:1px solid var(--border);margin-bottom:1rem;gap:.1rem}.tab-btn{padding:.55rem 1rem;font-size:.85rem;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-btn:hover:not(.active){color:var(--text)}.empty,.loading{text-align:center;padding:3rem;color:var(--muted)}.empty{font-size:.9rem}@media (max-width:640px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.company-row{align-items:flex-start;gap:.4rem}.company-row,.search-row{flex-direction:column}}