:root{--color-primary:#123047;--color-primary-light:#1f5068;--color-accent:#0f766e;--color-accent-light:#15958b;--color-warning:#b86425;--color-danger:#e53e3e;--color-bg:#eef3f1;--color-surface:#fff;--color-border:#cddbd6;--color-text:#172d37;--color-text-light:#60737a;--color-noi:#0f766e;--color-expense:#e53e3e;--color-vacancy:#dd6b20;--shadow-sm:0 1px 2px #12304714;--shadow-md:0 10px 24px #12304717;--shadow-lg:0 18px 36px #1230471f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--color-bg);color:var(--color-text);min-height:100vh;font-family:Hiragino Sans,Yu Gothic UI,Noto Sans JP,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-primary);color:#fff;text-align:left;border-bottom:4px solid var(--color-accent);padding:1.75rem 1rem 1.5rem}.app-title{letter-spacing:.03em;max-width:1100px;margin:0 auto .3rem;font-size:1.75rem;font-weight:750}.app-subtitle{opacity:.9;max-width:1100px;margin:0 auto;font-size:.95rem}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 1rem}.main-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.input-panel{order:1}.results-panel{order:2}.input-form{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid #12304714;padding:1.5rem}.input-section{border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;padding-bottom:1.5rem}.input-section:last-of-type{border-bottom:none;margin-bottom:1rem;padding-bottom:0}.section-title{color:var(--color-primary);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.1rem;font-weight:600;display:flex}.section-icon{font-size:1.25rem}.hint-inline{color:var(--color-text-light);font-size:.8rem;font-weight:400}.input-group{margin-bottom:1rem}.input-group:last-child{margin-bottom:0}.money-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.input-group label{color:var(--color-text);margin-bottom:.4rem;font-size:.9rem;font-weight:500;display:block}.required{background:var(--color-danger);color:#fff;border-radius:4px;margin-left:.5rem;padding:.15rem .4rem;font-size:.7rem;font-weight:500}.hint{color:var(--color-text-light);margin-top:.2rem;font-size:.75rem;font-weight:400;display:block}.input-with-unit{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.input-with-unit:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a365d1a}.input-with-unit input{color:var(--color-text);-moz-appearance:textfield;background:0 0;border:none;flex:1;min-width:0;padding:.75rem;font-size:1rem}.input-with-unit input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-with-unit input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-with-unit .unit{background:var(--color-border);color:var(--color-text-light);white-space:nowrap;padding:.75rem 1rem;font-size:.9rem;font-weight:500}.input-hint{color:var(--color-text-light);margin-top:.4rem;font-size:.75rem}.vacancy-control{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f5f8f7;gap:.7rem;padding:1rem;display:grid}.vacancy-slider{appearance:none;cursor:pointer;background:0 0;outline:none;width:100%;height:10px}.vacancy-slider::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--color-accent) 0%, var(--color-accent) calc(var(--vacancy-progress,5) * 1%), #d9e4df calc(var(--vacancy-progress,5) * 1%), #d9e4df 100%);border:1px solid #9db4ab;border-radius:999px;height:10px}.vacancy-slider::-moz-range-track{background:#d9e4df;border:1px solid #9db4ab;border-radius:999px;height:10px}.vacancy-slider::-moz-range-progress{background:var(--color-accent);border-radius:999px;height:10px}.vacancy-slider::-webkit-slider-thumb{appearance:none;background:var(--color-accent);cursor:pointer;border:3px solid #fff;border-radius:50%;width:24px;height:24px;box-shadow:0 1px 4px #0f766e59}.vacancy-slider::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:3px solid #fff;border-radius:50%;width:24px;height:24px;box-shadow:0 1px 4px #0f766e59}.vacancy-scale{color:var(--color-text-light);justify-content:space-between;font-size:.72rem;line-height:1;display:flex}.vacancy-readout{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.vacancy-readout output{color:var(--color-primary);letter-spacing:-.02em;margin-right:auto;font-size:1.4rem;font-weight:750}.vacancy-number-input{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);-moz-appearance:textfield;background:#fff;width:70px;padding:.5rem;font-size:1.1rem;font-weight:600}.vacancy-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.vacancy-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.expense-mode-toggle{gap:.5rem;margin-bottom:1rem;display:flex}.mode-btn{border:2px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;flex:1;padding:.75rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s}.mode-btn.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.detail-expenses{grid-template-columns:1fr;gap:.75rem;display:grid}.detail-input .input-with-unit{background:var(--color-bg)}.toggle-group{margin-bottom:1rem}.toggle{cursor:pointer;align-items:center;gap:.75rem;display:flex}.toggle input{display:none}.toggle-slider{background:var(--color-border);border-radius:13px;flex-shrink:0;width:48px;height:26px;transition:background .2s;position:relative}.toggle-slider:after{content:"";width:20px;height:20px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-slider{background:var(--color-accent)}.toggle input:checked+.toggle-slider:after{transform:translate(22px)}.toggle-label{font-size:.9rem;font-weight:500}.action-buttons{gap:.75rem;margin-top:1.5rem;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;flex:1;padding:.85rem 1rem;font-size:.95rem;font-weight:600;transition:all .2s}.btn-sample{background:var(--color-accent);color:#fff}.btn-sample:hover{background:var(--color-accent-light)}.btn-reset{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-reset:hover{background:var(--color-border)}.results-container{flex-direction:column;gap:1rem;display:flex}.results-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid #12304714;padding:1.25rem}.results-placeholder{text-align:center;color:var(--color-text-light);padding:3rem 1rem}.results-placeholder p{font-size:1rem}.main-card{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);color:#fff}.results-title{text-align:center;margin-bottom:1.25rem;font-size:1.25rem;font-weight:700}.key-metrics{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.metric{text-align:center}.metric.primary{flex:1;min-width:120px}.metric-label{opacity:.9;margin-bottom:.25rem;font-size:.85rem;display:block}.metric-value{font-size:2.5rem;font-weight:700;line-height:1.1;display:block}.metric-value .unit{font-size:1.25rem;font-weight:500}.metric-desc{opacity:.75;margin-top:.25rem;font-size:.75rem;display:block}.metric-divider{opacity:.5;font-size:1.5rem}.metric.highlight .metric-value{color:#68d391}.metric.secondary{border-top:1px solid #fff3;width:100%;margin-top:1rem;padding-top:1rem}.metric.secondary .metric-label{font-size:.9rem}.metric.secondary .metric-value{font-size:1.5rem}.chart-card{padding:1rem}.card-title{color:var(--color-text);margin-bottom:.25rem;font-size:1rem;font-weight:600}.card-desc{color:var(--color-text-light);margin-bottom:1rem;font-size:.8rem}.rent-bar{border-radius:var(--radius-sm);background:var(--color-bg);height:40px;display:flex;overflow:hidden}.bar-segment{justify-content:center;align-items:center;min-width:2px;transition:width .3s;display:flex}.bar-segment.noi{background:var(--color-noi)}.bar-segment.expense{background:var(--color-expense)}.bar-segment.vacancy{background:var(--color-vacancy)}.bar-label{color:#fff;text-shadow:0 1px 2px #0000004d;white-space:nowrap;font-size:.75rem;font-weight:600}.bar-legend{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:.75rem;display:flex}.legend-item{color:var(--color-text-light);align-items:center;gap:.35rem;font-size:.75rem;display:flex}.legend-color{border-radius:3px;width:12px;height:12px}.legend-color.noi{background:var(--color-noi)}.legend-color.expense{background:var(--color-expense)}.legend-color.vacancy{background:var(--color-vacancy)}.comparison-chart{flex-direction:column;gap:.75rem;display:flex}.comparison-item{grid-template-columns:90px 1fr 60px;align-items:center;gap:.75rem;display:grid}.comparison-label{color:var(--color-text-light);font-size:.8rem}.comparison-bar-bg{background:var(--color-bg);border-radius:4px;height:24px;overflow:hidden}.comparison-bar{border-radius:4px;height:100%;transition:width .3s}.comparison-bar.gross{background:var(--color-primary)}.comparison-bar.effective{background:var(--color-primary-light)}.comparison-bar.net{background:var(--color-accent)}.comparison-value{text-align:right;font-size:.95rem;font-weight:600}.detail-card{padding:1rem}.detail-list{flex-direction:column;display:flex}.detail-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.6rem 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-row dt{color:var(--color-text-light);font-size:.85rem}.detail-row dd{color:var(--color-text);font-size:1rem;font-weight:600}.detail-row dd .unit{color:var(--color-text-light);margin-left:.25rem;font-size:.75rem;font-weight:400}.detail-row.highlight dt,.detail-row.highlight dd{color:var(--color-accent);font-weight:700}.app-footer{background:var(--color-surface);border-top:1px solid var(--color-border);margin-top:auto;padding:1.5rem 1rem}.footer-content{max-width:1200px;margin:0 auto}.privacy-notice{color:var(--color-accent);border-radius:var(--radius-sm);background:#38a1691a;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem;font-size:.85rem;display:flex}.privacy-icon{font-size:1rem}.disclaimer{text-align:center;color:var(--color-text-light);font-size:.75rem;line-height:1.7}.disclaimer h4{color:var(--color-text);margin-bottom:.5rem;font-size:.8rem;font-weight:600}.disclaimer p{margin-bottom:.35rem}@media (width>=640px){.app-header{padding:2rem 1.5rem 1.75rem}.app-title{font-size:2rem}.app-main{padding:2rem 1.5rem}.main-grid{grid-template-columns:400px 1fr;gap:2rem}.input-panel{order:1}.results-panel{order:2}.detail-expenses{grid-template-columns:1fr 1fr}.metric-value{font-size:3rem}}@media (width>=1024px){.app-main{padding:2.5rem 2rem}.main-grid{grid-template-columns:450px 1fr;max-width:1100px;margin:0 auto}.key-metrics{gap:2rem}.metric-value{font-size:3.5rem}}@media (width<=480px){.app-header{padding:1rem .75rem}.app-title{font-size:1.4rem}.app-subtitle{font-size:.85rem}.app-main{padding:1rem .75rem}.input-form{padding:1rem}.money-fields{grid-template-columns:1fr;gap:.75rem}.results-card{padding:1rem}.metric-value{font-size:2rem}.metric-divider{display:none}.key-metrics{flex-direction:column;gap:.75rem}.comparison-item{grid-template-columns:70px 1fr 55px;gap:.5rem}.comparison-label{font-size:.75rem}.comparison-value{font-size:.85rem}.action-buttons{flex-direction:column}.btn{width:100%}.bar-legend{gap:.75rem}.legend-item{font-size:.7rem}}@media (width<=360px){.app-title{font-size:1.25rem}.section-title{font-size:1rem}.input-with-unit input{padding:.6rem;font-size:.9rem}.input-with-unit .unit{padding:.6rem .75rem;font-size:.8rem}.detail-expenses{gap:.5rem}}*{max-width:100%}html,body{overflow-x:hidden}input:focus-visible,button:focus-visible,.toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background:var(--color-primary);color:#fff}
