/*
 * Copyright (C) 2009, 2010, 2011, 2012 Research In Motion Limited. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

textarea {
    font-family: monospace;
}

select {
    border-radius: 0;
}

select[size="0"],
select[size="1"] {
    border-radius: 0;
}

::-webkit-validation-bubble-message {
    padding-left: 10px;
    padding-right: 10px;
    background: #fafafa;
    border-color: #ffffff;
    border-width: 1px;
    box-shadow: 2px 2px 4px rgba(100,100,100,0.3), 0 0 4px rgba(100,100,100,0.6);
    -webkit-border-radius: 4px;
    top: -1px;
}

::-webkit-validation-bubble-arrow {
    left: 40px;
    top: 3px;
    background: #fafafa;
    border-color: #ffffff;
    border-width: 1px;
    box-shadow: 0 0 4px rgba(100,100,100,0.6);
}

::-webkit-validation-bubble-heading {
    font-weight: normal;
}

input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"] {
    -webkit-appearance: button;
    text-align: center;
}
