/* 日数計算ツール - ミニマル・クリーン */
:root {
  --color-primary: #4A90D9;
  --color-primary-light: #6BA5E7;
  --color-primary-dark: #3A7BC8;
  --color-primary-bg: #EBF2FB;
  --color-bg: #FAFBFD;
  --color-surface: #FFFFFF;
  --color-text: #1A1A2E;
  --color-text-secondary: #6B7280;
  --color-text-muted: #9CA3AF;
  --color-border: #E5E7EB;
  --color-divider: #F3F4F6;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.06);
  --shadow-focus: 0 0 0 3px rgba(74,144,217,0.15);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --font-sans: 'Inter','Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;
  --transition: 0.2s ease;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.7;min-height:100vh;-webkit-font-smoothing:antialiased}
.container{max-width:680px;margin:0 auto;padding:0 20px}

/* Header */
.header{text-align:center;padding:48px 0 32px}
.header-icon{font-size:3rem;margin-bottom:12px;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.header h1{font-size:1.75rem;font-weight:700;letter-spacing:-0.02em;margin-bottom:8px}
.header-subtitle{font-size:0.95rem;color:var(--color-text-secondary)}
.section-title{font-size:1.1rem;font-weight:600;margin-bottom:20px}

/* Mode Tabs */
.mode-tabs{display:flex;gap:0;background:var(--color-divider);border-radius:var(--radius-sm);padding:3px;margin-bottom:20px}
.tab-btn{flex:1;padding:10px 16px;border:none;background:transparent;font-family:var(--font-sans);font-size:0.88rem;font-weight:500;color:var(--color-text-secondary);border-radius:6px;cursor:pointer;transition:all var(--transition)}
.tab-btn.active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}
.tab-btn:hover:not(.active){color:var(--color-text)}

/* Calc Section */
.calc-section{background:var(--color-surface);border-radius:var(--radius-lg);padding:32px 28px;box-shadow:var(--shadow-md);border:1px solid var(--color-border);margin-bottom:20px}
.calc-section.hidden{display:none}

/* Date Inputs */
.date-inputs{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.date-group{flex:1;display:flex;flex-direction:column;gap:6px}
.date-group label{font-size:0.8rem;font-weight:500;color:var(--color-text-secondary)}
.date-group input[type="date"]{width:100%;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:0.95rem;color:var(--color-text);transition:all var(--transition)}
.date-group input[type="date"]:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}
.date-arrow{font-size:1.2rem;color:var(--color-text-muted);padding-top:20px}
.today-btn{background:var(--color-primary-bg);color:var(--color-primary);border:none;font-family:var(--font-sans);font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:4px;cursor:pointer;transition:all var(--transition)}
.today-btn:hover{background:var(--color-primary);color:#fff}

/* Add Mode Inputs */
.add-inputs{margin-bottom:20px}
.add-row{display:flex;gap:12px;margin-top:16px}
.add-group{flex:1;display:flex;flex-direction:column;gap:6px;position:relative}
.add-group label{font-size:0.8rem;font-weight:500;color:var(--color-text-secondary)}
.add-group select,.add-group input{width:100%;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:0.95rem;color:var(--color-text);background:var(--color-surface);transition:all var(--transition)}
.add-group select:focus,.add-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}
.input-unit{position:absolute;right:12px;bottom:10px;font-size:0.85rem;color:var(--color-text-muted);pointer-events:none}
.add-group input[type="number"]{padding-right:28px}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type="number"]{-moz-appearance:textfield}

/* Calc Button */
.calc-btn{width:100%;padding:14px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;gap:8px}
.calc-btn:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.calc-btn:active{transform:translateY(0)}

/* Result Area */
.result-area{margin-top:24px;padding-top:24px;border-top:2px solid var(--color-divider);animation:fadeIn 0.3s ease}
.result-area.hidden{display:none}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.result-main{display:flex;align-items:baseline;gap:6px;margin-bottom:16px}
.result-number{font-size:3.5rem;font-weight:700;color:var(--color-primary);line-height:1;letter-spacing:-0.03em}
.result-label{font-size:1.3rem;font-weight:600;color:var(--color-text)}

.result-details{display:flex;flex-wrap:wrap;gap:10px}
.detail-item{background:var(--color-primary-bg);border-radius:var(--radius-sm);padding:12px 16px;flex:1;min-width:120px;text-align:center}
.detail-item .detail-value{font-size:1.2rem;font-weight:700;color:var(--color-primary-dark);display:block}
.detail-item .detail-label{font-size:0.75rem;color:var(--color-text-secondary);display:block;margin-top:2px}

/* Date Result */
.result-date-display{text-align:center;padding:20px}
.result-date-label{display:block;font-size:0.9rem;color:var(--color-text-secondary);margin-bottom:8px}
.result-date-value{display:block;font-size:2rem;font-weight:700;color:var(--color-primary);line-height:1.3}
.result-date-wareki{display:block;font-size:0.95rem;color:var(--color-text-secondary);margin-top:4px}
.result-date-weekday{display:inline-block;margin-top:8px;background:var(--color-primary-bg);color:var(--color-primary-dark);font-weight:600;font-size:0.85rem;padding:4px 12px;border-radius:20px}

/* Tips */
.tips-section{margin-top:24px}
.tips-grid{display:grid;gap:12px;margin-top:16px}
.tip-card{background:var(--color-surface);border-radius:var(--radius-md);padding:20px;border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}
.tip-card h3{font-size:0.95rem;font-weight:600;margin-bottom:10px}
.tip-card ul{list-style:none;padding:0}
.tip-card li{font-size:0.85rem;color:var(--color-text-secondary);padding:4px 0;padding-left:16px;position:relative}
.tip-card li::before{content:'•';position:absolute;left:0;color:var(--color-primary)}
.tip-card strong{color:var(--color-primary-dark)}

/* Ad / Footer */
.ad-space{margin:20px 0;min-height:60px;display:flex;align-items:center;justify-content:center}
.ad-placeholder{font-size:0.75rem;color:var(--color-text-muted);padding:16px 24px;border:1px dashed var(--color-border);border-radius:var(--radius-sm)}
.footer{padding:32px 0;text-align:center}
.footer-content{margin-top:16px}
.footer-text{font-size:0.85rem;color:var(--color-text-secondary)}
.footer-note{font-size:0.75rem;color:var(--color-text-muted);margin-top:6px}
.footer-nav{margin-top:12px;display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
.footer-nav a{font-size:0.85rem;color:var(--color-primary);text-decoration:none}
.footer-nav a:hover{text-decoration:underline}
.footer-nav a.muted{color:var(--color-text-muted)}
.nav-sep{color:var(--color-text-muted);font-size:0.8rem}

/* Responsive */
@media(max-width:600px){
  .header{padding:32px 0 24px}
  .header h1{font-size:1.4rem}
  .calc-section{padding:24px 16px}
  .date-inputs{flex-direction:column;gap:10px}
  .date-arrow{transform:rotate(90deg);padding:0}
  .add-row{flex-direction:column;gap:10px}
  .result-number{font-size:2.8rem}
  .detail-item{min-width:100%}
  .result-date-value{font-size:1.5rem}
}
