/* ============================================================
   Dashboard Page Styles - Portrait + Landscape
   WebKit 533 compatible
   ============================================================ */

/* ===== Top Bar Content ===== */
.date-area { float: left; }
.clock-area { float: right; margin-top: 4px; }
.date-main {
    font-size: 38px;
    font-weight: bold;
    letter-spacing: 2px;
}
.date-sub {
    font-size: 26px;
    color: #444;
    margin-left: 12px;
}
.clock-live {
    font-family: 'Courier New', monospace;
    font-size: 44px;
    font-weight: bold;
    letter-spacing: 2px;
}
.holiday-badge {
    display: inline;
    background: #000;
    color: #fff;
    padding: 3px 14px;
    font-size: 22px;
    margin-left: 16px;
    font-weight: bold;
}

/* ===== Two Columns (Portrait) ===== */
.columns-p {
    overflow: hidden;
    padding: 20px 40px 0 40px;
}
.col-left-p {
    float: left;
    width: 476px;
}
.col-right-p {
    float: left;
    width: 476px;
    padding-left: 20px;
    border-left: 3px solid #ddd;
    margin-left: 16px;
}

/* ===== Two Columns (Landscape) ===== */
.columns-l {
    overflow: hidden;
    padding: 16px 36px 0 36px;
}
.col-left-l {
    float: left;
    width: 680px;
}
.col-right-l {
    float: left;
    width: 660px;
    padding-left: 24px;
    border-left: 3px solid #ddd;
    margin-left: 20px;
}

/* ===== Calendar ===== */
.cal-header {
    text-align: center;
    font-size: 30px;
    font-weight: bold;
    margin-bottom: 10px;
}
.cal-row {
    width: 100%;
    overflow: hidden;
}
.cal-cell {
    float: left;
    width: 66px;
    text-align: center;
    padding: 6px 0;
    font-size: 22px;
    font-family: 'Courier New', monospace;
}
.cal-day-name {
    float: left;
    width: 66px;
    text-align: center;
    font-size: 18px;
    color: #888;
    padding: 4px 0;
}
.cal-day.today {
    background: #000;
    color: #fff;
    font-weight: bold;
}
.cal-day.weekend {
    color: #999;
}

/* Landscape calendar - wider cells */
html.landscape .cal-cell { width: 94px; font-size: 24px; padding: 8px 0; }
html.landscape .cal-day-name { width: 94px; font-size: 20px; }

/* ===== Year Progress ===== */
.year-progress {
    margin-top: 16px;
    font-size: 18px;
    color: #555;
}

/* ===== Upcoming Events ===== */
.upcoming {
    margin-top: 16px;
    font-size: 18px;
    color: #555;
}
.upcoming-item {
    overflow: hidden;
    padding: 3px 0;
}
.upcoming-name { float: left; font-size: 18px; }
.upcoming-days {
    float: right;
    font-size: 18px;
    font-family: 'Courier New', monospace;
}

/* ===== Weather ===== */
.weather-main {
    overflow: hidden;
    padding: 8px 0;
}
.weather-temp {
    float: left;
    font-size: 58px;
    font-weight: bold;
    font-family: 'Courier New', monospace;
    line-height: 1;
    margin-right: 18px;
}
.weather-info {
    float: left;
    padding-top: 4px;
}
.weather-desc {
    font-size: 28px;
    color: #333;
    font-weight: bold;
}
.weather-detail {
    font-size: 20px;
    color: #666;
    clear: both;
    padding-top: 8px;
    line-height: 1.6;
}
.weather-forecast {
    margin-top: 12px;
    font-size: 18px;
    color: #555;
}
.forecast-row {
    overflow: hidden;
    padding: 3px 0;
}
.forecast-date {
    float: left;
    width: 120px;
    font-family: 'Courier New', monospace;
}
.forecast-desc { float: left; width: 80px; }
.forecast-temp {
    float: right;
    font-family: 'Courier New', monospace;
}

/* ===== Todo ===== */
.panel-todo {
    padding-top: 24px;
}
.todo-item {
    overflow: hidden;
    padding: 8px 0;
    font-size: 24px;
    line-height: 1.4;
    cursor: pointer;
}
.todo-box {
    float: left;
    width: 24px;
    height: 24px;
    border: 2px solid #000;
    margin-right: 12px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    line-height: 24px;
}
.todo-box.checked {
    background: #000;
    color: #fff;
}
.todo-text {
    float: left;
    width: 400px;
}
.todo-text.done {
    text-decoration: line-through;
    color: #999;
}
.todo-summary {
    margin-top: 10px;
    font-size: 18px;
    color: #888;
    clear: both;
}

/* ===== Quote ===== */
.panel-quote {
    border-top: 3px solid #000;
    padding-top: 24px;
    margin: 24px 40px 0 40px;
    clear: both;
}
.panel-quote-landscape {
    margin: 16px 36px 0 36px;
}
.quote-zh {
    font-size: 30px;
    line-height: 1.6;
    font-weight: bold;
    margin-bottom: 10px;
}
.quote-en {
    font-size: 20px;
    color: #444;
    font-style: italic;
    line-height: 1.4;
}
.quote-author {
    font-size: 18px;
    color: #888;
    margin-top: 6px;
    text-align: right;
}

/* ===== Refresh Info ===== */
.refresh-info {
    position: absolute;
    bottom: 10px;
    right: 50px;
    font-size: 14px;
    color: #ccc;
}

/* ===== Layout Toggle Classes ===== */
.layout-portrait .columns-l,
.layout-portrait .col-left-l,
.layout-portrait .col-right-l,
.layout-portrait .top-bar-landscape,
.layout-portrait .panel-landscape,
.layout-portrait .content-area-landscape,
.layout-portrait .panel-quote-landscape { display: none; }

.layout-landscape .columns-p,
.layout-landscape .col-left-p,
.layout-landscape .col-right-p { display: none; }
